목표
개인의 성장 목표, 기술적 고민거리와 트러블 슈팅 경험 등을 문서로 정리합니다.
[피어세션]에서 받은 질문과 피드백을 정리하여 추가해두길 권장합니다.
- 상시로 진행한 개인 회고 결과가 있다면 해당 기록으로 갈음할 수 있습니다.
회고
한마디
미루고 미루었던 DB 딥다이브를 마음껏 할 수 있어 행복했습니다. 누군가에겐 이번 주에 제가 한 쿼리 최적화와 트랜잭션 제어가 가벼운 수준일 지 모르겠지만, 원리와 방법을 알았으니 앞으로 더 세밀한 제어도 가능할 것 같습니다!
KPT 회고
Keep
- 내 단점 보완하기
- 지난 주 Problem에 기재했던, DB에 약하다는 제 단점을 보완하고 다양한 기술적 도전을 수행했습니다. 많이 배웠습니다 칭찬칭찬! 벌크 업로드와 정규화 고려, 트랜잭션 레벨 적용, 동시성 제어 등 앞으로도 적용 가능한 게 있다면 도전!
- 정리하며 개발하기
- 지난 주 Keep처럼 개발기록 잘 남기고 있으며, 금요일 밥시간과 개인회고 시간을 활용해 블로그 업로드도 잘 진행되었습니다. keep keep~
Problem
- 건강관리
- 요즘 독감이 유행이네요 이제 두 주 남았으니 조심조심 건강하게!
Try
- 추가기능 구현
- 멘토님께서 시간이 남았으니 기능을 더 만들어보라는 피드백을 주셨습니다. 뭘 시도할 지 개발할 지 고민을 해봅시다!
- 관리자 페이지를 만들어 프론트 개발연습도 하고 통계기능 등 추가 API도 개발
- 부하테스트와 오토스케일링, 로드밸런싱
- 유닛테스트, e2e테스트 추가구현으로 코드 커버리지 개선
개인의 성장 목표
기술적 도전
- 배포
- CI/CD
GitHub Actions와 Docker를 활용한 CI/CD
- Docker 최적화
AWS, NCP
아키텍처 구조
각 인스턴스들의 역할 : EC2(Server), Lambda(Cloud Functions), S3(Object Storage), VPC(VPC), ELB(Load Balancer), RDS(CloudDB) 등
Object Storage
- NGINX
HTTPS(SSL/TLS) 구축하기
- 로드 밸런싱 기능 활용
- 보안 기능(IP/Port 스캐닝 차단 등) 활용
리버스 프록시를 통해 프론트엔드, 백엔드, 스토리지 서버 등 요청 처리
- DB
- MySQL 동시성 제어
쿼리 최적화
트랜잭션 제어
- NestJS
NestJS LifeCycle
- Test
TDD로 개발하기
- 부하 테스트 및 로드 밸런싱을 통한 대용량 트래픽 대비
기술적 고민
이미지 처리
- Sharp 모듈 활용한 이미지 리사이징, 파일 포맷 변경
DB: 쿼리 최적화, 트랜잭션 제어
- TypeORM 쿼리 로그, MySQL 쿼리 플랜, Query Builder을 이용한 쿼리 최적화 with NestJS
- TypeORM 트랜잭션(Transaction) 제어 with Query Runner 1일차
- TypeORM 트랜잭션(Transaction) 제어 with Query Runner 2일차
MongoDB, NAT Gateway
- MongoDB 설치 및 외부연결 설정, NestJS 연동, NCP NAT Gateway를 통한 private 인스턴스 인터넷 연결
트러블 슈팅
Sharp 플랫폼 종속성 문제 해결
Sharp 사용한 프로젝트 배포시 플랫폼 종속성 문제 해결 (yarn berry)
CORS 트러블 슈팅
CORS 트러블 슈팅
MongoDB 설치/연동, NAT Gateway를 통한 private 인스턴스 외부연결
MongoDB 설치 및 외부연결 설정, NestJS 연동, NCP NAT Gateway를 통한 private 인스턴스 인터넷 연결