F-Lab
🚀
취업/이직이 고민이신가요? 합격에 필요한 모든 것을 도와드립니다.
🚀
취업/이직이 고민이신가요? 합격에 필요한 모든 것을 도와드립니다.

소프트웨어 개발에서의 좋은 취향_Elkein 멘토님

writer_thumbnail

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

안녕하세요. 효율과 유연한 판단과 행동을 지향하는 실용주의 프로그래머 Elkein입니다.


개요


누구나 취향을 가지고 있다.

‘개취’, ‘취존’ 같은 말이 유행할 만큼, 취향은 존중받아야 하는 가치로 여겨지고 있다.
나 역시 이 흐름에 공감하며, 남들이 이해하기 어렵거나 모호하게 느낄 수 있는 취향을 가지고 있다.

하지만 취향으로 인한 충돌은 생각보다 자주 발생한다. 특히 개발은 협업이기에, 협업 과정에서 개인의 취향이 여러 문제를 낳는 경우를 겪거나 목격하기도 했다.

그러던 중 What is "good taste" in software engineering?라는 글을 읽게 되었고, 많은 생각을 하게 되었다.




좋은 취향

 

해당 글에서는 프로젝트의 특성을 기준으로 선택하는 것이 ‘좋은 취향’이라고 정의한다.

하지만 문제는 프로젝트의 특성보다 앞서, 엔지니어링에서 흔히 강조되는 일반적 가치관(클린 코드, 성능, 테스트 커버리지 등)만이 높은 우선순위로 여겨지는 경우가 많다는 점이다.

이에 대해 이야기해보고자 한다.

 

옳고 그름은 하나가 아니다


원글에서는 다소 극단적으로 “미숙한 엔지니어는 자신의 취향에 고집을 부린다”고 표현했지만, 여기서 말하는 미숙함은 실력 부족이 아니라는 점을 분명히 했다. 나 역시 이 의견에 공감한다.

실제로 중요한 것은 실력이 아니라 유연함이다.

즉, 성향을 바꿀 수 있는가, 협업 능력이 있는가, 개인적 취향을 배제하고 프로젝트에 맞는 판단을 할 수 있는가의 문제다. 나는 이것을 ‘미숙함’보다는 ‘부족한 유연함’이라 표현하고 싶다.

그렇다고 해서 유연함이 항상 좋은 것일까? 결정권자가 되었을 때조차 유연함을 잃는 경우는 비일비재하며, 나 역시 리드 역할을 맡았을 때 부단히 노력했음에도 누군가는 내가 유연하지 못했다고 느꼈을지도 모른다.

그럼에도 불구하고, 흑백 논리나 하나의 방법만 옳다고 보는 태도, 지나치게 확고한 취향은 내려놓을수록 더 좋은 개발자가 된다고 생각한다.

적어도 나에게는, 유연하게 다양한 가치를 고려할 수 있는 개발자가 좋은 개발자라는 점이 명확해졌다.

 

프로젝트 특성에 따른 가치 부여


소규모 스타트업

만약 내가 속한 조직이 스타트업이고, 제품이 회사의 사활이 걸린 상태라면 아키텍처, 클린 코드, 성능보다 중요한 것은 릴리즈 일정과 핵심 기능일 것이다.

부차적인 기능이나 디테일도 중요하지만, 우선순위는 낮아질 수밖에 없다.

이 과정에서 모객을 위한 임시 기능이나 임시 코드는 제품 상황에 따라 오히려 높은 우선순위가 될 수도 있다.



수십만 사용자가 있는 서비스

이미 수십만 명이 사용 중인 서비스라면 안정성이 큰 가치로 올라간다.

이는 곧 제품에 충분한 고객층이 확보되었다는 뜻이며, 빠른 출시보다 안정적인 업데이트가 더 중요해진다.

물론 릴리즈 일정을 무한정 늦추면서까지 안정성을 추구하라는 것은 아니지만, 안정성을 해칠 수 있는 리스크 큰 기능은 가치 판단에서 큰 영향을 미치게 된다.

 


대규모 서비스

수천만 이상의 사용자가 있는 대규모 서비스는 상황이 다르다.

이런 서비스는 대개 사용자가 콘텐츠를 생산하고 소비하거나, 이미 안정적인 규칙과 형태로 제공되는 경우가 많다. 따라서 안정성은 압도적으로 중요한 가치가 된다.

