올해 초, 어쩌면 당분간의 마지막, 해외 여행지였던 발리에서 윈드 서핑을 익혔다. 가르쳐주는 시스템이 아니었던지라 혼자 배워야 했고, 각종 유튜브를 뒤져보며 떠나기 직전 날이 되어서야 어느 정도 바람을 타는 법을 감잡게 되었다.

연습하는 며칠동안 바람이 해안에서 바닷가쪽으로 불어나가서 한 번 나가면 되돌아오지 못하는 사태가 종종 발생했고, 이때마다 제트스키에 구조되어 돌아오는 굴욕을 여러 번 겪었지. 나갈 때는 바람타고 쉬이 나가면 되는데, 돌아오려면 역풍을 거슬러 올라와야 하는데, 이게 초보자로서 쉽지 않았던 것.

정작 제 직업은 백엔드 프로그래머인데, 이 공간에는 프런트엔드나 맥 앱 개발 얘기를 더 많이 한 것 같은 것 같습니다. 오랜만에, 본업인 백엔드 프로그래밍 얘기를 해보려 합니다. 백엔드 실무 개발을 스칼라 프로그래밍 언어로 시작하는 내용을 연재해 보겠습니다.

https://scala-lang.org/

Java 벗어나기

제 경력 대부분은 Java 개발자로 일했지만, 자바는 제게 즐겁지 않은 언어입니다. 그런 제게는 다행히도, 최근 이직한 회사의 소속팀에서는 Go나 Scala도 활발히 쓰고 있어서, 저도 스칼라로 새 프로젝트를 진행하려 합니다.

이미 진행 중인 프로젝트의 언어를 바꾸기는 어렵지만, 새로운 프로젝트를 시작할 때는 다른 언어를 선택할 수 있는 것 같습니다. 게다가 이번처럼 …

“개발자가 자주 쓰는 GitHub 웹사이트를 한글화 하면 친숙해서 좋지 않을까?”

위 질문에서 시작한 실험 프로젝트입니다. 실제로 한글화를 해보고 직접 써봐서 그 답을 찾아보고자 합니다. GitHub을 한글화 하는 크롬 확장 프로그램을 개발하고 있습니다.

스크린 샷

GitHub 한글화 확장 프로그램 적용 후 모습

얼마 전, 한 달 여 동안 개인 프로젝트로, 한글 타자 연습 웹 앱을 만들었습니다. 프로젝트를 진행하며 글도 몇 편 올렸고, 간단한 데모 앱도 결과로 공개했지요. 이번엔 그 프로젝트가 끝난 다음의 이야기를 나눠보려 합니다. 지금의 불편한 감정 상태를 털어놓는 글입니다.

데모 앱을 공개해서 뿌듯했다

어렵사리 웹 앱으로 타자 연습 앱을 키보드 입력을 직접 처리하며 한글을 그려 낸 것이 제 기준에 적당히 도전적인 문제였습니다. 너무 쉬운 일은 지루하고, 너무 어려운 일에 도전하면 불안한 상태로 진행은 안되니, 적당히 도전적인 목표를 잡아야 몰입하기 좋을 텐데요, 이번에는 딱 몰입하기 좋은 조건을 잡았던 것 같습니다.

https://en.wikipedia.org/wiki/Flow_(psychology) — 자기 실력에 적당히 도전적인 과제를 잡으면 플로우 상태에 들기 좋다.

게다가 별다른 의견을 듣지 못할 거라 …

한 달 프로젝트 기간이 끝나고, 다시 일상으로 돌아왔습니다. 계획했던 시간만큼 개발하지 못해서 아쉽습니다. 적잖이 게임이나 넷플릭스에 빠져 지냈지만, 그래도 다행히 주말에는 최소 서너 시간씩 집중해서 개발할 수 있는 기회가 여러 번 있었기 때문에, 간단한 결과물이나마 만들 수 있었습니다. 원래 계획했던 두 번의 릴리스 중 첫 번째 릴리스는 할 수 있게 됐습니다.

지난 글에서 눈치 채신 분이 계실지 모르겠습니다만, 만들려고 한 것은 “한글 타자 연습 웹 애플리케이션”입니다. 전에 소개한 (프로그래머용) 영어 타자 연습 사이트 https://typing.io/ 를 보고, 한글 타자 연습을 할 때에도 비슷한 방식으로 할 수 …

한 달 정도 퇴근 후 여유로운 시간이 생겨서 혼자 만들고 싶은 웹 앱을 만들며 연재 글을 올리고 있습니다. 계획했던 프로젝트 기간이 끝나가네요. 계획대로라면 이미 첫 번째 데모를 공개했어야 하는데, 역시 계획대로 잘 되진 않고 있습니다. 이런 상황이면 자책감을 느끼지만, 전 뻔뻔해져 보겠습니다.

