Skip to main content

나는 왜 디버깅을 못할까?

· 5 min read
Sewon Kim
SW Engineer @ Neurocle

1만 시간의 법칙은 틀렸다

1만 시간의 법칙; 어떤 분야의 전문가가 되기 위해서는 1만 시간의 훈련이 필요하다는 법칙

1만 시간을 꾸준히 투자하면 누구라도 특정 분야의 전문가가 될 수 있다는 이야기를 학생때부터 자주 들어왔다. 그러나 이 법칙은 틀렸다. 1만 시간을 주구장창 한다고 전문가 수준에 오를 수는 없다. 핵심은 '1만 시간'이 아니라 '훈련'에 있기 때문이다. 의도적인 행동과 피드백을 통해 개선을 반복하는 것을 꾸준히 해야 전문가가 된다.

문서화, 하지 마세요.

· 6 min read
Sewon Kim
SW Engineer @ Neurocle

저는 문서화를 중요하게 여기지만 사실 문서는 적으면 적을수록 좋다고 생각합니다. 코드를 최소한으로 작성해 효과적으로문제를 해결하는 것이 기술이듯 문서도 최소한으로 작성하면서 필요한 정보를 전달해야 합니다.

지난 3년간 회사의 FE팀 위키를 구축하고 유지보수하며 저만의 문서화 기준이 생겼는데요. 이 글에서는 문서화가 필요한 경우와 필요하지 않은 경우를 구분하는 기준을 제시하고, 실용적인 문서화를 통해 개발 효율성을 높이는 방법을 탐색해 보겠습니다.

덮어놓고 쓰다 보면...

회사에서는 크게 3가지 방식으로 문서화를 해왔습니다.

  1. 코드 주석
  2. Pull Request 설명
  3. 노션

그중 노션은 시간과 정성을 들여 작성해야 하는 '공식적인 문서' 역할이었는데요. 코드 설계나 구성에 대한 설명, 리팩토링 과정, 에러 핸들링 기록, PoC 상세 내용 등을 기록했습니다. 그렇게 3년 정도 노션에 열심히 문서를 쌓아놓다 보니 몇몇 불편한 부분들이 느껴졌습니다.

2024 year in review

· 8 min read
Sewon Kim
SW Engineer @ Neurocle

2024 Lesson Learned

신뢰는 말이 아니라 행동에서 나온다

어느 날, 회사에서 서비스 개발을 멈추기로 했다라는 글에서 한 번 정리했는데 올해 초, 애자일 업무 방식을 도입하기 위해 2개월 간 많은 분들과 치열하게 논의하는 시간을 가졌었다. 논의 할 때, 서로 반대되는 의견을 다룬 적이 많았는데 어떤 사람의 말은 신뢰할만했던 반면, 어떤 사람의 말은 전혀 신뢰하기 어려웠다. 평소 그 사람의 행동이 그 사람의 말에 힘을 실어준다는 것을 느낀 것이다.

말하는 것은 쉽고, 행동하는 것은 어렵다. 사람들이 내 말을 듣게 하려면 평소에 내 말을 직접 실천하는 사람이 되어야한다.

첫 PR 그날 밤

· 7 min read
Sewon Kim
SW Engineer @ Neurocle

아이유의 노래 '첫 이별 그날 밤'을 듣다가 '처음'에 대해 생각하게 되었습니다. 입사 후 저의 첫 커밋, 첫 PR(Pull Request)이 생각났어요. 처음 PR을 작성하고, approve를 받아 메인 코드 베이스에 머지했던 그날은 드디어 사회에서 1인분을 하는 사람이 되어간다는 기분에 설레는 마음이 가득했던 것 같습니다.

입사 후 첫 3주동안에는 회사 제품을 사용해보고, 제품 코드를 리딩하는 업무를 진행했습니다. 약 3년정도 진행중인 프로젝트여서 코드 베이스가 크고 복잡했는데요. 가장 먼저 눈에 들어온 부분은 코드 컨벤션이었습니다.

...오잉?! 컨벤션의 상태가...!

