Share
Sign In

꿀벌개발일지

All
UI/UX
개발
마음가짐
포트폴리오
[개발자를 위한 교양서] #13 포트폴리오 네이버에 입사할 때가 떠오릅니다. 당시 저는 프론트엔드 개발자로 지원했는데, 이전 회사에서는 다른 분야의 개발을 했습니다. 경력이 직접적으로 연결되지 않다 보니, ‘내가 이 일을 잘할 수 있다’는 걸 보여줄 방법이 필요했습니다. 그래서 이력서에 취미로 만들었던 사이트를 포트폴리오로 제출했습니다. ‘픽셀드로우’라는 이름의 서비스였는데, 100x100 크기의 그리드에 마우스를 드래그해서 그림을 그리면, 20x20 픽셀의 아이콘으로 변환해주는 작은 웹서비스였습니다. 아주 오래 전이지만, 지금 생각해봐도 꽤 귀여운 아이디어였어요. 면접 때는 이 서비스를 만들면 겪었던 시행착오와, 구현 과정에서 부딪혔던 문제들에 대해 신나게 이야기했던 기억이 납니다. 아마 제 눈이 반짝였을 거예요. 개발자는 다른 직업에 비해 학력이나 자격 조건이 비교적 느슨한 편입니다. 전공자가 아니어도, 좋은 학교를 나오지 않았어도, 이전에 다른 일을 했더라도, 실력만 있다면 누구나 도전할 수 있는 분야입니다. 그리고 그 실력을 보여줄 수 있는 가장 좋은 수단 중 하나가 바로 포트폴리오입니다. 종종 취업이나 이직을 준비하는 후배들이 ‘무엇을 준비하면 좋을까’ 물어보면, 저는 항상 포트폴리오를 만들어보라고 이야기합니다. 평소에 만들어보고 싶었던 서비스가 있다면 그걸 구현해보는 것이 가장 좋고, 그런 게 없다면 작은 도구부터 시작해보라고요. 예를 들어, 변환기나 파서, 계산기 같은 도구도 좋고, 공부하면서 이해가 잘 안 됐던 개념을 쉽게 풀어주는 시각적 가이드도 좋습니다. 내가 자주 쓰고 싶은 것, 또는 누군가에게 도움이 될 만한 것이라면 더욱 좋고요. 다만, 가능한 수준에서 최대한 완성도를 높이길 추천합니다. 공개되어 있어야 하고, 실제로 제대로 동작해야 해요. 도메인을 등록해서 배포해보면 더 뿌듯할 겁니다. 요즘은 무료 호스팅도 많으서 비용 부담도 크지 않습니다. 이렇게 만든 포트폴리오의 가장 큰 장점은, 처음부터 끝까지 내가 기획하고 만든 결과물이라는 점입니다. 누군가 시켜서가 아니라, 내가 만들고 싶어서 만든 거잖아요. 그 과정에서 개발의 즐거움을 느낄 수 있고, 완성했을 때의 성취감도 큽니다. 게다가 누군가 써보고 피드백을 주기라도 하면 아주 뿌듯하죠.
  1. 개발
Mar 30, 2025
🫡👍🏻
2
집중하기
개발자에게 집중은 참 중요한 일입니다. 좋은 코드를 짜는 것도, 어려운 문제를 해결하는 것도 결국 얼마나 몰입할 수 있느냐에 달려 있으니까요. 저는 어렸을 때부터 집중력이 아주 좋은 편은 아니었습니다. 공부 좀 해보려고 책상에 앉으면 괜히 화장실에 가고 싶고, 읽다 말았던 책이 갑자기 궁금해지고, 심지어 평소에 하지도 않던 책상 정리를 시작한 적도 많았습니다. 막상 시작하면 열심히 하긴 했지만, 그 시작이 늘 어려웠던 기억이 납니다. 개발자로 일한 지 거의 20년 가까이 되어가지만, 지금도 집중력을 유지하는 일은 여전히 쉽지 않습니다. 겨우 몰입 상태에 들어갔다가도 방해를 받으면 금방 흐트러지고, 다시 그 상태로 돌아가는 데는 생각보다 많은 시간과 에너지가 듭니다. 여러 사람과 함께 일할 때는 방해요소가 더 많습니다. 집중하고 있는데 누군가 말을 건다던가, 메신저 알림이 오는 것처럼요. 그렇다고 다 무시할 수 없으니, ‘어떻게 하면 적은 에너지로 더 잘 집중할 수 있을까’를 늘 고민하게 되더라고요. 그래서 그동안 여러 가지 방법을 시도해봤습니다. 25분 집중 후 5분 휴식하는 뽀모도로 기법도 해보고, 태스크를 30분 단위로 나눠서 할일 목록으로 관리해보기도 했습니다. 여러 타이머 앱을 써봤고, 일하다 떠오른 생수 주문 같은 잡생각은 따로 메모해보기도 했습니다. 한동안은 핸드폰을 방해 금지 모드로 두고, 노이즈 캔슬링 헤드폰을 쓰고 일한 적도 있었고요. 짧게는 며칠, 길게는 몇 달씩 시도해봤지만, 어떤 건 상황에 잘 맞지 않았고, 어떤 건 유지하는 과정이 번거로워서 자연스럽게 멀어지더라고요. 그런데 그 중에서, 유일하게 10년 넘게 꾸준히 쓰고 있는 도구가 하나 있습니다. 바로 타임 타이머(Time Timer)입니다. 이건 미국의 한 어머니가 초등학생 아들을 위해 만든 시각 타이머인데, 시간 개념을 어려워하던 아이를 위해 숫자 대신 빨간색 원으로 시간의 흐름을 보여주려는 아이디어에서 시작됐다고 합니다. “빨간색이 다 줄어들 때까지 해보자”하고 설명할 수 있는 시계입니다. 어린이용으로 만들어졌지만, 한눈에 남은 시간을 파악할 수 있다는 점이 정말 좋았습니다. 다른 움직임 없이, 1초 이내로요. 저는 집중을 시작하기 전에 이 타이머를 돌려둡니다. 딱 정해진 시간은 없고, 그날 컨디션에 따라 30분에서 1시간 정도로 맞춥니다. ‘자, 이제 집중하자’는 나름의 신호이기도 하고, 다짐이기도 합니다. 남은 시간이 눈에 보이면, 그 시간만큼은 쉽게 흐트러지지 않게 됩니다. 잠깐 딴생각이 들더라도 ‘조금만 더 버티자’는 마음이 들고, 가끔은 타이머가 끝나기 전에 마무리하자는 생각이 들면서 오히려 집중력이 높아지기도 합니다. 회사에도, 집에도 같은 타이머를 두고 쓰고 있고, 지금 이 글을 쓰면서도 바로 앞에서 시간이 줄어들고 있습니다.
  1. 개발
