목차
- 개발자들의 일상과 사내 문화
- DTO 암호화 로직 분리 고민
- effect-ts를 활용한 DB 트랜잭션 처리 이슈
- AWS Cognito 인증 에러 상황
- 휴먼 에러 예방과 시니어 책임감
- NestJS 11 버전 업그레이드 소식
- Vue.js 2 vs 3, 그리고 TypeScript 도입 논의
- TypeScript 도입의 장단점 및 학습곡선
- TypeScript의 성능과 개발 환경 이슈
- 파이썬 pydantic과 타입 관리 고민
1. 개발자들의 일상과 사내 문화
- 개발자들 사이에서 사내 연애, 개발자 성비, 사내 분위기에 대한 농담과 이야기 활발
- 특히 "사내에도 여자 개발자가 많다"는 점과 사내 연애에 관한 이야기 등장
- 개발자들끼리 소소한 유머와 일상 이야기로 유대 강화
2. DTO 암호화 로직 분리 고민
- DTO(Data Transfer Object)의 name 필드를 암호화해 DB에 저장하는 상황
- 현재 암호화 로직이 특정 서비스 메서드에 중복 구현되어 관리가 비효율적임
- 미들웨어나 데코레이터 패턴을 통해 암호화 로직을 분리하는 아이디어 제시
- 데코레이터는 특정 필드에 적용하는 방식이므로 현재 한 필드만 암호화 할 경우 적절한 선택
[용어 설명]
- DTO: 클라이언트와 서버 간 데이터 전송을 위한 객체로, 본래 모델과는 별개로 설계해 필요 데이터만 포함함
- 데코레이터 패턴: 기존 기능에 추가 기능을 동적으로 붙이는 디자인 패턴. 코드 중복 제거와 유지보수에 유리함
3. effect-ts를 활용한 DB 트랜잭션 처리 이슈
- effect-ts 라이브러리로 DB 트랜잭션을 처리하는데, 트랜잭션 콜백 함수가 Effect를 반환하면 바로 실행되지 않음
- Effect.runPromise를 사용하는 방안이 있지만 의존성 해결 문제가 복잡함
- 직접 구현한 예제가 공유되었으나 실제 프로젝트 적용 여부는 미확인
[용어 설명]
- effect-ts: 함수형 프로그래밍 스타일을 지원하는 TypeScript 라이브러리로, 사이드 이펙트를 안전하게 관리함
- Effect: 함수나 작업의 부작용(데이터베이스 접근, 네트워크 요청 등)을 지연 실행 가능한 형태로 다룸
4. AWS Cognito 인증 에러 상황
- AWS 인증 서비스인 Cognito를 사용하는 중 에러 발생 보고
- 특정 이슈 상황을 공유하며 관심 있는 개발자들이 대응 방안 문의
5. 휴먼 에러 예방과 시니어 책임감
- 개발 과정에서 반복되는 실수를 코드로 막아야 하는지, 아니면 사람들을 질타하며 넘겨야하는지 논쟁
- 시니어 개발자의 역할로서 귀찮은 일을 총대매고 문제를 해결하는 책임감 강조
- 주니어 개발자가 시니어가 되고 싶다는 의지 표명과 함께 동료들의 공감과 응원
6. NestJS 11 버전 업그레이드 소식
- NestJS가 11버전으로 버전업 되었음 (주요 변경점은 주로 버그 수정)
- Node.js 18버전은 아직 지원하지 않아 호환성 주의 필요
- 새 버전에 바로 따라가기보다 안정화 기간을 갖는 것이 좋다는 의견도 있음
7. Vue.js 2 vs 3, 그리고 TypeScript 도입 논의
- UI를 웹으로 전환하면서 Vue 버전 선택 문제 제기 (Vue 2 vs Vue 3)
- 팀원이 JavaScript도 익숙하지 않은 상황에서 TypeScript 도입 필요성 고민
- 일반적인 신규 프로젝트는 최신 LTS(Long Term Support) 버전, 즉 Vue 3와 TypeScript 도입 추천
- TypeScript와 Vue 3 조합은 책임감 있는 개발자라면 장기적으로 유리
8. TypeScript 도입의 장단점 및 학습곡선
- TypeScript 도입 시 초반 학습 곡선에 대한 우려 제기
- ESLint, Prettier 같은 도구와 IDE의 도움으로 학습 부담을 줄일 수 있음
- 팀장 등 비개발자 설득을 위해 TypeScript 도입의 생산성 및 코드 안정성 강화 측면 강조
- TypeScript를 도입하지 않으면 유지보수 비용이 장기적으로 더 커질 수 있다는 점 인정
9. TypeScript의 성능과 개발 환경 이슈
- TypeScript 사용 시 IDE가 느려지거나, 빌드 과정이 무거워지는 문제 있음
- 메모리 부족(특히 저사양 PC에서 1~2GB 메모리)는 개발 환경에 큰 영향을 미침
- 최소 2코어 CPU, 4기가 이상의 메모리 환경이 안전한 개발 환경으로 추천
- 실제 개발자들은 TypeScript 없으면 위험하지만, 불편함도 분명 존재한다고 공감
10. 파이썬 pydantic과 타입 관리 고민
- 파이썬 타입 검증 라이브러리인 pydantic 언급
- 복잡한 중첩 객체 구조에서 타입을 어떻게 커스텀할지 고민하는 사례
- 제네릭 타입 인자를 통해 여러 키를 유니온으로 받을지, 아니면 키를 하나만 강제할지 고민 중
- 타입 시스템 확장 및 실무 적용 시 세밀한 고민과 시간이 필요한 부분임
[용어 설명]
- pydantic: 파이썬에서 데이터 유효성 검사와 설정 관리를 위한 라이브러리로, 타입 어노테이션에 기반한 엄격한 데이터 모델을 제공함
면접팁⚡
- DTO 암호화 로직을 중복 없이 효율적으로 관리하는 방법을 묻는 질문에 데코레이터 패턴 활용을 추천할 수 있음
- effect-ts 등 함수형 프로그래밍 도구 사용 시 부작용 관리에 대해 설명 준비
- TypeScript 도입 시 장단점 및 학습곡선에 대해 현실적인 조언과 경험을 말할 수 있으면 좋음
- 개발환경 세팅(메모리, CPU 권장 사양 등)에 관한 실무 경험 공유 가능하면 좋은 인상
링크🔗
- NestJS 11 릴리즈 노트: https://github.com/nestjs/nest/releases/tag/v11.0.0
- safe-nest-template (effect-ts 트랜잭션 예제): https://github.com/rojiwon123/safe-nest-template/blob/main/src/infrastructure/db.ts
#개발일상#TypeScript#Vue#effect-ts#NestJS#DB트랜잭션#AWS#휴먼에러#파이썬#pydantic