Project 3

성능 테스트를 위해 외부와 의존성 분리하기

우아한테크캠프 6기를 진행하며 최종 프로젝트에서 고생한 내용을 회고하며 정리한 문서입니다. 프로젝트 소개 든든킷은 우아한테크캠프 6기 마지막 최종 과제인 쇼핑몰 구축 미션을 위해 제작된 프로젝트입니다. 프로젝트를 준비하는 과정에서 '이왕 하는 김에 제대로 진행해보자' 라는 욕심 가득한 마음에, `토스페이 테스트 API`를 연동해 실제 주문 및 결제 과정 개발을 경험해 보자는 의견이 통과되었고, 제가 해당 부분을 맡아 개발하게 되었습니다. 교육 기간동안 TDD를 의식적으로 연습하고, 테스트의 중요성을 뼈저리게 느꼈기 때문에, 결제 기능도 꼼꼼하게 테스트하기 위해 많은 노력을 했습니다. 성능 테스트 nGrinder 퍼포먼스 테스팅 툴은 nGrinder를 사용했습니다. docker를 이용해 로컬에 contro..

든든킷 결제 성능 개선기

우아한테크캠프 6기를 진행하며 최종 프로젝트에서 고생한 내용을 회고하며 정리한 문서입니다. 프로젝트 소개 든든킷은 우아한테크캠프 6기 마지막 최종 과제로 진행한 프로젝트입니다. 프로젝트를 준비하는 과정에서 '이왕 하는 김에 제대로 진행해보자' 라는 욕심 가득한 마음에, `토스페이 테스트 API`를 연동해 실제 주문 및 결제 과정 개발을 경험해 보자는 의견이 통과되었고, 제가 해당 부분을 맡아 개발하게 되었습니다. 프로젝트는 대략 2주 동안 진행되었습니다. 작은집 7층 강의장에서 하루 12시간을 몰두하며 노력한 결과, 일주일만에 계획했던 기능들을 모두 구현하는데 성공했습니다. 그래서 남은 일주일은 더 이상 기능 확장은 접어 두고, 기존 개발된 기능들의 성능 개선 및 예외처리에 집중하기로 했습니다. 결제 흐..

Github Actions, CodeDeploy로 Spring Application CI/CD 구축하기

우아한테크캠프 6기를 진행하며 최종 프로젝트를 위해 CI/CD를 구축하며 정리한 문서입니다. LoadBalancer를 사용하지 않고 단일 EC2에 배포할 예정이라면 EC2, S3, CodeDeploy 설정, GitHub 설정 항목만 진행하셔도 됩니다. 이 경우 CodeDeploy 설정 - 배포 그룹 생성 시 로드 밸런싱 활성화 옵션을 Off 해주시면 됩니다. Actions + CodeDeploy Github Actions는 GitHub에서 제공하는 서비스로, 레포지토리마다 부여된 환경에서 특정 이벤트의 발생에 따라 작업을 실행하거나, 주기적으로 특정 작업을 실행할 수 있는 서비스입니다. 이번 실습에서는 EC2 인스턴스는 private 서브넷에 두어 외부에서 접근할 수 없게 막고, public 서브넷에 로..