원래 프로젝트가 그런 거라고, 일정대로 되는 프로젝트가 세상 어디에 있냐고.

그래도 제 프로젝트는 저 혼자 하는 거고, 워낙 간단한 앱이니, 그리 오래 걸리지는 않을 겁니다. (아마도요?)

이번 글은, 영문 키보드 자판인 쿼티와 드보락에 대한 얘기인데요, 이번 프로젝트와 직접적인 상관은 없지만, 마침 이 프로젝트를 시작한 계기가 되 …

요새 회사 헬스장에서 일주일에 세 번 운동하고 있습니다. 워낙 빈약한 몸이라, 운동이래 봐야 가벼운 아령 깔짝깔짝 드는 정도인데도, 참 가기가 싫습니다. 이 핑계 저 핑계 떠오르며, 오늘 안 가도 되는 이유를 창의적으로 생각해 내고는 하지요. 그러면서도 막상 헬스장에 가서 시작하면, 언제 그랬냐는 듯 그럭저럭 운동하고 샤워를 하고 꽤나 상쾌한 마음으로 돌아옵니다.

운동하는 것과 개인 프로젝트 개발과의 공통점이 있습니다. 시작하기가 싫다는 점이지요. 그래도 막상 키보드 앞에 앉아서 시작하면, 그럭저럭 진행이 되더군요. 또, 하루 이틀 열심히 한다고 되는 게 아니라 매일매일 꾸준히 공들여야 한다는 점도 운동과 같습니다.

한글 프로그래밍

지난 …

아무래도 전 참 인간적인가 봅니다. 한 달여 혼자만의 시간 동안 개인 프로젝트를 열심히 하겠노라 공개적으로 큰소리쳐놓고도, 정작 여유 시간이 많아지자마자, 넷플릭스와 모바일 게임에 푹 빠져 지내느라 충혈된 눈이 풀리지가 않습니다. 이대로라면 이번 프로젝트는 폭망입니다. 원래의 계획과 달라 자책감까지 들지만, 한편으로는 ‘이게 다 인간적인 모습이려니’하고 위안해 봅니다. 자책은 그만두고, 이번 프로젝트의 주요 기능 중 한 부분에 대한 설명을 드리겠습니다.

프로그램이 한글을 그리는 방법

컴퓨터가 글자를 모니터 화면이나 종이에 보이려면, 사람이 적는 것과 비슷하게 프로그램이 그립니다. 어떤 글자를 적을지 유니코드라는 숫자로 지정한 코드표가 있고, 글꼴(폰 …

오늘이 그날이다.

중간고사를 앞둔 날이면, 공부해야 할 시간에 책상 정리부터 하곤 했습니다. 평소엔 지저분한 책상을 정리하지 않다가, 정작 공부해야 할 금쪽같은 시간에는, ‘이게 다 공부를 위한 거야’라며 책상을 깨끗이 정리하곤 했죠. 필요 이상 깨끗하게요. 그런 학창 시절 버릇이 어디 가지 않았는지, 오늘도 전 프로젝트 본격 시작을 앞두고 책상을 정리했습니다.

개발해야 할 시간에 책상정리하기

약 한 달간 집에 혼자 있을 거라, 옷방 구석에 있던 제 책상을 마루로 갖고 나왔습니다. 옷방에는 난방을 돌리지 않아서, 너무너무 춥거든요. 이제 여기서 열심히 개발하면 되는 겁니다.

모던 자바스크립트 개발

제 경우는 백엔드 개발이 직업인 거고, 가끔 나머지 분야를 기웃거리는 정도인데, …

이번 개인 프로젝트는 좀 계획적으로 도전해보려 합니다. 평소 성향대로 느긋이 하다 보면 결국 정체기를 겪으며 의욕이 사그라드러서 마무리를 못하게 될 때가 더러 있었기에, 짧은 기간 동안 집중해 개발하는 것이 목표지요. 대략 한 달의 기간을 어떻게 쓰느냐에 따라 간단하게나마 데모를 공개할 수 있을지 판가름 날 텐데요, 총기간을 따져보니, 약 22일 정도의 시간이 있고, 그중 주말이나 공휴일이라서 출근하지 않는 날은 5일 정도가 있더군요. 생각보다 짧은 기간이라서 잘게 쪼개고 악착같이 활용해야 하겠습니다. 자칫 넷플릭스나 브롤스타즈에 시간을 많이 뺏긴다면 기간 내에 시연에 실패하는 것은 뻔한 상황인 것 같습니다.

언어, 프레임워크, 도구 선택

개인 프로젝 …

김대현

케케묵은 백엔드 개발자. 함수형 프로그래밍을 선망하며 클로저, 스칼라, 하스켈로 도전하며 만족 중. 마이너리티 언어만 쫓아다니면서도 다행히 잘 먹고 산다.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store