nestjs 썸네일nestjs

2025-02-17

목차

  1. 자바 배우기에 대한 고민과 JS 진영과의 차이
  2. 프로그래밍 언어와 협업 문화
  3. 프론트엔드에서의 DDD(도메인 주도 설계) 적용 논쟁
  4. 효율적인 상태 관리와 프론트엔드 패턴
  5. 문서화의 현실과 중요성
  6. 모닝헬스, 재택근무, 출근 루틴 이야기
  7. 홈카페, 핸드드립 커피 취미 공유
  8. 출퇴근 시간과 이직 고민
  9. 최신 프론트엔드/백엔드 기술 및 툴 이야기 (Typia, Prisma, FastAPI 등)
  10. 회사 지원, 팀 배치, 그리고 개발자 커리어 이야기

1. 자바 배우기에 대한 고민과 JS 진영과의 차이

  • 자바는 대규모 애플리케이션에서 오랫동안 쓰여왔고, 협업 시 발생하는 문제 해결 사례가 풍부함.
  • JS 진영에서는 자바에서 배우는 전통적인 객체지향 개념이나 설계 원칙들이 기본 상식처럼 자리잡지 않은 경우가 많음.
  • 네스트JS 같은 프레임워크 덕분에 자바 진영의 좋은 점들을 약간 경험할 수 있지만, 순수 노드(Node.js) 사용자는 품질 차이가 큼.
  • 프로그래밍 언어 자체가 중요한 게 아니라, 개발자가 얼마나 잘 사용하는지가 중요함.

2. 프로그래밍 언어와 협업 문화

  • 파이썬도 프레임워크를 잘 활용하지 않는 경우 코드 품질이 떨어질 수 있음.
  • PHP 역시 언어 자체는 문제가 아니고, 잘 쓰는 사람이 제대로 쓴다는 의견.
  • 언어 혹은 프레임워크를 통한 코드 관리가 협업의 핵심이며, 관리가 쉬워 보이는 건 착각일 수 있음.
  • 협업 잘하는 사람들은 문서화나 설계도를 꼼꼼히 작성하고, 공책에 그림 그리며 구조를 이해하려 노력함.

3. 프론트엔드에서의 DDD(도메인 주도 설계) 적용 논쟁

  • DDD는 본래 복잡한 도메인 로직을 체계적으로 관리하는 백엔드 개념.
  • 프론트엔드에 DDD를 적용하려는 시도가 있으나, React 등에서 이미 커스텀 훅이나 상태 관리(스토어) 패턴으로 충분히 해결 중.
  • 프론트엔드에 DDD 개념을 과도하게 적용하면 상태 관리가 이중으로 복잡해지고 생산성이 떨어짐.
  • 백엔드에서는 API와 DB 간 객체 분리 및 데이터 보호를 위해 DDD가 유용하나, 프론트엔드에서는 계층이 오히려 과할 수 있음.

4. 효율적인 상태 관리와 프론트엔드 패턴

  • React, Svelte 등 최신 프레임워크는 커스텀 훅, 스토어 같은 추상화로 상태 관리를 간단하고 효율적으로 처리.
  • 내부 로직과 외부 API DTO(Data Transfer Object)를 명확히 분리하는 것이 중요하며, 이를 통해 프레임워크 교체 시에도 비교적 유연성을 제공함.
  • ORM(Object-Relational Mapping)은 데이터베이스와 코드 간의 객체 매핑을 효율적으로 하기 위해 나온 백엔드 패턴이며, 프론트엔드에서는 비효율적일 수 있음.
  • 불필요한 레이어는 오히려 개발 생산성과 유지보수를 저해할 수 있으니, 적절한 추상화에 집중하는 것이 좋음.

5. 문서화의 현실과 중요성

  • 대부분 개발자는 문서화를 '일 끝나고 대충 정리해보자' 수준으로 생각함.
  • 다른 공학 분야에 비해 컴퓨터 소프트웨어는 재사용 및 유지보수가 문서화 없이는 힘들기에 문서화가 매우 중요.
  • 문서화는 보고서 작성이 아니라, 개발자가 이해하고 쉽게 관리할 수 있도록 설계도를 그리거나 주석을 꼼꼼히 다는 등 '협업의 도구'임.
  • 현실적으로 문서화에 투자하는 시간이 부족하지만, 이를 잘 하는 팀은 협업과 유지보수가 훨씬 효과적임.