여기에 더해 유지보수 비용 절감을 위한 코드 품질(클린 코드, 아키텍처)이나 성능 최적화, 운영 비용 절감을 위한 선택도 필수적이다.



 

그래서 어떻게 하는 것이 좋은가?


결국 중요한 것은 설득할 근거다.

동료, 상사, 결정권자와 논의할 때는 개인의 취향이 아니라, 제품의 상황에 맞는 가치 비교와 판단 근거를 제시해야 한다.

이는 곧 좋은 취향과도 연결된다.

 

 

학습의 관점


학습도 이와 다르지 않다.

유행을 따라 학습 목표를 세우거나, 이해는 안 되지만 언젠가 필요할 것 같아 선택한 주제는 실제로 큰 도움이 되지 않을 수 있다. 단기·장기 목표 어디에도 기여하지 못할 가능성이 크다.

특히 경험이 부족한 주니어에게는 유행하는 아키텍처나 설계를 깊이 소화하기 어렵다.
그럼에도 유행에 휩쓸려 학습 목표를 실습과 경험보다 멀리 두는 것은 효율이 낮은 경우가 많다.

물론 실습과 경험을 쌓으면서 아키텍처나 설계에 관심을 넓혀가는 것은 의미 있지만, 자원 분배 측면에서는 효율을 고려해야 한다.

따라서 자신의 선택이 합리적인지, 여러 가치를 비교하며 판단하는 습관을 들이는 것이 중요하다.


 

마치며


우리는 프로젝트 단위의 큰 결정뿐 아니라, 개발 과정에서 수많은 작은 결정을 내린다.
이러한 선택 하나하나가 모여 나의 역량, 성향, 통찰을 형성한다고 생각한다.

매 결정마다 고민과 이유를 기록하고 회고하는 과정을 거듭하다 보면, 불필요한 고집이나 개인 취향에서 벗어나 보다 합리적인 사고를 할 수 있다.

그리고 이는 결국 좋은 개발자로 성장할 수 있는 중요한 계기가 될 것이다.

ⓒ F-Lab & Company

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

조회수

지금 진행중인 멘토링 코스

궁금한 포지션을 알아보세요.

    코스 이미지
    arrow-right
    자바 백엔드 + AI
    • 아키텍쳐 설계
    • 대용량 트래픽
    코스 이미지
    arrow-right
    노드 백엔드 + AI
    • 아키텍쳐 설계
    • 대용량 트래픽
    코스 이미지
    arrow-right
    파이썬 백엔드 + AI
    • 아키텍쳐 설계
    • 대용량 트래픽
    코스 이미지
    arrow-right
    MSA 백엔드 + AI
    • MSA
    • EDA
    • Kafka
    코스 이미지
    arrow-right
    프론트엔드 + AI
    • 디자인 시스템
    • 모노레포
    코스 이미지
    arrow-right
    안드로이드 + AI
    • Kotlin
    • 공통 SDK 개발
    코스 이미지
    arrow-right
    iOS + AI
    • SwiftUI
    • 비동기 프로그래밍
    코스 이미지
    arrow-right
    플러터 + AI
    • Flutter
    • 크로스 플랫폼
    코스 이미지
    arrow-right
    리액트 네이티브 + AI
    • React Native
    • 크로스 플랫폼
    코스 이미지
    arrow-right
    데브옵스
    • Kubernetes
    • 인프라
    코스 이미지
    arrow-right
    데이터 엔지니어 + AI
    • Spark
    • Kafka
    • 분산 시스템
    코스 이미지
    arrow-right
    머신러닝 엔지니어
    • LLM
    • 딥러닝
    • 추천 시스템
    코스 이미지
    arrow-right
    게임서버
    • 고성능 서버 구축
    • C++ 심화
    코스 이미지
    arrow-right
    게임 클라이언트
    • 언리얼 엔진
    • C++ 심화
    코스 이미지
    arrow-right
    해외취업
    • 기업 탐색
    • 이력서
    • 인터뷰
F-Lab
소개채용멘토 지원
facebook
linkedIn
youtube
instagram
logo
(주)에프랩앤컴퍼니 | 사업자등록번호 : 534-85-01979 | 대표자명 : 박중수 | 전화번호 : 1600-8776 | 제휴 문의 : info@f-lab.kr | 주소 : 서울특별시 종로구 돈화문로88-1, 3층 301호 | copyright © F-Lab & Company 2025