미리보기
기본 정보

(첨부 파일_이력서를 확인하시면 더욱 상세하게 확인할 수 있습니다) 국밥같은 백엔드 개발자 박형주입니다. 언제나 맡은 일에 책임감을 가지고 함으로써, 같은 팀원들에게 “믿고 맡길수 있는 든든한 국밥같다.” 라는 별명을 얻었습니다. 주어진 상황, 문제에 대하여 최적의 방법을 항상 고민하고, 새로운 기술이 필요하다면 빠르게 배워 적용하여 맡은 일에 최선을 다해 해결합니다. - 언제나 배운것을 꼼꼼히 정리하여 기록하는 습관을 가지고 있으며, 부트 캠프 내 보조 자료로 채택된 경험이 있습니다. - Nobase부터 시작하여 단 4개월만에 동시성 제어, 대용량 트래픽 관련 서비스를 구현한 경험이 있어 성장 속도가 빠르고, 새로운 기술 습득에 있어 두려움이 없습니다. - 최적화된 프로세스를 바탕으로 업무를 한 경험과, 불편한 점을 개선하려는 기구개발을 한 경험을 토대로 최적의 데이터 구조 설계와 코드 개발에 항상 노력합니다.
기술 스택
Node.js, NestJS, JavaScript, TypeScript, Express, TypeORM, PostgreSQL, Redis, AWS, GitHub, Docker
경력
삼성전자 DS
CL2 | CMP기술팀
2021.07. ~ 2023.05. (1년 11개월)
Foundry 사업부 CMP기술팀 설비기술 Engineer
- 반도체 CMP 설비 생산관리 & 유지보수
- CMP 설비 Head Position Calibration Tool 개발하여 교정 시간을 90분 → 30분 단축
(신입사원 기준) - 신입사원 교육 진행 시 TIL 작성법에 대하여 “보여주기 형식이 아니라 무엇이?, 왜?, 어떻게 해결할 것인가?”를 기준으로 작성하게 하였으며, 이후 CMP기술팀 요청으로 TIL Template 배포
프로젝트
TicketNest
항해 99 부트캠프
2023.07. ~ 2023.09.
동시성 제어, 대용량 트래픽 관련 Ticketing 서비스 구현
항해 99 최종 프로젝트 최우수상 선정
개발
TypeScript, NestJS, Redis, PostgreSQL, TypeORM, ElasticAPM, Swagger배포&Test
AWS EC2, Haproxy, Pg-Pool, nGrinder, Jest, Docker
📄 Notion 링크 ♐ Github 링크 📽️ 시연영상
- 티켓 예매 신청 API 기능 비즈니스 로직 구현
- 동시성 제어를 위해 Entity 내 새로운 컬럼 추가하고 배타 Lock 적용 진행
- 해당 비즈니스 로직을 통해 대규모 요청 호출을 하였지만 응답이 매우 느리며, 서버 성능 개선 진행
- 동적 쿼리 사용을 통한 개선
- 제한된 리소스 상황을 가정하여, DB 동적 쿼리를 사용해 성능 개선
- Redis Message Queue를 사용한 개선
- Pub/Sub 구조로 서버 설계 및 BullJS 모듈 사용
- Pub에서 비동기 처리를 통해 예매 신청 데이터를 Queue에 전달하고, 이후 Sub에서 순차적으로 예매 처리를 진행
- 예매 처리가 완료되면 Sub에서 Socket을 이용하여 해당 유저에게 예매 완료 메세지를 전송하거나 실패 메세지 전송
- Server Scale Out 진행
- 대량의 요청을 받기 위해 Haproxy 로드 밸런서 적용 후, Pub Service Scale Out 진행하여 TPS를 1040.7 → 3601.6으로 증가 (WAS_Pub 1대 → 3대)
- Server 성능 모니터링 진행
- 개발 초기, NetData를 활용하여 서버 CPU, Network 성능을 확인하였으나, 비즈니스 로직 부분
병목 현상 확인과 대용량 트래픽 발생 시 NetData Application 서버 부하 문제로 인해 Elastic APM으로 변경- Elastic Cloud 비용 문제로 인해 On-premise 방식 채택 (Docker-Compose를 통해 Elastic Search, Kibana, APM Server 구현)
- 개발 초기, NetData를 활용하여 서버 CPU, Network 성능을 확인하였으나, 비즈니스 로직 부분
- nGrinder를 통한 Server 부하 Test 진행
- 대용량 트래픽 환경 조성을 위하여 nGrinder Agent, Controller 서버 구현
- 부하 테스트 코드 작성 및 Test 진행