6. 모닝헬스, 재택근무, 출근 루틴 이야기

  • 모닝헬스(아침 운동) 후 재택근무, 그리고 사무실 출근 루틴을 성공적으로 유지하는 개발자들의 일상 이야기.
  • 운동 루틴 유지가 쉽지 않지만, 하루의 자부심과 활력을 증가시키며 업무 집중을 도와줌.
  • 출퇴근 시간이 길면 건강관리, 자기개발 시간이 사라져 삶의 질에 큰 악영향.
  • 재택근무는 이동시간을 줄여줘 보통 삶의 질이 크게 올라감.

7. 홈카페, 핸드드립 커피 취미 공유

  • 집에서 핸드드립 커피를 즐기며, 원두 분쇄 정도, 물 온도, 물과의 접촉 시간 등이 커피 맛에 영향을 준다는 공유.
  • 가향원두(과일향, 딸기향, 포도향 같은 향을 첨가한 원두)를 맛본 경험도 공유하며, 오리지널 원두(에티오피아, 케냐 피베리 등)를 정복 중이라고 함.
  • 홈카페 재미는 기능보다 갬성(감성)이라는 의견도 있었음.

8. 출퇴근 시간과 이직 고민

  • 출퇴근 3~4시간은 매우 힘든 상황이라 이직 또는 회사 근처 자취가 권장됨.
  • 많은 개발자가 30~40분 내외 출퇴근 거리가 가장 이상적이라고 경험적으로 평가.
  • 이동 시간은 공부, 운동, 휴식 등 자기개발 시간을 빼앗기므로 매우 중요한 요소.
  • 재택근무 가능하거나 출퇴근 혼잡도가 낮은 경우는 장시간 이동도 감내 가능성.

9. 최신 프론트엔드/백엔드 기술 및 툴 이야기

  • Typia: npm 독립 패키지로 FE/BE 통합에 사용되는 신흥 프레임워크. 최근 다운로드 급증하며 관심 집중.
  • Prisma: ORM 중 하나로, 타입 추론을 지원하지만 코드 반복과 복잡도가 느껴질 수 있음. 추상화를 잘하면 관리가 수월해짐.
  • FastAPI: Python 기반 웹 프레임워크로, Pydantic을 통한 데이터 유효성 검사가 강화된 것이 특징. 타입 검증 중요.
  • 각 툴의 특징 및 성능 이슈(예: 플러그인 사용 시 테스트 지연 현상)도 논의됨.

10. 회사 지원, 팀 배치, 그리고 개발자 커리어 이야기

  • 특정 회사(뤼튼)에서 파이썬, PHP, Node.js 등 팀 별로 인력을 배치하며, 면접 통과 여부와 팀 배치에 대한 사연 공유.
  • 파이썬은 타입 안정성에서 약간 유연하지만, ML/AI 분야와 FastAPI와 같은 현대적 도구로 인기.
  • PHP는 강한 타입 검증 측면에서 유리하며, 워드프레스 기반 경험자도 많음.
  • 개인 개발자의 스타일, 경험, 선호도를 고려한 팀 배치가 중요하며, 지속적인 자기개발과 체력 관리 병행 필요.

면접팁⚡

  • 협업 시 문서화의 중요성을 강조할 것. 문서화는 보고서 작성이 아닌 팀 간 이해 공유를 위한 설계도로 인식하기.
  • DDD(도메인 주도 설계)는 백엔드에서 복잡한 도메인 모델 관리에 적합하며, 프론트엔드에 무리하게 적용하기보다 프레임워크별 상태 관리 패턴을 이해하고 적용하는 게 중요.
  • 자바를 기반으로 한 큰 규모 서비스 경험과 협업 노하우는 여전히 큰 강점.
  • 프레임워크나 도구를 무조건 따라 하기보다는, 왜 쓰는지 원리를 이해하고 자신의 스타일과 상황에 맞게 적용하는 것이 좋음.

링크🔗

#자바#프로그래밍언어#DDD#프론트엔드#문서화#재택근무#커피#출퇴근#FastAPI#Typia