Post

⚓ 실무형 백엔드 포트폴리오 로드맵

⚓ 실무형 백엔드 포트폴리오 로드맵

DATT 프로젝트란?

DATT는 단순 맛집 검색 서비스가 아니다.

핵심 목표는:

1
2
"특정 장소를 기준으로 주변 경험을 탐색하고,
그 경험을 사용자들과 공유하는 플랫폼"

을 만드는 것이다.

즉:

1
2
3
4
5
6
7
장소 검색
→ 주변 탐색
→ Anchor 생성
→ 공유
→ 리뷰
→ 사용자 활동
→ 성장

흐름을 가진다.

예를 들어 사용자가:

1
"성수에서 데이트할 곳 찾기"

상황에서 특정 장소에 Anchor를 생성하면:

1
2
3
4
5
맛집
카페
술집
숙소
놀거리

등을 자동 큐레이션한다.

즉 DATT의 핵심은:

1
위치 기반 경험 탐색 + 사용자 반응 데이터 축적

이다.


전체 개발 목표

최종 목표는 다음 흐름을 완성하는 것이다.

1
2
3
4
5
6
7
8
9
공공데이터 수집
→ 장소 검색
→ Nearby 탐색
→ Anchor 큐레이션
→ 리뷰/평점
→ 좋아요/Bookmark
→ 사용자 성장
→ 프론트 서비스
→ 배포

즉:

1
"위치 기반 경험 탐색 플랫폼 MVP 구축"

이 목표다.


기술 스택

Backend

1
2
3
4
5
6
7
8
Java 21
Spring Boot 3
Spring Security
JWT
JPA (Hibernate)
QueryDSL
Spring Batch
PostgreSQL

Frontend

1
2
3
4
5
Next.js
React
TypeScript
TailwindCSS
TanStack Query

Infra

1
2
3
4
5
Docker
Docker Compose
Nginx
GitHub Actions
AWS EC2

지도 / 위치 기반

1
2
3
Kakao Map
Haversine Formula
PostGIS (추후 고도화)

전체 개발 플랜

1주차 — 인증 시스템 구축

목표

1
JWT 기반 인증 시스템 구축

1일차 — 회원 도메인 설계

구현 내용

Member Entity 설계

핵심 필드:

1
2
3
4
5
6
7
id
email
password
nickname
role
level
exp

BaseEntity 구성

1
2
createdAt
updatedAt

공통 관리.


목표

  • 사용자 시스템 기반 구축

  • 추후 Gamification 대비 구조 확보


2일차 — Spring Security + JWT 구조 설계

구현 내용

SecurityFilterChain 구성

JWT TokenProvider 구현

AccessToken / RefreshToken 구조 설계

인증 Filter 구성


목표

1
Stateless JWT 인증 구조 구축

3일차 — 회원가입 API 구현

구현 내용

회원가입 API

1
POST /api/auth/signup

비밀번호 암호화

1
BCryptPasswordEncoder

이메일 중복 검증


목표

  • 안전한 사용자 생성 구조 구축

  • 인증 기반 확보


4일차 — 로그인 API 및 인증 예외 처리

구현 내용

로그인 API

1
POST /api/auth/login

JWT 발급 구조

1
2
AccessToken
RefreshToken

인증 예외 처리

1
2
3
잘못된 비밀번호
존재하지 않는 사용자
만료된 토큰

목표

  • 실제 서비스 수준 인증 흐름 구축

5일차 — Refresh Token 및 로그아웃 구현

구현 내용

Refresh Token 재발급 API

로그아웃 처리

Redis 없이 Refresh Token 관리 구조 구현


목표

  • 사용자 인증 흐름 완성

2주차 — 장소 검색 및 위치 기반 탐색 구축

목표

1
공공데이터 기반 장소 탐색 MVP 구축

1일차 — PlaceMaster 설계 및 검색 API 구현

구현 내용

PlaceMaster Entity 설계

핵심 필드:

1
2
3
4
5
6
7
8
9
10
11
bizesId
bizesNm

indsMclsCd
indsMclsNm

ctprvnNm
signguNm

lon
lat

장소 검색 API

1
GET /api/places

목표

  • 장소 데이터 저장 구조 구축

  • 검색 API 기반 확보


2일차 — Spring Batch 기반 공공데이터 동기화

구현 내용

공공데이터 API 연동

1
소상공인시장진흥공단 상권정보 API

Spring Batch 구성

1
2
3
Reader
Processor
Writer

업종 코드 기반 분류 구조

예시:

1
2
3
4
5
한식
중식
카페
숙박
주점

목표

  • 대량 장소 데이터 적재

  • 자동 동기화 구조 확보


3일차 — QueryDSL 기반 검색 API 고도화

구현 내용

QueryDSL 도입

동적 검색 조건 처리

1
2
3
키워드
지역
업종

Pageable 적용


목표

  • 실제 서비스 수준 검색 구조 구축

4일차 — Nearby Search 구현

구현 내용

Nearby API

1
GET /api/places/nearby

Haversine Formula 기반 거리 계산

반경 검색

1
2
3
1km
3km
5km

거리순 정렬


목표

  • 현재 위치 기반 탐색 기능 구축

  • 지도 기반 서비스 준비


5일차 — 장소 상세 조회 및 응답 구조 분리

구현 내용

장소 상세 조회 API

1
GET /api/places/{placeId}

목록 DTO / 상세 DTO 분리

