F-Lab
🚀
상위 1% 개발자에게 1:1로 멘토링 받아 성장하세요
🚀
상위 1% 개발자에게 1:1로 멘토링 받아 성장하세요

만약 지금 돌아간다면 이렇게 하지 않았을텐데 | 쿠팡, 우아한형제들 출신 멘토님

writer_thumbnail

F-Lab : 상위 1% 개발자들의 멘토링

안녕하세요 여러분!

오늘도 멘토님께 인터뷰한 내용을 가져왔습니다 :-)

 

성장의 의지가 있는 주니어 개발자분들을 위해 쿠팡, 우아한형제들 출신 멘토님을 모시고 이야기를 나눴습니다.


🚀 멘토님께 질문했습니다!

  • 최근 흥미롭게 읽으신 아티클이나 영상이 있다면 공유 부탁드립니다.
  • 취업을 준비하실 때, 얼마나 많은 시간을 투자하셨나요?
  • 코드 리뷰를 하지 않는 회사에서, 본인의 코드를 검토하는 효과적인 방법은?
  • 새로운 기술을 익힐 때, 가장 효과적인 학습 방법은?
  • 좋은 코드와 나쁜 코드의 차이점은?
  • "만약 지금 돌아간다면 이렇게 하지 않았을 텐데"라고 생각하는 순간이 있다면?

 


 

Q. 최근 흥미롭게 읽으신 아티클이나 영상이 있다면 공유 부탁드립니다.

최근에는 리더십과 의사소통에 관한 글과 영상을 자주 보고 있습니다. 개발자로서 다양한 Stakeholder와 협업하는 과정에서, 의도치 않은 의사소통 오류로 인해 불필요한 리소스가 소모되는 경우가 많습니다. 이런 문제를 최소화하고자 관련 콘텐츠를 보며 고민하고 있습니다.

 

  1. 세바시 - 뭘 해도 행복한 사람과 불만인 사람의 말버릇
    긍정적인 사고방식과 타인을 이해하는 방법에 대해 다룹니다. 특히, 커뮤니케이션에서 작은 말버릇이 어떻게 영향을 미치는지에 대한 내용이 인상 깊었습니다.
  2. 네이버 '팀 네이버' 작전타임
    업계를 선도하는 네이버가 지속적으로 변화하는 환경 속에서 고객 중심의 사고방식을 어떻게 유지하며 성장하는지에 대한 태도가 인상적이었습니다.
  3. 실용주의 프로그래머 (The Pragmatic Programmer)
    문제 해결을 위한 능동적인 태도, 변화에 대한 유연한 대응, 지속적인 학습의 중요성을 다시금 상기하게 되었습니다. 오랜 개발 경험이 쌓이면서, 종종 관성에 의해 일하는 경우가 많은데, 기본적인 원칙을 다시 되새기는 계기가 되었습니다.


Q. 취업을 준비하실 때, 얼마나 많은 시간을 투자하셨나요?

저는 대학원에서 네트워크 정책을 전공했지만, 개발을 지속적으로 하지 않아서 취업을 준비하는 과정에서 많은 부분을 다시 학습해야 했습니다.
정량적으로는 약 10개월간 CS(Computer Science) 지식과 개발 역량을 다시 쌓는 과정을 거쳤습니다.

 

  1. 전략적으로 접근했던 방법최대한 많은 이력서를 제출하여 다양한 면접 경험을 쌓음.
  2. 코딩 인터뷰 및 기술 면접을 적극적으로 참여하여, 질문받았던 내용들을 정리하고 오답 노트를 작성.
  3. 면접에서 자주 나온 질문을 중심으로 학습을 보완하고, 이력서를 지속적으로 개선.


Q. 코드 리뷰를 하지 않는 회사에서, 본인의 코드를 검토하는 효과적인 방법은?

