nestjs 썸네일nestjs

2025-02-07

목차

  1. 이력서와 경력 관리
  2. 반년 휴식기 활용법
  3. SSL과 HTTP/HTTPS 관련 이슈
  4. 설계 문제와 레거시 코드 개선 고민
  5. 개발 조직 내 커뮤니케이션과 리더십
  6. 원격근무의 장단점과 생산성 관리
  7. 타입스크립트(TypeScript)의 매력과 활용
  8. 객체지향 프로그래밍(OOP) 이해 및 적용
  9. 중국 AI 및 데이터 보안 우려
  10. 기술 면접, 과제, 그리고 프로젝트 관련 팁

1. 이력서와 경력 관리

  • 이력서에 쓸 내용이 없다는 고민이 많음.
  • 경험이 없어서가 아니라, 경험을 글로 잘 못 표현하는 경우가 많음.
  • 본인의 약점과 강점을 객관적으로 분석할 필요가 있음.
  • 시니어 개발자나 팀 리더에게 자신의 경력에 대한 피드백을 받는 것을 추천.
  • 경력증명서에 '딱히 한 게 없다'고 명시되면 신뢰도가 떨어질 수 있음.

2. 반년 휴식기 활용법

  • 시간이 생겼을 때 깊게 파볼 것인지 사업적인 것인지 고민하는 상황.
  • 자신이 강화하고 싶은 기술이나 보완해야 할 역량을 찾는 것이 중요.
  • 무엇을 해야 할지 모르겠다면 지금까지 한 일들을 정리하고 피드백을 받자.

3. SSL과 HTTP/HTTPS 관련 이슈

  • SSL 인증서 설정 문제로 프로젝트 작업에 어려움을 겪음.
  • HTTP를 HTTPS로 전환하는 작업에서 꼬임이 발생하는 경우가 있음.
  • HTTPS는 웹사이트와 사용자 간의 통신을 암호화해 보안을 강화하는 프로토콜임.
  • SSL 인증서 관리를 잘 해야 혼란을 막을 수 있음.

4. 설계 문제와 레거시 코드 개선 고민

  • 잘못된 설계가 프로젝트 전체 코드를 망가뜨릴 수 있다고 한탄.
  • 레거시 코드가 이해하기 어렵고, 도메인 지식 부족으로 인해 이프문으로 땜질하는 상황 다수.
  • 좋은 개발 문화는 도메인별로 책임을 분산시키고 관리 기간을 늘리는 것인데 인력 부족으로 어려움.
  • 설계와 외부 요구사항 간의 간극을 팀 내 투명하게 공유하고 해결책을 모색하자.
  • 개선이 안 될 경우, 리더가 직접 나서서 조율하고 싸워야 한다는 의견도 있음.

5. 개발 조직 내 커뮤니케이션과 리더십

  • 리더 역할의 중요성 강조: 팀 내부 문제에 총대를 메고 대응해야 함.
  • 현실적으로 CTO 등이 기술에 관심 없으면 해결이 어려움.
  • 작은 스타트업일 경우, 무리한 일정 맞춤 후 발생하는 사고를 공론화하여 공수를 늘리는 전략 사용.
  • 변화가 없고 무시당하는 것은 개발자로서 큰 스트레스 요인.

6. 원격근무의 장단점과 생산성 관리

  • 원격근무는 출퇴근 시간을 줄여 개인 발전에 도움을 주지만 '양날의 검'.
  • 관리가 가능한 자기주도적이고 공부하는 사람만 원격근무가 잘 맞음.
  • 대규모 조직에서는 원격근무 관리가 어려워 생산성이 떨어질 수 있음.
  • 원격근무 시 생산성 체크가 필수이며, 무관리 상태에서는 일 안 할 가능성 큼.
  • 풀리모트와 월세 지원 같은 복지 정책이 애사심에 큰 영향 미침.

