Notion: https://enchanting-browser-cb9.notion.site/BE-242d237470108003aac4ce8d1240970a?source=copy_link
OUTLINE은 지역 사회의 크고 작은 이슈를 누구나 자유롭게 제보하고,
다른 사용자들이 공감과 해결을 통해 함께 사회적 가치를 만드는 실시간 참여형 플랫폼입니다.
AI 기반 요약 기능과 자동 알림 기능을 통해 사용자의 참여와 문제 해결을 연결합니다.
- ID 기반 로그인 및 자동 회원가입
- 사용자 정보 조회
- 게시글 등록 시 GPT API를 통한 AI 요약 자동 생성
- 이미지 업로드, 지역 설정, 상태(해결 여부) 포함
- 전체, 상세, 내가 쓴 글, 내가 공감한 글 목록 제공
- 게시글 요약 단건 조회 (카드뉴스용)
- 게시글에 공감/해결 버튼 제공
- 공감수 100 → 작성자에게 이메일 & 알림 전송
- 해결수 5 → 해결 유저에게 알림 + 상태 변경
- 지역 코드 기반 등록/삭제
- 관심 지역에 새 글이 등록되면 자동 알림 제공
- 공감/해결/관심지역 발생 시 자동 알림
- 사용자별 알림 목록 조회
| 분류 | 기술 |
|---|---|
| Language | Java 17 |
| Framework | Spring Boot 3.x |
| ORM | Spring Data JPA |
| DB | MySQL 8 |
| Auth | JWT, Spring Security |
| Infra | AWS EC2, Docker, Nginx |
| AWS SES | |
| AI 연동 | OpenAI GPT-4 (요약 기능) |
| 문서화 | Swagger (Springdoc OpenAPI) |
| 테이블 | 설명 |
|---|---|
User |
사용자 정보 |
Post |
제보 게시글 |
post_like |
공감 기록 |
post_solve |
해결 기록 |
post_summary |
GPT 요약 데이터 |
region |
관심 지역 설정 |
notification |
알림 메시지 |
※ 상세 필드는 Notion 또는 Schema 문서 참고
src/main/java/com/outline
├── auth/ # 로그인 및 사용자 인증 관련 (자동 회원가입 포함)
├── config/ # Spring Security, Swagger, CORS 등 글로벌 설정 파일
├── email/ # 이메일 발송 서비스 (SES 연동 포함)
├── file/ # 이미지 업로드 관련 로직
├── like/ # 게시글 공감(Like) 기능
├── notification/ # 알림(Notification) 전송 및 조회 처리
├── post/ # 게시글 CRUD + 요약(PostSummary) 포함
├── region/ # 사용자 관심지역 등록 및 알림 연동
├── solve/ # 해결(Solve) 기능 및 상태 변경 처리
├── user/ # 사용자 조회, 공감수/해결수 통계 등 유저 정보 관리
| 기능 | Method | Endpoint |
|---|---|---|
| 로그인 / 회원가입 | POST | /auth/login |
| 게시글 등록 | POST | /posts |
| 게시글 전체 조회 | GET | /posts |
| 게시글 요약 조회 | GET | /posts/{postId}/summary |
| 공감 등록/취소 | POST / DELETE | /likes |
| 해결 등록/취소 | POST / DELETE | /solve |
| 관심지역 등록/조회 | POST / GET | /regions |
| 알림 목록 조회 | GET | /notifications/{userId} |
.env또는application.yml설정- DB, AWS, OpenAI, SES, CORS 설정
- Docker 설치
./gradlew builddocker-compose up -d- Swagger 접속:
http://localhost:8080/swagger-ui/index.html
로컬프렌즈 10팀 - OUTLINE
- 백엔드: 김태희
- 프론트: 이소연
- 기획: 임병준, 염상우
- 디자인: 박요한, 유진
- AI 요약 도입을 통한 GPT 실전 활용
- 공감/해결/관심지역 기반 알림 설계로 UX 개선 경험
- Docker + EC2 + GitHub Actions를 이용한 CI/CD 파이프라인 구축
- 실시간 참여 기반 서비스에 필요한 도메인 분리 및 책임 설계