코드 리뷰가 없는 환경에서는 다양한 테스트 및 도구를 활용하여 자체적으로 코드 품질을 점검해야 합니다.

 

  • 테스트 전략
  • 유닛 테스트(Unit Test)
    : 로직의 결합도와 응집도를 검증.
    : 예를 들어, 특정 서비스 로직을 검증하는데 지나치게 많은 Mocking이 필요하다면, 이는 설계가 잘못되었을 가능성이 높음.
  • E2E 및 퍼포먼스 테스트
    : 전체적인 유저 플로우 검증 및 성능 측면 체크.
    : 예를 들어, 개발 환경에서는 문제가 없었지만, 운영 환경에서 IN 절에 예상치 못한 값들이 들어가 장애가 발생한 사례가 있음.
  • 정적 분석 도구 활용
    : SonarQube 등을 활용하여 코드 품질 점검 및 보안 취약점 탐지.
    : Copilot, GPT 등의 AI 도구를 활용하여 테스트 코드 자동 생성 및 코드 리뷰 보완.
  • 모니터링 및 메트릭 기반 검증
    : 개발자는 코드만 보는 것이 아니라, 사용자가 실제로 시스템을 어떻게 이용하는지 모니터링하는 것도 중요.
    : 이를 위해 적절한 메트릭과 로그 수집 및 알람 설정이 필수.


Q. 새로운 기술을 익힐 때, 가장 효과적인 학습 방법은?

이 부분은 개인마다 차이가 있지만, 저의 경우 새로운 기술을 학습할 때에 실제 업무에 적용할 포인트를 먼저 찾는 방식을 선호합니다.

 

  • 핵심 전략비즈니스 요구사항과 연결
    : 단순히 기술을 익히는 것이 아니라, 실제 서비스에 어떻게 적용할 수 있을지를 먼저 고민.
    : 기술을 익히기 위해 불필요한 업무를 만들지 않도록 주의.
  • 레퍼런스 문서 활용
    : 공식 문서가 잘 정리된 기술일 경우, 표준 문서를 참고하는 것이 가장 빠르고 정확한 학습 방법.
  • 실전 프로젝트에 적용
    : 단순히 책이나 강의로 학습하는 것이 아니라, 직접 프로토타입을 만들어보고 실무에 적용하면서 학습.
    : 예제 코드가 아니라 실제 업무 환경에서 특이 케이스까지 다루는 것이 가장 큰 도움이 됨.


Q. 좋은 코드와 나쁜 코드의 차이점은?

좋은 코드와 나쁜 코드의 차이는 개발자의 기준, 팀의 문화, 그리고 프로젝트의 요구사항에 따라 다를 수 있습니다.


개인적으로는 다음과 같은 기준을 중요하게 생각합니다.

 

  • 좋은 코드의 특징
    • 의도가 명확하게 드러나는 코드코드를 읽었을 때, 해당 기능이 무엇을 하는지 직관적으로 이해 가능해야 함.
    • 유지보수가 용이한 코드요구사항 변경이 발생해도 최소한의 수정으로 대응 가능해야 함.
    • 클린 코드 원칙 준수네이밍 컨벤션, 일관된 코드 스타일, 중복 제거 등의 원칙을 따르는 코드.
  • 나쁜 코드의 특징
    • 맥락 없이 작성된 코드요구사항과 배경을 모르면, 해당 코드가 왜 이렇게 작성되었는지 이해하기 어려운 경우.
    • 유지보수하기 어려운 코드작은 수정에도 광범위한 변경이 필요하거나, 결합도가 지나치게 높아 테스트가 어려운 코드.
    • 코드를 읽는 사람이 배경을 이해하지 못하면 유지보수가 어려움.

과거에 다양한 레거시 코드를 접하면서 그 당시 맥락을 이해하면 이해할 수 있는 코드가 많았던 경험이 있습니다.


따라서, 요구사항 정리를 철저히 하고, Acceptance Criteria(AC)에 맞춰 코드가 작성되도록 하는 것이 유지보수에 큰 도움이 됩니다.


