|
5 | 5 | <img width="1323" height="1218" alt="Untitled" src="https://github.com/user-attachments/assets/3ed9d188-73af-40c2-82ef-b934471e4c50" /> |
6 | 6 |
|
7 | 7 | *** |
8 | | -> ### 기능 구현 |
9 | | - 1. 유저 |
10 | | - - 회원가입 (가입시 비밀번호 암호화 후 데이터베이스에 저장) |
11 | | - - 로그인 (jwt 기반 인가 구현, allauth 사용한 카카오 소셜 로그인 구현 -> db 에 회원 정보 없을 시 자동 회원가입) |
12 | | - |
13 | | - 2. 게시글 |
14 | | - - GET, POST, PATCH, DELETE |
15 | | - |
16 | | - 3. 판매 상품 |
17 | | - - GET, POST, PATCH, DELETE |
18 | | - |
19 | | - 4. 장바구니 |
20 | | - - GET, POST (장바구니에 상품이 이미 존재할 시 재고 수량 PATCH), DELETE |
21 | | - |
22 | | - 5. 리뷰 |
23 | | - - 판매 상 항목과 1:M 관계 |
24 | | - |
25 | | - 6. 주문 |
26 | | - - 주문시 장바구니 상품들을 주문 db로 옮긴 후 장바구니 초기화 |
| 8 | +> ### 시스템 아키텍처 |
| 9 | +<img width="1040" height="662" alt="diagram-export-2026 -3 -12 -오후-3_22_29" src="https://github.com/user-attachments/assets/409c9baa-a5da-432b-a348-4a622755cd6b" /> |
| 10 | +
|
27 | 11 | *** |
28 | 12 | > ### 기술 스택 |
29 | | - * Python, Django, PostgreSQL, JWT, Docker, Git, Trello |
| 13 | + * Python, Django, PostgreSQL, Redis, Celery, Sentry, Docker, Nginx, AWS EC2, Github Actions, Locust, Git |
| 14 | + |
| 15 | +*** |
| 16 | +> ### 기능 구현 |
| 17 | +1. 주문 자동화 및 비동기 재고 관리 |
| 18 | + - Celery Beat 기반 주문 만료 처리: 미결제 주문을 5분 단위로 체크하여 자동 취소하고 재고를 복구하는 스케줄러를 구현했습니다. |
| 19 | + - 비동기 작업 분리: 응답 시간이 긴 로직을 Redis와 Celery를 통해 비동기로 처리하여 사용자 경험을 개선했습니다. |
| 20 | + |
| 21 | +2. 2-Depth 계층형 댓글 및 커뮤니티 시스템 |
| 22 | + - Self-Referencing 구조: parent 외래 키를 활용해 댓글-대댓글 간의 부모-자식 관계를 설계했습니다. |
| 23 | + - Depth 제어 로직: Serializer 레벨에서 계층 깊이를 2단계로 제한하여 뎁스 심화를 방지하고 쿼리 효율성을 높였습니다. |
| 24 | + |
| 25 | +3. 보안 및 데이터 유효성 검증 |
| 26 | + - Custom Validators: 정규표현식을 활용한 이메일 형식 및 비밀번호 복잡도 검사 로직을 독립적인 모듈로 구현하여 데이터 무결성을 확보했습니다. |
| 27 | + - Bcrypt 암호화: 사용자 비밀번호를 Bcrypt를 사용하여 단방향 해싱함으로써 보안성을 강화했습니다. |
| 28 | + |
| 29 | +4. 가시성 확보 및 성능 최적화 |
| 30 | + - 실시간 에러 모니터링: Sentry를 연동하여 분산 환경에서 발생하는 예외 상황을 실시간으로 추적하고 대응할 수 있는 환경을 구축했습니다. |
| 31 | + - 부하 테스트(Locust): 핵심 엔드포인트에 대한 부하 테스트를 수행하여 시스템 임계치를 점검하고 병목 현상을 분석했습니다. |
| 32 | + |
| 33 | +*** |
30 | 34 | > ### 그 외 |
31 | 35 | * 테스트코드 작성으로 기능 별 오류 유무 재차 확인 |
0 commit comments