상세 응답 구조 고도화

1
2
3
4
주소
업종
좌표
기본 정보

목표

  • 장소 상세 페이지 기반 확보

3주차 — DATT 핵심 기능 구축

목표

1
Anchor 기반 경험 탐색 플랫폼 MVP 완성

1일차 — Bookmark 시스템 구축

구현 내용

Place Bookmark

Bookmark 추가/삭제 API

내 Bookmark 목록 조회

Bookmark 여부 조회


목표

  • 사용자 저장 기능 구축

  • 개인화 기반 확보


2일차 — Anchor 시스템 구축

Anchor란?

Anchor는:

1
"특정 지역을 기준으로 주변 경험을 큐레이션하는 기능"

이다.

예:

1
2
3
4
5
성수역 기준
→ 맛집
→ 카페
→ 술집
→ 놀거리

등을 자동 추천한다.


구현 내용

Anchor 생성 API

1
POST /api/anchors

Nearby 기반 자동 추천

카테고리별 추천 구조

1
2
3
4
5
FOOD
CAFE
BAR
STAY
PLAY

Anchor 상세 조회 API

공개 Anchor 목록 조회 API

내 Anchor 목록 조회 API

Anchor 공유 구조

조회수 증가 구조


목표

  • DATT 핵심 경험 구조 구축

  • 단순 검색이 아닌 경험 탐색 구조 완성


3일차 — Place 리뷰/평점 및 Anchor 좋아요 시스템 구축

구현 내용

PlaceReview Entity 설계

장소 리뷰 CRUD

1
2
3
4
작성
수정
삭제
조회

평균 평점 계산

1
2
averageRating
reviewCount

AnchorLike 시스템 구축

Anchor 좋아요 추가/삭제

인기 Anchor 기반 구축


목표

  • 사용자 평가 데이터 축적

  • 추천 품질 기반 확보


4일차 — Gamification 및 사용자 성장 시스템 구축

구현 내용

경험치 정책

예시:

1
2
3
4
Bookmark 추가
리뷰 작성
Anchor 생성
Anchor 좋아요 획득

레벨 시스템

MemberActivityLog 구현

업적(Achievement) 최소 구조

사용자 랭킹 구조

칭호 시스템


목표

  • 사용자 활동 유도

  • 리텐션 강화

  • 탐험 기반 서비스 경험 구축


4주차 — 프론트엔드 MVP 구축

목표

1
실제 사용자 서비스 형태 완성

1일차 — Next.js 초기 세팅

구현 내용

프로젝트 초기 구성

Layout 구성

API Client 구성

인증 상태 관리


목표

  • 프론트 구조 기반 확보

2일차 — 로그인 / 회원가입 UI 구현

구현 내용

로그인 페이지

회원가입 페이지

JWT 연동

Protected Route


목표

  • 실제 인증 흐름 프론트 연동

3일차 — 장소 검색 및 상세 화면 구현

구현 내용

검색 UI

검색 결과 리스트

카테고리 필터

장소 상세 페이지

리뷰 UI

Bookmark UI


목표

  • 실제 장소 탐색 UX 구축

4일차 — 지도 및 Anchor UI 구현

구현 내용

Kakao Map 연동

현재 위치 기반 조회

Nearby Search UI

Anchor 생성 UI

Anchor 상세 화면

Anchor 좋아요 UI


목표

  • 지도 기반 탐색 경험 완성

5일차 — 사용자 프로필 및 활동 UI 구현

구현 내용

프로필 화면

레벨 / 경험치 UI

업적 / 활동 로그 UI

내 Bookmark

내 Anchor


목표

  • 사용자 활동 흐름 완성

  • Gamification 경험 구축


5주차 — 배포 및 포트폴리오 마무리

목표

1
실제 서비스 수준으로 마무리

1일차 — Docker 및 환경 구성

구현 내용

Dockerfile

Docker Compose

환경 변수 분리


2일차 — EC2 및 Nginx 배포

구현 내용

AWS EC2 배포

Nginx Reverse Proxy

HTTPS 적용


3일차 — CI/CD 구축

구현 내용

GitHub Actions

자동 배포

Build Pipeline 구성


4일차 — 포트폴리오 정리

구현 내용

아키텍처 다이어그램

ERD 정리

기술 선택 이유 정리


5일차 — GitHub 및 시연 자료 정리

구현 내용

README 고도화

시연 영상

GitHub 블로그 정리


이후 고도화 예정

MVP 이후에는 다음 작업을 진행할 예정이다.

1
2
3
4
5
6
7
Redis Cache
Elasticsearch
PostGIS
추천 시스템
검색 랭킹
개인화 추천
실시간 인기 지역

마무리

DATT는 단순 장소 검색 서비스가 아니다.

핵심은:

1
2
"특정 지역을 기준으로
좋은 경험을 탐색하고 공유하는 것"

이다.

즉:

1
2
3
4
5
6
검색
→ 탐색
→ 큐레이션
→ 리뷰
→ 공유
→ 성장

흐름을 가진다.

이번 프로젝트를 통해:

1
2
3
4
5
6
7
8
9
Spring Boot
JWT 인증
QueryDSL
Spring Batch
위치 기반 검색
추천 구조
Gamification
프론트/백엔드 통합
배포 경험

까지 전체 서비스 개발 흐름을 경험하는 것이 목표다.

This post is licensed under CC BY 4.0 by the author.