Q. "만약 지금 돌아간다면 이렇게 하지 않았을텐데"라고 생각하는 순간이 있다면?

  • 더 적극적으로 질문하고, 내가 했던 성과를 체계적으로 정리했을 것입니다.
  • 매년 꾸준한 회고(reflection)를 통해 성장 포인트와 앞으로의 방향성을 체크했을 것입니다.
  • 개발자, 기획자, 프론트엔드, 백엔드 등 역할을 경계 짓기보다는 "가치 창출"에 더 집중했을 것입니다.
  • 기술 자체에 몰입하기보다, 기술을 통해 고객에게 전달되는 가치를 더 깊이 고민했어야 했다는 점이 가장 후회되는 부분입니다.

 


 

깊이 있는 인사이트와 현실적인 조언이 담긴 멘토님들의 인터뷰와 커리어 성장 콘텐츠가 데브클럽에서 정기적으로 업데이트되고 있습니다.

 

실력 있는 현직 개발자 멘토들과 직접 소통하고, 생생한 실무 노하우와 커리어 성장 전략을 배워보세요!

 

👉 데브클럽 평생 990원으로 참여하기

ⓒ F-Lab & Company

이 컨텐츠는 F-Lab의 고유 자산으로 상업적인 목적의 복사 및 배포를 금합니다.

조회수

멘토링 코스 선택하기

  • 코스 이미지
    Java Backend

    아키텍처 설계와 대용량 트래픽 처리 능력을 깊이 있게 기르는 백앤드 개발자 성장 과정

  • 코스 이미지
    Node.js Backend

    아키텍처 설계와 대용량 트래픽 처리 능력을 깊이 있게 기르는 백앤드 개발자 성장 과정

  • 코스 이미지
    Python Backend

    대규모 서비스를 지탱할 수 있는 대체 불가능한 백엔드, 데이터 엔지니어, ML엔지니어의 길을 탐구하는 성장 과정

  • 코스 이미지
    Frontend

    기술과 브라우저를 Deep-Dive 하며 성능과 아키텍처, UX에 능한 개발자로 성장하는 과정

  • 코스 이미지
    iOS

    언어와 프레임워크, 모바일 환경에 대한 탄탄한 이해도를 갖추는 iOS 개발자 성장 과정

  • 코스 이미지
    Android

    아키텍처 설계 능력과 성능 튜닝 능력을 향상시키는 안드로이드 Deep-Dive 과정

  • 코스 이미지
    Flutter

    네이티브와 의존성 관리까지 깊이 있는 크로스 플랫폼 개발자로 성장하는 과정

  • 코스 이미지
    React Native

    네이티브와 의존성 관리까지 깊이 있는 크로스 플랫폼 개발자로 성장하는 과정

  • 코스 이미지
    Devops

    대규모 서비스를 지탱할 수 있는 데브옵스 엔지니어로 성장하는 과정

  • 코스 이미지
    ML Engineering

    머신러닝과 엔지니어링 자체에 대한 탄탄한 이해도를 갖추는 머신러닝 엔지니어 성장 과정

  • 코스 이미지
    Data Engineering

    확장성 있는 데이터 처리 및 수급이 가능하도록 시스템을 설계 하고 운영할 수 있는 능력을 갖추는 데이터 엔지니어 성장 과정

  • 코스 이미지
    Game Server

    대규모 라이브 게임을 운영할 수 있는 처리 능력과 아키텍처 설계 능력을 갖추는 게임 서버 개발자 성장 과정

  • 코스 이미지
    Game Client

    대규모 라이브 게임 그래픽 처리 성능과 게임 자체 성능을 높힐 수 있는 능력을 갖추는 게임 클라이언트 개발자 성장 과정

F-Lab
소개채용멘토 지원
facebook
linkedIn
youtube
instagram
logo
(주)에프랩앤컴퍼니 | 사업자등록번호 : 534-85-01979 | 대표자명 : 박중수 | 전화번호 : 1600-8776 | 제휴 문의 : info@f-lab.kr | 주소 : 서울특별시 강남구 테헤란로63길 12, 438호 | copyright © F-Lab & Company 2025