Mar 23, 2025
⏲️👍
2
내가 공격자라면?
서비스를 만들다 보면 우리가 가장 먼저 신경 쓰는 건 기능이 잘 동작하는지입니다. 버튼을 누르면 화면이 잘 넘어가는지, 사용자가 원하는 대로 데이터가 저장되는지, 디자인이 깨지지 않는지 같은 것들이죠. 그런데 그렇게 기능에만 집중하다 보면 예외적인 상황이나 예상하지 못한 행동은 놓치기 쉽습니다. 누군가 의도적으로 이상한 방식으로 서비스를 어뷰징하거나, 우리가 공들여 가공한 데이터를 손쉽게 긁어가는 일도 벌어질 수 있고요. 심한 경우에는 예상하지 못한 공격에 서비스가 뚫리는 일이 생기기도 합니다. 특히 ‘설마 누가 이렇게까지 하겠어?’ 하고 넘겼던 부분이 나중에 서비스 운영에 큰 문제가 되기도 합니다. 이런 위험을 줄이기 위한 간단하면서도 좋은 습관이 하나 있습니다. 바로 내가 직접 서비스의 공격자가 되어보는 것입니다. 내가 만든 기능이나 서비스가 있다면, 그냥 정상적인 사용자처럼 쓰는 게 아니라 어떻게든 깨뜨리려는 사람의 시선으로 한 번 바라보는 거죠. 예를 들어, 서비스에 있는 정보를 몽땅 긁어가려면 어떻게 할까? 서비스를 멈추게 하려면 어떻게 하면 될까? 자동으로 스팸 광고를 올리려면 어떻게 하면 될까? 내가 이 서비스 내부를 훤히 알고 있다면 어디를 노릴까? 이렇게 상상한 것을 실제로 시도해보면 더 좋습니다. 직접 이상한 방식으로 기능을 써보거나, 엉뚱한 데이터를 넣어보거나, 비정상적인 다양한 경로로 망가뜨리려는 시도를 해보는 것입니다. 이렇게 하면 평소에는 보이지 않던 위험들이 하나둘 보이기 시작하고, 자연스럽게 ‘어떻게 막을까?’를 고민하게 됩니다. 물론 모든 상상 가능한 위험을 다 막으려고 하면 너무 비효율적일 수 있습니다. 예를 들어, 사용자 10만 명 서비스인데 1억 명이 몰릴 때까지 대비하는 시스템을 처음부터 만드는 건 과할 수 있습니다. 작은 서비스인데 은행처럼 보안 솔루션을 깔고 감사 절차를 갖추는 것도 마찬가지고요. 저도 스타트업에서 일하면서 "그 정도 트래픽 오면 이미 성공한 거니까 그때 가서 걱정하자"는 농담을 자주 하곤 했습니다. 중요한 건 서비스의 단계나 규모 등 상황에 맞는 적정한 대비입니다. 하지만 분명한 건, 내가 공격자가 되어 생각해보는 습관만으로도 평소에 놓치던 위험을 발견할 수 있고, 훨씬 더 단단한 서비스를 만들 수 있다는 점입니다. 생각보다 어렵지도 않고, 오히려 재미있을 때도 많습니다. 만드는 것만큼 망가뜨리는 것도 흥미롭거든요. 그리고 모든 걸 다 막지 못하더라도, 어떤 위험이 있는지 알고 있는 것과 전혀 모르는 것 사이에는 정말 큰 차이가 있습니다. 그러니 한 번쯤, "내가 공격자라면?" 하고 생각해보세요. 그 생각만으로도 서비스는 훨씬 더 단단해질 수 있습니다.
  1. 개발
Mar 16, 2025
👍
1