# 왜 엔지니어는 프로그래밍 언어를 합리적으로 선택하지 못할까? – spf13의 통찰을 중심으로

*SEO 키워드: 프로그래밍 언어 선택, 엔지니어 사고 방식, 코딩 생산성*

---

# # 서론 – “어떤 언어가 최고인가?” 라는 물음은 왜 이렇게 뜨거운가

소프트웨어 개발 현장에서는 언제나 “가장 좋은 프로그래밍 언어는 무엇인가?”라는 논쟁이 끊이지 않는다.

특히 **엔지니어**들 사이에서는 자신이 선호하는 언어를 옹호하면서도, 그 이유를 논리적으로 설명하기가 어렵다.

이러한 현상은 **spf13**이 Reddit에 올린 글 *“Why Engineers Can't Be Rational About Programming Languages”* 에서도 잘 드러난다. 그는 엔지니어가 언어를 선택할 때 감정·편견·사회적 압력 등에 휘말리며, 순수한 **코딩 생산성**이나 **기술적 적합성**보다 다른 요소에 좌우된다고 주장한다.

이번 포스트에서는 spf13의 주장을 바탕으로, 엔지니어가 언어를 합리적으로 판단하지 못하는 **네 가지 핵심 원인**을 살펴보고, **초보 개발자**도 이해하기 쉬운 실용적인 대안을 제시한다.

---

# # 본론

## # 1️⃣ 심리적 편향 – ‘내가 사용해 온 언어가 최고’라는 착각

* **현상**: 대부분의 엔지니어는 자신이 오랫동안 사용해 온 언어에 친숙함을 느끼며, 이를 “가장 효율적이다”라고 주장한다.

* **왜 발생할까?**

  * **현상 유지 편향( status‑quo bias )** – 변화를 두려워하고 현재 상태를 유지하려는 심리.

  * **확증 편향( confirmation bias )** – 기존 신념을 강화해 주는 정보만 선택적으로 수용.

* **초보자를 위한 팁**

  * 새로운 언어를 배울 때는 **객관적인 지표**(예: 실행 속도, 라이브러리 지원, 커뮤니티 규모)를 체크해 보자.

  * “내가 익숙한 언어가 최고”라는 가정을 **노트에 적어두고, 반박 근거를 찾아보는 연습**을 하면 편향을 인식하기 쉽다.

---

## # 2️⃣ 사회적 압력 – ‘팀 문화’와 ‘시장 트렌드’가 선택을 좌우

* **현상**: 스타트업에서는 “우리 팀은 Go를 쓴다”는 식으로 언어가 **팀 문화**와 연결된다.

* **왜 발생할까?**

  * **동조 압력** – 팀원과 같은 도구를 쓰면 커뮤니케이션 비용이 낮아진다.

  * **시장 가치** – 구인·구직 사이트에서 특정 언어가 ‘핫’하면, 채용·이직에 유리하다는 인식이 퍼진다.

* **초보자를 위한 팁**

  * **팀 내부 가이드라인**을 확인하고, “왜 이 언어를 쓰는가?”에 대한 공식적인 이유를 문서화하도록 제안한다.

  * 개인 프로젝트에서는 **다양한 언어**를 실험해 보며, “내가 진짜 원하는 언어는 무엇인가?”를 탐색한다.

---

## # 3️⃣ 기술적 복합성 – ‘언어 자체가 아니라 생태계’를 놓치다

* **현상**: 언어 자체보다 **프레임워크·라이브러리·툴 체인**이 프로젝트 성공에 더 큰 영향을 미친다.

* **왜 발생할까?**

  * **생태계 의존성** – 예를 들어, Python은 풍부한 과학·데이터 라이브러리 덕분에 데이터 분석 분야에서 강세를 보인다.

  * **학습 곡선** – 언어는 비교적 단순해도, 주변 툴이 복잡하면 전체 생산성이 떨어진다.

* **초보자를 위한 팁**

  * 언어를 평가할 때 **‘생태계 점수’를 매겨 보자**. (예: 라이브러리 수, 문서 품질, 커뮤니티 활성도)

  * 프로젝트 목표에 맞는 **핵심 툴**이 이미 존재하는 언어를 우선 고려한다.

---

## # 4️⃣ 감정적 만족감 – ‘코드가 아름다워 보인다’는 주관적 판단

* **현상**: “이 언어는 문법이 예쁘다”, “코드가 읽기 쉽다”는 감정적 평가가 선택에 큰 비중을 차지한다.

* **왜 발생할까?**

  * **미적 만족감**은 작업 동기부여와 직결된다. 하지만 이는 **개인 취향**에 불과하고, 팀 전체의 생산성에는 반드시 일치하지 않는다.

* **초보자를 위한 팁**

  * **코드 리뷰**를 통해 실제 동료가 느끼는 가독성을 확인한다.

  * **코드 스타일 가이드**를 도입해, 개인적 미감보다 **통일된 규칙**에 따라 코드를 작성한다.

---

## # 5️⃣ 의사결정 구조 – ‘경영진·프로덕트 팀’의 영향

* **현상**: 기술 리더가 아닌 **경영진**이 “시장 트렌드에 맞춰 새로운 언어 도입”을 지시한다.

* **왜 발생할까?**

  * **비즈니스 목표**(시장 진입 속도, 유지보수 비용 절감 등)와 **기술 선택**이 직접 연결되면서, 엔지니어의 기술적 판단이 뒤로 밀린다.

* **초보자를 위한 팁**

  * **비즈니스 요구사항**과 **기술적 요구사항**을 매트릭스로 정리해, 양쪽 입장을 동시에 보여줄 수 있는 자료를 만든다.

  * 회의에서 **‘기술 부채’를 수치화**해 제시하면, 언어 선택에 대한 합리적인 논의를 이끌어낼 수 있다.

---

# # 결론 – 합리적인 언어 선택을 위한 3가지 액션 플랜

1️⃣ **객관적 평가 기준 만들기**

   - 실행 속도, 라이브러리 수, 커뮤니티 규모 등 **정량적 지표**를 표로 정리하고, 팀 회의에서 공유한다.

2️⃣ **실험 프로젝트 진행**

   - 작은 사이드 프로젝트나 **프로토타입**을 다른 언어로 구현해 보며, 실제 **코딩 생산성**과 유지보수 난이도를 체험한다.

3️⃣ **편향 인식·공유 문화 조성**

   - “우리 팀은 왜 이 언어를 쓰는가?”라는 질문을 **정기적인 회고**에 포함시키고, 각자의 편향을 **노트에 기록**하도록 독려한다.

> **행동을 촉구합니다!**

> 오늘 당장 **‘언어 선택 체크리스트’를 만들고** 팀 위키에 올려 보세요. 작은 변화가 엔지니어가 보다 **합리적이고 과학적인** 선택을 할 수 있는 기반이 됩니다.

---

*위 글은 spf13의 Reddit 글을 한국 개발자 커뮤니티에 맞게 재해석한 것이며, 초보자도 이해하기 쉬운 실용적인 가이드를 제공하고자 작성되었습니다.*
