“거래함"은 카카오테크 부트캠프 내에서 사물함을 이용한 중고거래 플랫폼입니다. 사용자들은 판매할 물건을 사물함에 보관하고, 구매자는 해당 사물함에서 물건을 찾아가는 방식으로 거래가 이루어집니다. 비대면으로 안전하고 효율적으로 거래할 수 있으며, 커뮤니티 안에서 활발한 물품 교환을 할 수 있는 것이 특징입니다. ‘사물함 거래’ 기능을 통해 거래자는 서로의 시간을 맞출 필요 없이 비대면으로 편리하게 거래를 진행할 수 있습니다.”
- 다 같이 페어 프로그래밍으로 프로젝트를 진행하고 하루에 한시간씩 강제적으로 코드리뷰를 진행합니다.
- 일정: 매주 월요일 20시, 토요일 14시, 일요일 14시
- 월요일은 3시간, 주말은 다 할 때까지.
- 장소: KTB 회의실
- 월요일 20시에는 코드 리뷰가 끝난 기능을 통합하여 main 브랜치에 올립니다.
- 5주차 부터는 각각이 구현한 기능의 성능을 테스트하고 비교합니다.
- 성능 테스트 결과는 코드 통합 시간에 공유합니다.
- 화, 수, 목, 금은 1시간 씩 각각 다른 팀원의 코드를 반드시 리뷰합니다.
- 토요일과 일요일 모각코와 관련 세션 영상을 함께 시청합니다.
- 카카오 부트캠프 내의 남는 사물함이 많다.
- 과정 별로 책을 받는데 자신의 기술 스택과 맞지않는 책이 있다.
- 카카오 부트캠프 내에서 편리하게 중고 거래를 도와준다.
- 판매자는 물건을 올리면 사물함과 비밀번호를 배정받는다.
- 관리자는 사물함의 물건을 검수한다.
- 물건의 상태는 검수 중 -> 판매 중(검수 완료) -> 판매 완료로 나눠진다.
- 구매자가 대금을 결제하면 판매자에게 대금이 전달되고, 사물함과 비밀번호를 알려준다.
-
프로젝트는 각 기능 별 난이도를 수치화하였습니다.
-
회원 기능
- 로그인 → 7점
- OAuth + jwt + Redis
- 로그아웃 → 1점
- 마이페이지
- 구매 내역 → 2점
- 판매 내역 → 2점
- 로그인 → 7점
-
알림 → 7점
- 스프링 배치 학습
- 구매자가 구매를 하면 판매자에게 알림이 뜬다(상단 바에 알림 페이지가 있고 거기서 알림들 보여줌)
- 메일로 알림을 보내자.
- Spring Boot Starter Mail 라이브러리 고려
-
중고 물품 거래 페이지
- 트랜잭션 동시성 학습 -> 7점
- 중고 물품 구매
- 구매 상세 요청 → 4점
- 동시성 이슈(비관적 락, 낙관적 락, 네임드 락) 고려
- 사용자가 구매 버튼을 눌렀을 때 다른 사용자가 해당 물품의 구매 버튼을 누르지 못하도록.
- 물품 별 사물함 아이디, 비밀번호 전달 → 1점
- 사물함 상태 잠그기 → 1점
- 물품 DB 상태 변경 → 1점
- 구매자 구매 내역에 추가 → 1점
- 구매 상세 요청 → 4점
- 중고 물품 판매
- 중고 물품 올리기 → 1점
- 중고 물품 수정 → 1점
- 중고 물품 삭제 - 1점
- 판매자 판매 내역 관리 → 1점
- 홈화면에 띄워줄 물품 내역(메인페이지) - 1점
- 사물함 관리
- 관리자 페이지 → 3점
- 스프링 시큐리티 Role 관리
- 전체 사물함 상태 조회 → 1점
- 관리자 페이지 → 3점
- 소셜 기능 (찜하기, 관심, 조회)
- 찜하기 → 4점 (최적화 포텐이 있다. 너 재능 있어)
- 조회 수 → 4점
- 검색
- 물품 검색 → 3점 (최적화 포텐이 있다. 너 재능 있어)
- 알림
- 판매자, 구매자에게 가는 알림
- 알림창을 조회하면 해당 알림들의 상태가 false
- 판매자, 구매자에게 가는 알림
-
성능 테스트 환경 구축 및 최적화 방안 논의 → 4점
-
52점 / 8주 → 한 주에 6.5점
1주차: 로그인(7) 및 로그아웃(1) → 8점 -> 10/13(일)까지
- 로그인 시 리프레시 토큰은 서버와 쿠키에, 액세스 토큰은 로컬 스토리지에 저장
2주차: 사물함 조회(1), 동시성 이슈 학습(7) → 8점 -> 10/20(일)까지
3주차: 중고 물품 판매 및 판매 내역, 홈화면에 띄워줄 물품 내역(메인페이지) → 7점
4주차: 중고 물품 구매 및 구매 내역(동시성 이슈 해결)
5주차: 알림, 검색, filter, 성능 테스트 환경 구축 및 최적화 방안 논의 → 7점
- 알림
- 판매자가 사물함 ID와 비밀번호를 받음
- 구매자 수령 알림
- 알림창을 조회하면 해당 알림들의 상태가 false
- 검색
- 물품 검색 → 3점 (쿼리를 통해 검색)
6주차: 소셜 기능(좋아요, 조회 수) - 10점
- 물품 조회 수 기능
- 물품 좋아요 기능
7주차: 단위 테스트 학습 및 적용
8주차: 성능 테스트 및 최적화
9주차: 운영 모니터링 및 성능 최적화
10주차: 운영 모니터링 및 성능 최적화
11주차: 운영 모니터링 및 성능 최적화
12주차: 운영 모니터링 및 성능 최적화
1주차: [NHN FORWARD 2021] Redis 야무지게 사용하기
2주차: [if(kakao)dev2022] Batch Performance 극한으로 끌어올리기: 1억 건 데이터 처리를 위한 노력
------------------- 포트폴리오 내용 -------------------
검색할 때 Pak ah e 일때 “ak a”까지 검색하게 하였다.
쿼리문 ~~~~ 를 사용했다. 또한 제목에는 없는데 본문 내용만 있을 경우를 대비하여 본문내용도 같이 분석한다.
그런데 성능을 측정해보니 ~~~가 나왔다. 그래서 검색 쿼리 최적화를 통해서 병목지점을 개선하여 jmeter로 성능테스트를 진행하여 00% 성능을 개선하였습니다.