본문 바로가기

개발일지/WIL

(11)
[ 230827 ] 37주차 회고 일주일 간 진행한 내용 1. 입찰 API 성능 테스트 3. 입찰 API 성능 개선 입찰 API 성능 테스트 [진행] 입찰 API 성능 테스트를 진행했다. EC2 Instance t2.micro 서버로 Jmeter를 통해 요청을 보냈다. 먼저 SSE를 연결을 했다. SSE 연결이 완료되는 것을 확인하고 입찰 API를 1,000건씩 늘리며 보냈다. 이후 Jmeter의 결과에 대한 정보와 netdata에 기록되는 CPU, Memory 정보를 저장했다. 그걸 서버에서 에러가 날 때까지 계속해서 진행했다. 그리고 여기에 대한 결과를 가지고 팀원과 이야기를 하며 어떤 방향으로 나아갈지 정했다. [생각] 입찰 API 성능 테스트를 해보는 것은 어렵지 않았다. 하지만 거기에서 만나는 여러 가지 에러들이 나를 힘들게 했..
[ 230820 ] 36주차 회고 일주일 간 진행한 내용 1. 성능 테스트 기준 선정 2. 서버에서 성능 테스트 성능 테스트 기준 선정 [진행] 기능 구현이 끝나고 나서 성능 테스트를 하기 위해서 기준을 선정해야 했다. 우리가 넣어놓은 데이터의 숫자를 기준으로 하기로 했다. 일반적인 트래픽, 인기 있고 자주 사용되는 기능의 트래픽을 분리하기로 했다. 일반적인 트래픽은 유저 10만 건을 기준으로 1분에 활성 유저를 2~5%(2,000~5,000명) 정도로 잡았다. 인기 있고 자주 사용되는 기능의 트래픽의 경우 일반적인 트래픽 10배(20,000~50,000명)으로 했다. 급격하게 몰릴 경우 배수로 급증하는 것을 고려해봐야 할 것 같아서다. 우리가 이뤄보고 싶은 목표가 담겨 있기도 했다. [생각] 성능 테스트 기준을 정하는 것은 쉽지 않았..
[ 230813 ] 35주차 회고 일주일 간 진행한 내용 1. 알림 기능 개발 2. 더미 데이터 생성 3. 성능 테스트 툴 선정 알림 기능 개발 [진행] 알림 기능을 위해 실시간 통신에 대해 알아보았다. Polling, SSE(Sever Sent Events), WebSocket에 대해서 알아보고 비교를 했다. 각각의 장단점과 내가 구현할 기능의 특징을 고려하여 SSE을 선택하게 되었다. SSE를 사용해 기능을 구현을 하고 테스트를 했다. 이후에 SSE를 사용하는 기능이 실시간 입찰 조회가 있어서 코드를 합치는 과정에서 문제가 있다는 것을 알았다. 그래서 실시간 입찰 조회 맡은 팀원과 이야기하여 SSE 클래스를 하나 만들어 사용하기로 하며, 문제를 해결할 수 있는 코드를 작성했다. [생각] 공통된 부분의 코드는 사전 협의를 해서 작성을..
[ 230806 ] 34주차 회고 일주일 간 진행한 내용 1. 기획 및 S.A 작성 완료 2. 기능 개발 및 테스트 코드 작성 3. 코드 리뷰 및 피드백 적용 기획 및 S.A 작성 완료 [진행] 저번 주에 진행한 기획과 S.A에 대한 피드백을 멘토님에게 받았다. 스코프를 늘려야 한다. ERD를 작성할 때 테이블의 유연성과 유지보수성을 고려해야 한다. Git 브랜치 전략은 Git, Github flow을 참고해서 작성을 해야 한다. feature 브랜치의 경우 이슈 번호를 사용하는 것이 좋다. 이런 멘토님의 피드백에 따라 채팅 기능을 추가했다. ERD로 합쳐도 되는 테이블은 하나로 만들었다. Git 브랜치 전략은 Git Flow을 선택해 develop 브랜치만 추가했다. 이슈 번호는 Jira에서 부여한 것을 사용해서 해보기로 했다. 피드..
[ 230730 ] 33주차 회고 일주일 간 진행한 내용 1. 클론 코딩 진행 2. 테스트 코드 작성 3. 파이널 프로젝트 진행 클론 코딩 진행 [진행] 인스타그램을 클론 코딩을 했다. 내가 맡은 로그인, 회원 가입 기능을 끝내고 CI/CD를 환경을 구성했다. Git Action, Code Deploy, S3를 사용했다. 팀원 분들이 기능 구현을 하고 브랜치를 Pull Request를 하면 코드 리뷰를 했다. 클래스, 메서드, 변수 명에 대한 것과 잘못된 로직 등에 대해 다루었다. [생각] 클론 코딩은 생각보다 도움이 많이 되지는 않았다. 기본적인 CRUD를 작성하는 데에 그쳤기 때문이다. 그리고 S.A를 다시 작성하는 데에 시간을 쓰다 보니 기본적인 기능만 구현하는 데에도 시간이 부족했다. 저번 주에 했던 미니 프로젝트를 가지고 확장..
[ 230723 ] 32주차 회고 일주일 간 진행한 내용 1. 미니 프로젝트 진행 2. 다른 분들 이슈 해결 3. 클론 코딩 진행 미니 프로젝트 진행 [진행] CI/CD를 구축하는 데에 시간을 많이 사용했다. 실질적으로 테스트가 들어가지는 않았서 자동 빌드(CI)와 배포(CD)로만 구성되었다. 중간중간 많은 이슈들이 생겨 해결을 했다. 구축 이후 애플리케이션을 배포했으며 Front와 Back 통신 테스트를 했다. 수요일까지 진행이 되었다. 목요일에는 브라우저에서 마지막 테스트를 한 후 발표 자료를 준비했다. 발표를 하고 매니저님들께 피드백을 받은 것으로 마무리가 되었다. [생각] CI/CD를 구축하는 것이 쉽지 않은 일이라는 것을 알게 되었다. 오히려 작은 프로토타입을 만들 때는 효율이 안 나올 것 같다는 생각을 하게 되었다. 실제 제품..
[ 230716 ] 31주차 회고 일주일 간 진행한 내용 1. 다른 페어와 코드 리뷰 2. 미니 프로젝트 진행 다른 페어와 코드 리뷰 [진행] 화요일 쯤에 과제 3을 제출했다. 제출하고 코드 리뷰 페어가 정해져서 목요일에 코드 리뷰 시간을 가졌다. 30분 정도 서로의 코드를 보는 시간을 가졌다. 그 후 이슈를 생성해서 좋았던 점과 피드백 할 점을 작성했다. 우리 쪽에는 이번에 댓글 기능을 추가했는데 Controller 분리를 해보는 것이 어떠한지 등에 대한 질문이 들어왔다. 이러한 질문들에 답을 하는 시간을 가졌다. [생각] 코드를 발전시키기 위해서 코드 리뷰 하는 시간을 가지는 것은 너무 좋다. 그다른 분들의 의견을 들으면서 내가 잘못 알고 있거나 작성한 코드에 대해서도 알 수 있다. 이러한 시간들을 통해 성장할 수 있기 때문에 중간 ..
[ 230709 ] 30주차 회고 일주일 간 진행한 내용 1. API 페어 프로그래밍 2. 다른 페어와 코드 리뷰 3. 사이드 프로젝트 논의 및 페어 프로그래밍 4. 주변 분들 도움주기 API 페어 프로그래밍 [진행] 숙련주차를 듣고 나서 Filter와 Jwt Token을 사용하여 인증 및 인가 기능을 추가했다. CRUD 작업도 몇몇 부분 수정을 했다. 이런 과정에서 비즈니스 로직, Entity 등이 수정이 되었다. 인증은 로그인 API로 처리를 하였으며 인가는 Filter에서 Jwt Token을 사용하여 처리를 했다. 이 부분은 내가 담당해서 코드를 작성했다. 그 이외 CRUD 작업은 팀원이 주도적으로 코드를 작성하셨다. [생각] 팀원과 함께 기존 코드에 기능 확장을 해보면서 많이 배울 수 있었다. 서로의 코드 짜는 방식이 다르기 때..