글로벌한 상태 관리

상태에 대한 저장을 어떻게 하는 게 좋을까. 개발하다가 흔하게 아래와 같은 코드를 볼 수 있다. 이 글로벌한 전역 변수에 상태가 바뀔 때 마다 저장을 하고 그 저장된 상태 정보를 조회하여 많은 로직들이 실행된다. 저 상태를 바꾸는 곳은 처음에는 한 지점이었겠지만 개발이 진행될 수록 여기저기서 상태를 바꾸기 시작한다. 그러다 보면 실제 현재 상태와 CurrentState에 저장된 상태가 … Read more글로벌한 상태 관리

요세프스 순열(Josephus Permutation)

https://en.wikipedia.org/wiki/File:JosephusProblemDrawing.png

요세프스 순열의 기원은 요세프스라는 인물이 유대-로마 전쟁시에 살아 남은 일화를 바탕으로 하는데 그 일화를 위키피디아에서 가져와봤다. 제1차 유대-로마 전쟁에서 예루살렘에서 갈릴리로 파견되어 갈릴리의 마을인 요타파타를 지키는 지휘관으로서 로마군에 맞섰으나, 로마군 사령관 베스파시아누스 플라비우스·티투스 부자가 지휘하는 로마군에게 패하고 만다. 이때 이방인에 대한 투항보다 차라리 자결하는 쪽을 택한 다른 유대인 지휘관들은 제비를 뽑아 서로 죽였지만, 마지막으로 요세푸스와 다른 병사 … Read more요세프스 순열(Josephus Permutation)

애매모호한 질문

자신이 혹은 팀 내부에서 개발하지 않은 소스나 라이브러리를 사용할 때에는 문서를 잘 이해하는 것이 일차적으로 중요하지만 문서로서 모든 궁금증을 해소하기는 힘들다. 내가 본 일부 개발자들은 이러한 궁금증을 스스로 묵인해 버리거나 추측/가정을 통해 해소해버리는 경우를 종종 본다. 예를 들어, 디폴트 값이 제공되는 경우 그 값의 의미를 알아내기 보다는 그렇게 제공되어 있으니 그대로 쓴다는 자세로 일관하는 경우가 … Read more애매모호한 질문

재미있는 ROT13 암호화

알고리즘 문제를 풀다가 만난 ROT13이라는 암호화 기법은 그 단순함에 나의 시선을 사로잡았다. 원래 암호화 기법은 보통 사용하기가 쉽지 않고, 그 구조 또한 복잡하게 설계되어 있는 것이 보통인데, 암호화의 기본적인 안정성을 위해서 당연히 그러한 형태를 가지게 된다. ROT13은 암호화라고 부르기에는 조금 우습기도 하고, 중요한 시스템에서는 사용할 수 없는 그러한 존재임에는 분명하다. 하지만 수십 년간 명맥을 이어온 … Read more재미있는 ROT13 암호화

Yaw/Pitch/Roll에 대한 잡담

참 많이 보고, 찾고 했지만 여전히 헛갈린다. 나의 기억력과 이해력이 딸려서 이겠지만 그래도 헛갈린건 사실이다. X, Y, Z축에 익숙하기 때문에, 막상 Yaw, Pitch, Roll을 만나면 한참을 생각하게 된다. Yaw, Pitch, Roll로 검색을 해보면 많은 레퍼런스와 쉽게 설명해주는 블로그 글들을 볼 수 있다. 그래도 여전히 적용하기가 쉽지 않다. 용어의 순서라도 일정했으면 좀 기억하기 수월했을까? Yaw > … Read moreYaw/Pitch/Roll에 대한 잡담

신규 개발이 최고?

Pixabay로부터 입수된 AzamKamolov님의 이미지 입니다.

신규 개발은 게임 개발자라면 누구나 가슴을 뛰게 하는 무언가를 느끼게 해준다.  그 게임이 유저들에게 엄청난 인기를 누리며 스스로 대단해지는 상상과 금전적인 대박을 통해 많은 인센티브를 받는 상상, 그리고 개발 커리어에 힘있는 한 줄을 추가 할 수 있는 상상같은 것을 마음껏 할 수 있기 때문이다.  더불어 새로운 기술을 익히고 적용하여 개발력을 뿔뿔(++)하고, 자기의 의견을 게임의 어느 … Read more신규 개발이 최고?

틈새 시간

회사에서 가끔씩 여유로울 때가 있다.  프로젝트에 따라 좀 다르겠지만, 어떻게 24/7 바쁘기만 하겠는가. 이러한 시간은 너무 귀중하기도 하다.  다음 일에 집중하기 전에 리프레시할 수 있는 짤막한 틈새 시간이기 때문이다.  어떤 사람은 음악을 듣기도 하고, 유튜브를 모니터 구석으로 작게 보내어 슬쩍슬쩍 보기도 한다.  물론 웃고 싶어도 웃음을 꾹 참으면서 말이다.  신경쓰이는 상급자가 있다면, 그때 그때 윈도우의 … Read more틈새 시간

짧은 스타트업 경험

벌써 5~6년전의 일이다.  N사를 나오는 결정은 생각보다 어렵지 않았다.  스타트업을 시작하는 지인이 개발자를 모으고 있었고, 그의 꼭 필요하다는 말과 나는 잘할 수 있다는 믿음이 안정적인 황금 족쇄를 풀어 버리게 만들었다.  더 나이가 들기 전에 한번은 해봐야 할 것 같았고, 실패하더라도 다른 곳으로 갈 수 있으리라는 생각도 있었다.  무엇보다도 성공하면 어떨지 상상하면 그 기분은 어떤 다른 … Read more짧은 스타트업 경험

코드는 거짓말하지 않는다

십여 년전에 같이 일했던 동료가 가끔 이야기하던 말이다.  아직까지도 나는 가끔 되뇌이거나, 후배 개발자들에게 이슈가 터질 경우 (꼰대처럼) 말해 주기도 한다. 너무나 당연한 말이지만 그러면서도 너무 와 닿는 문구이기도 하다. 개발하면서 혹은 라이브 서비스를 하면서 우리가 자주 하는 말들이 있다. “절대 나올 수 없는 버그다”“사용자의 기기 문제이다”“내가 했을 때는 잘 됐었다”“로직상에는 아무런 문제가 없다” 물론 이러한 … Read more코드는 거짓말하지 않는다

미국에서 인생 첫 직장

졸업을 1년 앞두고, 여름 방학 인턴을 열심히 찾아 다녔던 기억이 난다.  여름 방학이 길어서 보통 미국에서는 이 기간에 인턴이나 파트타임으로 일을 하며 사회 경험을 쌓거나 돈을 벌거나 한다.  난 컴퓨터 학도로서 프로그래밍 일을 열심히 찾으러 다니며 여기저기 지원을 했다.  영어가 아무래도 부족한 외국인 학생인 나는, 돈 받고 일하기에 여러모로 부족했다.  그렇다고 프로그래밍 실력이 뛰어난 것도 … Read more미국에서 인생 첫 직장