일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 벤치마크
- nil
- go언어
- 양자역학
- 패널라인
- 리플렉션
- doom-emacs
- Go 언어
- mistel md600 alpha
- 키보드
- Reflection
- eslip
- driverless
- 체리적축저소음
- 바로코
- md600alpha
- 건프라
- 음각몰드
- Griffiths
- mf642cdw
- emacs
- mopria
- 다이어트
- 이맥스
- Go
- 고양이책
- 엘리스배열
- Golang
- 터미널
- 스플릿키보드
- Today
- Total
Meandering Trajectory
난 오랫동안 프로그래밍 언어(Programming Language, PL) 애호가로 살았었다. 그시절 배웠거나 배우려고 시도했던 언어들의 목록을 나열해 보자면:애플II 베이직, GW 베이직CC++FortranAssemblyJavaCommon LispSchemeC#PerlPythonTclPHPHaskellMatlabSQLPL/SQL...도대체 왜 그랬냐구? 그냥 프로그래밍 언어 배우는 것이 재미있었다.그런데 이중에서 자신있게 배웠다고 말할 수 있는 언어는 C 뿐이다. 왜냐하면 다른 언어들로는 짠 코드가 아예 없거나 있더라도 몇줄 안 되기 때문이다.최근 회사를 옮기기 전까지 5년 넘는 시간 동안 프로그래밍 언어 배우는 일에서 완전히 손을 뗐기 때문에 그나마 알고 있던 문법도 거의 다 잊은 상태다. 그러니까 ..
리플렉션(reflection)의 사전적 의미는 '반사'다.컴퓨터 프로그래머에게 리플렉션은 이런 사전적 의미 외에 다른 의미가 하나 더 있다. 그들 업계에서 통용되는 리플렉션은 프로그램이 실행 중에 프로그램에 포함된 타입과 메서드에 대한 정보를 조회하고 이렇게 얻은 정보를 바탕으로 메서드 실행까지도 할 수 있도록 해주는 기능이다.사람이 자신의 얼굴을 잘 보려면 거울에 비춰(reflection)봐야 한다. 그런데 프로그램이 스스로에 대한 정보를 실행 중에 알아네는 행동 역시 거울에 비춰보는 행위와 유사하다고 볼 수 있으니 그야말로 적절한 용어선택이다.이렇게 아는 척을 했지만 내가 업계적 의미의 리플렉션을 알게 된 것은 사실은 불과 며칠 전이다. 예기인 즉슨 Go로 된 오픈소스 소프트웨어의 코드를 읽다가 뭔가..
Go 언어를 배운지 얼마 안 돼서 무언가를 말하기는 조심스럽지만... 몇몇 장단점이 눈에 띈다.Go 루틴이라든지 채널 같은 동시성 프로그래밍 언어를 위한 기능들은 신선하다. 그리고 네이티브 바이너리로 컴파일되는 언어치고는 방대한 양의 라이브러리를 제공한다는 점 역시 좋아 보인다. 반면 너져분하게 느껴지는 문법이라든지 import한 패키지의 코드가 모두 실행 파일에 포함되어 실행파일 크기가 지나치게 커진다든지 하는 문제는 실망스럽다.그러던 와중에 Go 언어로 작성한 프로그램의 성능이 어떨지 궁급해서 좀 찾아봤다. 공정한 비교(?)를 위해 Garbage Collection (GC)을 이용하는 Java와 비교한 벤치마크를 살펴봤다. 놀랍게도 네이티브 코드로 컴파일되는 언어임에도 결과는 그리 신통치 못하다.벤치..