가장 처음 작업했던 것은 커밋 메시지를 자동화하고, PR 템플릿을 만든 일이었습니다. 프로젝트를 빠르게 개발하는 것이 가장 중요했던 시기라서 제가 입사하기 전에는 문서화 작업이 많이 부족했는데요. 코드 리뷰를 구두로 진행하고, PR에 관련 작업에 대한 설명이 대부분 없었습니다.

예를들면 이런식...

예를들면 이런식...

약 2,000 라인이 넘는 changes임에도 불구하고, PR에 아무런 설명이 없었어요. 3년간의 히스토리를 아무런 기록 없이 넘겨받으려니 엄청 막막했습니다. 그래서 PR에 대한 템플릿을 만들어 최소한으로 남겨놓아야할 정보들을 기록할 수 있도록 만들었어요.

역사적인 첫 PR🥳

역사적인 첫 PR🥳

스타일링 방식을 알아보자

· 9 min read
Sewon Kim
SW Engineer @ Neurocle

CSS는 HTML 문서의 요소들을 꾸미는 역할을 합니다. 처음 CSS를 배우고 나서는 도전적인 과제가 주어지거나, 인터렉티브한 과제가 주어지지 않는 이상 초반에 배웠던 CSS를 그대로 사용하게 되는데요. 저도 취업 이후에는 따로 CSS를 공부하지 않았던 것 같습니다. 최근 zero-runtime CSS-in-JS 키워드를 접하게 되면서 어떤 스타일링 방식이 있는지 다시 한 번 정리해보고자 합니다.

CSS의 작동방식

Vim 배우기 :q!

· 7 min read
Sewon Kim
SW Engineer @ Neurocle

Vim is a highly configurable text editor built to make creating and changing any kind of text very efficient. It is included as "vi" with most UNIX systems and with Apple OS X.[^1]

Vim은 "Vi IMproved"의 준말로, 원래 UNIX 시스템에서 사용되던 Vi 편집기를 개선한 텍스트 편집기 입니다. 1991년에 v1.14가 처음 공개되었습니다.[^2]

vim 실행 화면

vim 실행 화면

터미널에 vi를 입력하면 Vim이 실행됩니다.


vim을 배우고 싶었던 이유

출처 https://xkcd.com/378/

출처 https://xkcd.com/378/

어디에선가 vim에 익숙해지면 마우스 없이 모든 명령어를 처리할 수 있고, 생산성이 극대화된다는 말을 들었습니다. 저는 리눅스 환경에 익숙하지 않아서 검은 터미널 화면에 빽빽하게 타이핑하며 개발하는 것에 대한 환상이 있었고, 한 번 배워보고 싶었어요. 그리고 뭔가 '진짜' 개발자처럼 보이잖아요...!

글또 10기 미리보기

· 5 min read
Sewon Kim
SW Engineer @ Neurocle

어느 날 아침 문득, 정말이지 맹세코 아무런 계시나 암시도 없었는데 불현듯, 잠에서 깨어나는 순간 나는 이렇게 부르짖었다. "그래, 이렇게 살아서는 안 돼! 내 인생에 나의 온 생애를 다 걸어야 해. 꼭 그래야만 해!"

모순, 양귀자

요 근래에 정말 재미있게 읽었던 소설의 첫 문장입니다. 글또 10기 OT가 끝나고 문득, 정말이지 맹세코 아무런 계시나 암시도 없었는데 불현듯, '그래, 이렇게 살아서는 안 돼! 내 인생에 나의 온 생애를 다 걸어야 해. 꼭 그래야만 해!'라고 생각했어요. (부르짖지는 않았음...)

처음 개발자를 꿈꾼지 5년이 지났고, 프런트엔드 개발자로 봉급을 받은지 3년이라는 시간이 지났습니다. 사랑의 유효기간은 900일[^1]이라고 하죠? 요즘은 어쩐지 프로그래머로서의 열정도 사라지고, 커리어 권태기가 온 것 같아요. 그래서 '글또 10기 시작'이라는 핑계로 제 프로그래밍 인생에 저의 온 생애를 다 걸어보자는 비장한 다짐을 해보려고 합니다. 글또는 어쩌면 프로그래머로서 열심히 살아보기 위한 수단일지도 모르겠네요😁

