목차
- PR 리뷰 지연 및 절차
- 스케줄러 관리 방식 & BullMQ Redis 활용
- 개발자 성장과 일정 산정 노하우 (30% 룰)
- 코딩 테스트와 실무 코드 스타일 차이
- NestJS Swagger 설정 방법
- 해외 부동산과 월세 경험 공유
- Prisma와 MySQL 타임존 이슈 해결
- 서버리스와 AWS API Gateway WebSocket 활용
- 경력직 이직 준비 팁
- 주소 체계와 좌표 변환 이슈
1. PR 리뷰 지연 및 절차
- PR이 한 달째 리뷰되지 않고 리뷰어도 할당되지 않은 상황 발생
- 보통 PR에 코멘트가 많이 달리면 리뷰어가 확인하는 경향
- 추가 요청이나 따로 알림을 보내는 절차가 필요한지 문의
- 리뷰 지연 시 적극적인 커뮤니케이션 필요성이 강조됨
2. 스케줄러 관리 방식 & BullMQ Redis 활용
- 2가지 방식으로 스케줄러 관리 논의:
- API 서버 내부에 스케줄러 코드 포함
- 별도의 스케줄러 서버로 분리 운영
- 장점과 단점:
- 내부 구현 시 서버 다운이나 서버 확장 시 동시 실행 문제 발생 가능
- 별도 서버 운영 시 부하 분산 및 장애 대응 유리
- Kubernetes CronJob 사용 제안
- NestJS에서는 BullMQ 사용 추천(이 작업 큐 시스템은 Redis 기반이며, 작업을 비동기로 효율적으로 관리 가능)
- Redis를 띄워야 하는 불편함 있지만 강력한 안정성 제공
기술 개념 - BullMQ와 Redis
- BullMQ는 Node.js 환경에서 작업 큐를 다루는 라이브러리임
- Redis 서버가 작업 상태 저장, 스케줄링, 작업 재시도 등에 활용됨
- 따로 서버 분리하면 장애 발생 시 독립적인 복구가 가능해 안정성 증가
3. 개발자 성장과 일정 산정 노하우 (30% 룰)
- ‘30% 룰’ 소개: 자신이 생각하는 능력의 30%만 사용해 기간 산정
- 개발자는 실제 투입 가능한 퍼포먼스가 평소 예상보다 낮음
- 대표나 PO가 기간을 먼저 지정할 때, 작업량 줄이고 MVP 중심으로 기능 구현 권장
- 완벽한 제품보다 유저에게 보이는 완성도를 중요시
- 일정 산정 시 기본 설계·문서 작업 등도 충분히 고려해야 함
- 의도적인 코드 품질 저하나 혼란 상태 허용은 일정 엄격할 때 활용 가능
4. 코딩 테스트와 실무 코드 스타일 차이
- 코딩 테스트 문제는 빠른 시간 내 풀이 및 알고리즘 적합성 평가에 초점
- 실무에서는 가독성 높은 map, filter, reduce 등 함수형 코딩 선호
- 코딩 테스트에서는 반복문이나 해시맵 위주의 풀이가 일반적
- 실무 코드에서는 요구사항에 맞춘 유지보수와 확장성 고려
- 해당 차이 이해는 면접 준비 시 중요
5. NestJS Swagger 설정 방법
- JWT 인증 사용 시 Swagger 내에 @ApiBearerAuth() 어노테이션 활용 권장
- main.ts에서 CORS와 Swagger 설정을 적절히 활성화 필요
- Swagger 보안 스키마에 bearer 타입 JWT 작성 필수
- NestiaSwaggerComposer와 SwaggerModule을 활용해 문서 자동 생성 가능
추가 팁
- 컨트롤러 메서드에 @Secure 혹은 Swagger 문서 주석으로 인증 설정 명시
- Swagger UI에서 Authorization 헤더 입력으로 인증 테스트 지원
6. 해외 부동산과 월세 경험 공유
- 다양한 국가 월세, 전세, 렌트 환경 소개
- 한국은 월세가 실수령액의 60% 초과 시 거절하는 문화도 있음
- 미국, 영국 등은 소득 증명, 보증인 요구가 많고 월세 비중도 높음
- 유학생, 워홀러들은 협소한 공간에 다수가 거주하는 사례 많음
- 좋은 자취방 조건:
- 햇빛 잘 들고 창문 많을 것
- 화장실 공간 넓음과 위생 상태 양호
- 역세권 위치와 편의시설 접근성 중요
- 재택근무 확산으로 집환경의 중요성이 커지고 있음
7. Prisma와 MySQL 타임존 이슈 해결
- created_at과 updated_at의 시간 저장 방식 이원화 문제 발생
- Prisma는 create 시 자체적으로 UTC 기반 값을 넣고, update는 DB 자동 갱신(한국시간)
- DB 타임존과 드라이버, ORM 동기화가 중요
- 해결책:
- Prisma 스키마에 @createdAt, @updatedAt 어노테이션 활용
- 서버 측에서 UTC 시간을 일괄 관리 혹은 DB 시간대 설정 통일
- 쿼리 로그 분석으로 시간대 데이터 흐름 파악
- 일반적으로 서버↔클라이언트 통신은 UTC 표준 권장, 사용자에게 시간 표현만 현지화
타임존 관리 팁
- 데이터베이스는 UTC 저장, 애플리케이션/클라이언트에서 필요한 시간대로 변환 권장
- MySQL에서는 timestamp 컬럼이 타임존 영향을 받음, datetime은 안 받음 참고
8. 서버리스와 AWS API Gateway WebSocket 활용
- AWS API Gateway는 WebSocket 지원으로 서버리스 아키텍처에서 실시간 통신 가능
- Lambda 함수와 연동하여 비용 효율적 및 확장성 높은 소켓 서버 운영 가능
- 기존 NestJS + Serverless 환경과 연동 시 특별한 설정 확인 필요
- 앱싱크(AppSync) 등 GraphQL 실시간 데이터 처리도 고려 가능
- 비용과 트래픽에 맞는 적절한 서버리스 구성 설계가 중요
9. 경력직 이직 준비 팁
- 작은 스타트업 리드 경험도 충분히 내세울 수 있음
- 기술적 도전이 적어도 시스템 아키텍처 설계 경험, 최선의 선택 근거 제시 중요
- 특이 경험, 문제 해결 과정과 기술 스택 설명이 도움됨
- 경력직 이직 시 자신의 역할과 영향력, 기술 깊이를 구체적으로 표현
10. 주소 체계와 좌표 변환 이슈
- 국내 주소 체계는 도로명, 법정동, 행정동 등 다양한 타입 존재
- 좌표 변환 (위도·경도)과 주소 매칭은 배달 서비스 등에서 핵심 문제
- 좌표계 종류(카텍, GPS 등)와 데이터 일관성 중요
- 지도 API(네이버, 카카오, 구글, MapBox 등)와 좌표계 상호 보완도 필요
- 실무에서 API를 통한 지오코딩(주소→좌표 변환)과 역지오코딩 지원 필수
- 부정확한 주소 데이터는 서비스 품질 저하 및 운영 문제 야기
면접팁⚡
- 스케줄러 운영 방식 질문에선 별도 스케줄러 서버 운영의 장점(부하 분산, 장애 복구)을 어필
- 코딩 테스트 대비 실무 코딩 스타일 차이점 인지 및 장단점 설명 가능해야 함
- 타임존 문제 해결 경험과 Prisma/MySQL 연동 시 주의점 구체적으로 이야기하면 깊이있는 인상 가능
- 프로젝트 일정 산정에 대해 ‘30% 룰’ 개념과 MVP 우선 전략 설명하며 현실적인 의사소통 중요성 강조
- Swagger 보안 설정 경험 있으면 API 문서화 이해도 높다는 인상
링크🔗
-
NestJS Swagger 문서 (Nestia):
https://nestia.io/docs/swagger/#controller-methods -
Prisma @updatedAt 문서:
https://www.prisma.io/docs/orm/reference/prisma-schema-reference#updatedat -
AWS API Gateway WebSocket Chat App:
https://docs.aws.amazon.com/ko_kr/apigateway/latest/developerguide/websocket-api-chat-app.html -
주소 내부정제 블로그 (컬리):
https://helloworld.kurly.com/blog/refine-address-internalization-1/ -
LIKET 앱(App Store):
https://apps.apple.com/kr/app/liket-%EB%9D%BC%EC%9D%B4%EC%BC%93/id6740985636?l=en-GB -
LIKET 개발 후기 (Velog):
https://velog.io/@joch2712/%EC%9A%B0%EB%8B%B9%ED%83%95%ED%83%95-LIKET-%EA%B0%9C%EB%B0%9C%ED%95%98%EA%B8%B0 -
Trae (Cursor-like 무료 서비스):
https://www.trae.ai/
#NestJS#Swagger#BullMQ#Prisma#MySQL#타임존#AWSAPIgateway#WebSocket#스케줄러#개발면접