7. 타입스크립트(TypeScript)의 매력과 활용

  • 타입스크립트는 자바스크립트에 타입을 추가해 코드 안전성과 유지보수성을 높임.
  • 조건부 타입, 리터럴 타입, 유니온 타입 등 복잡한 타입 표현이 가능해 매우 강력함.
  • '타슬람'(타입스크립트 신도) 이라는 별명이 있을 정도로 강력한 팬덤 존재.
  • 타입 시스템은 JSON 스키마를 표현할 정도로 진화 중이며, Nestia, Typia 같은 라이브러리가 있음.
  • 타입스크립트를 제대로 공부하면 코딩 테스트보다 실무에 더 많은 도움이 됨.

8. 객체지향 프로그래밍(OOP) 이해 및 적용

  • 객체지향의 핵심은 캡슐화: 객체가 내부 상태를 숨기고 인터페이스로 소통.
  • 프로그램이 복잡할수록 객체 간의 깊이(depth)와 의존성이 증가하는 문제 존재.
  • 캡슐화로 객체 간 의존성은 줄이면서 복잡도를 완화할 수 있음.
  • B타입 계열 객체가 많아지는 경우는 특수형(B+)으로 묶어 관리하는 방법도 있음.
  • 도메인 지식이 있어야 객체지향 설계가 더 효과적이며, 기준이 사람마다 다르기 때문에 일관성이 중요.
  • 객체지향은 복잡한 비즈니스 로직을 쉽게 처리하고 유지보수하기 위한 프로그래밍 패러다임임.
  • 입문자를 위한 쉽게 풀어쓴 강의나 책, 영상 추천 (예: 조영호님 책, 유튜브 ‘똥칸 아저씨’ 비유).

9. 중국 AI 및 데이터 보안 우려

  • 중국산 AI 서비스들의 데이터 전송 및 보안 문제에 대한 의심 많음.
  • 중국 AI 관련 오픈소스의 데이터 수집 및 관리 방식에 신뢰 문제 존재.
  • 한국에서도 비슷한 AI 프로젝트들을 만들어야 한다는 의견.
  • AI는 국가 전략자원으로 간주되며, 중국의 저비용 고급 인력 투입 등이 가능하지만 우려됨.

10. 기술 면접, 과제, 그리고 프로젝트 관련 팁

  • TypeOrmModule.forRoot()와 forRootAsync() 차이:
    • forRootAsync는 비동기 동적 설정이나 외부 프로바이더(예: ConfigService) 주입 시 사용.
  • 기술 과제는 질문 없이 바로 내주는 경우도 있어 부담 됨.
  • 코딩 테스트와 지속적인 실력 향상을 위한 ‘타입챌린지’ 같은 연습 권장.
  • 좋은 오픈소스 및 유틸리티 도구 공유 (예: 카드 BIN 코드 관리 툴: https://bin-ko.deno.dev).
  • 코드 설계 및 타입 작성 시 ‘순환참조’ 주의 필요.
  • 프로그래밍 시 요구사항 정의가 어렵고, 타입으로 명확히 표현하는 것이 중요함.

면접팁⚡

  • 경력관리 및 이력서 작성 시, 경험을 잘 표현하는 능력이 중요.
  • 면접이나 과제 시, 기술적인 질문 외에도 자신이 개선하고 싶은 역량에 대한 명확한 답변 준비.
  • 타입스크립트와 객체지향 개념은 최근 면접에서 자주 등장하므로 기본 개념 숙지 필수.
  • ORM 설정 시 비동기 초기화를 요구하는 환경에서는 forRootAsync 사용 권장.
  • 복잡한 코드와 설계 문제를 진단하고 개선방향을 논의할 수 있는 능력도 평가 대상.

링크🔗

#개발자대화#이력서작성#설계문제#원격근무#타입스크립트#객체지향프로그래밍#AI보안#소프트웨어개발#기술면접#레거시코드