비전공자도 개발자가 될 수 있나요?

· 3 min read
Sewon Kim
SW Engineer @ Neurocle

어제 2024 Women tech week에서 세미나를 듣고 왔습니다. '함께 그리는 커리어 성장 곡선'이라는 주제로 개발자로서의 커리어를 어떻게 쌓아나가야할지에 대한 이야기였는데 Q&A 시간에 어김없이 '비전공자도 개발자로 취업할 수 있을까요?'라는 질문이 나왔습니다.

전공자도 비전공자도 아닌 나

저는 '디지털콘텐츠학'을 전공했습니다. 이름만으로는 정확히 어떤 전공인지 알기 쉽지 않습니다. 사실 입학할 때, 포토샵이나 프리미어로 디지털콘텐츠를 만드는 방법을 배우는 곳이겠거니 싶어서 선택했는데 실제로는 포토샵이나 프리미어 같은 프로그램을 만드는 방법을 배우는 곳이었어요😅

1~2학년 때까지는 프로그래밍은 절대 하지 말아야겠다고 생각했었고, 운영체제나 네트워크 같은 전공 필수 수업은 듣지 않았습니다. 교내 방송국에서 일하면서 영상 편집을 배웠고, 대만으로 교환학생을 가서 중국어를 배우며 이리 저리 방황했더랬습니다. 어찌저찌 개발자로 취업했지만 스스로 '전공자'라고 하기에는 부끄러운 마음이 들 때가 많습니다.

애자일 하기

· 13 min read
Sewon Kim
SW Engineer @ Neurocle

이전 글 어느 날, 회사에서 서비스 개발을 멈추기로 했다.에서는 회사에서 2개월 간 서비스 개발을 멈추고, 개발 프로세스 개선하는 TF에 참여하면서 느낀 점을 정리했습니다. TF가 마무리 되고, 회사에서 서비스 개발에 애자일 프로세스를 적용한 지 6개월이 지났습니다 6개월의 시간 동안, 1번의 마이너 업데이트와 2번의 핫픽스를 진행는데요. 이번 글에서는 제가 생각한 애자일한 조직의 모습, 조직에서 애자일 프로세스를 적용한 방법, 겪었던 시행착오 등을 기록 해보려고 합니다.

애자일 하다는 착각

뉴로클의 개발 문화

뉴로클의 개발 문화

회사 채용페이지의 개발 문화에 대한 내용은 제가 작성했는데요. 작성할 때만해도 저는 저희 조직이 애자일하게 개발하고 있다고 생각했습니다.

착각 요소

  1. 스프린트를 진행한다.
  2. Jira를 사용한다.
  3. 프로젝트가 끝나면 회고한다.

생각해보면 이 두 가지 요소 때문에 애자일하다고 착각하고 있었던 것 같습니다. '워터폴이 아니니까 애자일인거 아니야...?'라고 대충 생각했던 것 같아요.

우리 조직은 애자일하게 하고 있는데 기획을 수정하는 게 왜 이렇게 힘든 걸까요? 왜 개발자들이 릴리즈 날에 밤새면서 버그를 고치는 걸까요? 애자일이란 과연 무엇일까요?

팀 업무 배분의 딜레마

· 2 min read
Sewon Kim
SW Engineer @ Neurocle

회사에서는 혼자 일할 수 없다. 3~4명으로 이루어진 팀이 하나의 목표를 가지고 일하는 경우가 많다. 내가 어떤 일을 하고 싶어도, 팀원들과 협의하여 업무를 배분해야 한다. 팀은 프로젝트 초기에 업무 담당자를 배분하는데 이 때, 모두가 만족할 업무 배분의 기준을 선택하는 것은 항상 어려운 일이다.

업무 배분 기준

  1. 담당자가 이전에 담당했던 부분을 계속 개발한다.
  2. 담당자가 이전에 담당하지 않았던 부분을 개발한다.