티스토리 뷰

코딩일지

다트를 아시나요?

snowflake17 2024. 7. 31. 00:41

 

다트(DART, Data Analysis, Retrieval and Transfer system)는 금융감독원 전자공시시스템이다. 학교 경제 과목에서 수행평가 할때 자료조사하기 좋은 서비스라고 선생님께서 알려주셨다.

 

다트를 처음 들었을 때 이걸 떠올리는 사람은 많지 않을 것이다. 다트는 보통 이런걸 나타내는 명사로 많이 쓰이기 때문이다.

 

다트(Darts)는 500여년 전 영국에서 시작된 스포츠로, 30년 전쟁에 참전한 영국 병사들이 나무에 빈 술통 뚜껑을 걸어 놓고 부러진 화살촉을 던지고 놀며 소일거리를 하던 것에서 비롯되어 영국 전역의 노동자 계층에 퍼져나갔다. - 출처 나무위키

 

사실 이런 게임보다는 NASA의 프로젝트인 Double Asteroid Redirection Test을 나타내는 단어로 더 많이 쓰인다.

 

이건 이중 소행성 궤도 변경 시험이라고 불리는 곧 운석이 될 예정이신 소행성 분들을 그런 비극적인 운명을 맞지 않도록 최선을 다해 천체간 탄도 미사일을 발사해 소행성의 공전주기와 궤도를 바꿔서 지구에 피해가 가지 않도록 하는 프로젝트이다. 워낙 재난영화에서 사용하기 좋아할 소재라 《아마겟돈》과 같이 많은 드라마나 영화에서 이를 다루고 있다.

 

그건 중요하지 않다. 사실 다트는 언어이다.

무려 구글에서 사내에서 쓰려고 만든 멀티플랫폼 소프트웨어 개발을 위한 C++, Java, Javascript 등등을 모두 짬뽕해서 만든 최강의 언어다. 그래서인지 컴파일이 필요하고, main 함수가 필요한 함수 기반의, class가 떡칠된 객체지향 언어이다.

 

 

사실 작년 객체지향프로그래밍 수업에서 dart를 쓴다는 소문을 들어서 dart라는 언어를 처음 알았고 뭔가 근본은 좀 없지만 그래도 사용성은 꽤 좋은것 같아서 dart를 쓰나 싶었는데 dart 기반의 프레임워크를 기반으로 하는 파이썬 프레임워크를 기반으로 하는 모듈로 수업해서 정말 어이가 없었다.

 

뭔가 저런 초보자도 쉽게 할 수 있는 모듈 같은걸 배우다 보면 개개인의 스타일이 너무 극명하게 갈리고 심지어는 단지 코딩 스타일을 이유로 호환성까지 전부 집어치우는 상황까지 가버린다. 지금 저 수업때 사용했던 모듈은 한달만에 버전을 6개나 올리더니 갑자기 예전의 클래스를 전부 deprecate해버려서 수업 결과물을 실행시켜볼 수도 없다. 비슷한 예시로 파이게임이 있다. 파이게임은 아주아주 쉽게 누구나 파이썬만 할줄 안다면 GUI를 쉽게 그리고 Sprite 등의 기능을 사용해서 미니게임을 창작할 수 있는 라이브러리다. 그런데 파이게임 강좌를 몇개만 봐도 알 수 있는 사실은 중복되는 기능이 너무 많다는 것이다. 개발자 입장에선 초보자가 쉽게 쓸 수 있게 이것저것 만들다보니 그렇게 됐겠지만 가르치는 입장에서는 자신이 써오던 것만 가르치다보니 그걸 보고 배우는 사람들은 전부 기본 기능이 아닌 만들어진 편의기능만 쓰게 된다. 그렇게 되면 문제점이 자기 코드는 자기만 너무 잘 알고 다른 사람이 해석하거나 응용하는데에는 정말 최악이다. 다시말해 유지-보수 능력이 전혀 없다. 그래서 깃허브에 파이게임을 더 편하게 해주는 모듈(이미 편한데)을 찾아보면 정말 호환성이 바닥을 친다.

 

그래서인지 저런 프레임워크를 다른 언어로 번역해놓은 프레임워크를 기반으로 하는 모듈을 썼을 때의 경험은 정말 별로였다. 괴랄한 문법을 자기들끼리 쓰기 편하다고 만들어놓은 걸 Docs에서 읽으면 정말 딱 그 기능 외에는 전혀 수행하지 못해서 내가 뭔가 비슷한걸 만들고 싶으면 코드를 다 까서 그냥 처음부터 내가 쌓아올려야 한다. 그래서 나는 아주 기초적인 프레임워크 혹은 순전한 언어 그 자체 이외에는 잘 안쓰려고 하는 편이다. 간단히 웹 기능을 만들 때 vue나 Expressjs도 잘 안쓰려고 한다. 물론 이런 유명한 프레임워크들은 다들 훌륭하게 내가 느낀 단점들을 전부 해결했을 확률이 높으므로 괜찮겠지만 그냥 새로운 시스템에 적응하기도 귀찮고 위험을 부담하기도 싫고 해서 피하는것 같다.

 

그런 입장에서 수업 때 썼던 최악의 모듈의 기반의 기반을 찾아보자 Flutter가 나왔다.

 

 

이건 Dart를 직접 기반하는 프레임워크이고 객체지향을 엄격하게 지켜서 괜찮아 보였다. 무엇보다 예전에 데스크톱 앱을 만들고 싶으면 리액트로 짠 다음에 Electron으로 컴파일 해서 썼는데 이러면 실행을 크로뮴으로 해서 리소스를 어마어마하게 잡아먹고 간단한 앱인데도 크기가 기능에 비해 꽤 컸다. 근데 얜 바로 데스크톱 컴파일을 지원하고 또 최적화도 그만치 되어있어서 확실히 이런 단점이 덜한것 같았다. 평소엔 그냥 웹앱으로 짰던 것들을 가볍게 만들어 보고 싶어서 다트와 플러터를 배워보려고 한다. 몰랐는데 컴파일 기반이라 파이썬의 고질적인 문제인 긴 실행시간을 전혀 찾아볼 수 없고 자바스크립트로 짰을 때의 무거운 크로뮴으로 화면을 구현하지 않아도 되다보니, 그리고 문법도 크게 다르지 않아보여서 Electron을 익혀놓고 두고두고 썼던 것처럼 한번 익혀놓으면 잘 쓸거 같았다. 간간히 찾은 좋은점 등 소식을 전해볼 예정이다.

'코딩일지' 카테고리의 다른 글

백준 13433 - 기하 문제  (1) 2023.11.03
백준 1028번 - 다이아몬드 광산  (1) 2023.10.24
9월 일지  (0) 2023.09.30
백준 그리디 일지 (3)  (0) 2023.04.29
백준 DP 일지 2  (0) 2023.04.20
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/11   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
글 보관함