# 백엔드 + 인프라 + 설계 프로젝트 포트폴리오 정보 추출 요청

이 저장소를 백엔드 + 인프라 + 설계 프로젝트 포트폴리오 작성 관점에서 분석해줘.

단순 기능 목록이 아니라, 아래 항목을 중심으로 “백엔드 개발자 포트폴리오에 쓸 수 있는 정보”를 뽑아줘.

## 1. 프로젝트 목적
- 이 프로젝트가 해결하려는 문제
- 주요 사용자
- 프로젝트 목표
- 백엔드가 담당하는 핵심 책임
- 인프라 구성이 필요한 이유
- 프로젝트를 한 줄로 설명할 수 있는 문장

## 2. 전체 아키텍처
- 전체 구성 요소
- 프론트엔드/백엔드/DB/Redis/Storage/Worker/Reverse Proxy 관계
- 외부 요청이 내부 서비스로 전달되는 흐름
- 서비스 간 책임 분리
- 외부 공개 서비스와 내부 서비스 구분
- 모놀리스/모듈러 모놀리스/마이크로서비스 여부
- 아키텍처 설계 의도

## 3. API 설계
- 주요 API 목록
- Endpoint 경로
- HTTP Method
- Request DTO
- Response DTO
- 인증 필요 여부
- 권한 필요 여부
- 성공/실패 상태 코드
- API 버전 관리 여부
- Swagger/OpenAPI 문서화 여부

## 4. 인증/인가 설계
- 로그인 방식
- JWT/Session/OAuth2 사용 여부
- 현재 사용자 식별 방식
- Role/Permission 구조
- 리소스 소유자 검증 방식
- 권한 검증 위치
- 인증 실패/권한 실패 응답 방식
- 인증/인가 설계 판단

## 5. 데이터베이스 설계
- 주요 Entity 목록
- 테이블 간 관계
- 주요 필드
- FK/Unique/Index 제약
- Soft Delete 여부
- CreatedAt/UpdatedAt 관리 방식
- Migration 관리 방식
- 데이터 정합성을 보장한 방식
- 데이터 모델링 설계 이유

## 6. 비즈니스 로직 / UseCase 구조
- 주요 UseCase 목록
- Command/Query 구조
- 요청 처리 순서
- 검증 로직
- 비즈니스 실패 조건
- 성공 시 변경되는 데이터
- 실패 시 반환되는 에러
- API 계층과 UseCase 계층의 책임 분리 방식

## 7. 트랜잭션과 동시성
- 트랜잭션이 필요한 기능
- 트랜잭션 범위
- 여러 Entity를 함께 저장하는 흐름
- 동시 요청 시 발생할 수 있는 문제
- 중복 생성 방지 방식
- Unique 제약, Lock, CAS, Optimistic Concurrency 사용 여부
- Idempotency 고려 여부
- 외부 파일/네트워크 작업과 DB 작업의 정합성 처리 방식

## 8. 예외 처리와 응답 구조
- Validation 실패 처리
- 비즈니스 실패 처리
- 시스템 예외 처리
- Global Exception Middleware 사용 여부
- Result 패턴 사용 여부
- 공통 ErrorResponse 구조
- 에러 코드 체계
- 로그 레벨 구분
- 프론트엔드가 에러를 일관되게 처리할 수 있는지

## 9. 인프라 구성
- Dockerfile 존재 여부
- Docker Compose 구성
- 서비스별 컨테이너 역할
- DB/Redis/Storage/Worker 구성
- Reverse Proxy 구성
- 내부 네트워크/외부 네트워크 구성
- Volume 마운트 구조
- Healthcheck
- depends_on 조건
- 포트 노출 정책
- 인프라 구성 설계 의도

## 10. Reverse Proxy / 도메인 / HTTPS
- Caddy/Nginx 사용 여부
- 도메인 라우팅 구조
- subdomain 구성
- HTTPS 적용 방식
- reverse_proxy 대상
- 관리자 도구 접근 제한
- Basic Auth 적용 여부
- 외부 포트 노출 최소화 여부

## 11. 환경변수와 설정 관리
- .env 구조
- 개발/운영 설정 분리 여부
- DB 연결 문자열 구성 방식
- Redis 연결 설정
- Secret 관리 방식
- ASP.NET Options 바인딩 여부
- 설정 검증 여부
- 하드코딩 제거 여부

## 12. 로그 / 모니터링 / 운영
- 로깅 구조
- 구조화 로그 사용 여부
- 요청/응답 로그
- 예외 로그
- 로그 레벨 기준
- Dozzle/Grafana/Loki 등 운영 도구 사용 여부
- Healthcheck
- 장애 확인 방법
- 운영 관점에서 아쉬운 부분

## 13. CI/CD / 배포 자동화
- GitHub Actions/GitLab CI 존재 여부
- Build/Test 단계
- Docker image build 여부
- 배포 자동화 여부
- Migration 실행 방식
- 브랜치 전략
- 배포 실패 시 대응 방식
- 향후 개선할 배포 구조

## 14. 성능 최적화
- 성능을 고려한 API
- Pagination 적용 여부
- Projection DTO 조회 여부
- AsNoTracking 사용 여부
- Include/N+1 문제 처리
- Index 적용 여부
- Cache 적용 여부
- 응답 시간 측정 또는 개선 수치
- 성능상 아쉬운 부분

## 15. 설계 문서화
- README 구조
- API 문서
- ERD
- 아키텍처 다이어그램
- 시퀀스 다이어그램
- 배포 구조도
- 기술 선택 이유 문서
- 대안 비교 기록
- ADR 존재 여부
- Mermaid 다이어그램 사용 여부

## 16. 문제 해결 사례 후보
아래 구조로 3~5개 후보를 찾아줘.

### 문제 상황
무슨 문제가 있었는지

### 원인 분석
왜 문제가 발생했는지

### 해결 방법
어떤 구조나 기술로 해결했는지

### 선택 이유
왜 그 방법을 선택했는지

### 결과
성능, 안정성, 유지보수성, 확장성, 운영 편의성 측면에서 어떤 개선이 있었는지

## 17. 포트폴리오 문장 초안
위 분석을 바탕으로 아래 항목별로 바로 사용할 수 있는 문장 초안을 작성해줘.

- 프로젝트 개요
- 담당 역할
- 주요 기여
- 사용 기술 및 선택 이유
- 아키텍처 설계
- API 설계
- 인프라 구성
- 문제 해결 사례
- 프로젝트 성과
- 회고

주의:
- 실제 코드에서 확인되는 내용만 작성해줘.
- 확인되지 않는 내용은 “확인 필요”로 표시해줘.
- 단순 기능 나열이 아니라 “문제 → 설계 선택 → 구현 방식 → 결과” 구조로 작성해줘.
- 백엔드 개발자 관점에서 API, 인증/인가, DB, 트랜잭션, 예외 처리, Docker, Reverse Proxy, 환경변수, 로그, 배포 구조를 강조해줘.