<aside> <img src="/icons/git_gray.svg" alt="/icons/git_gray.svg" width="40px" />
React·FastAPI·MySQL을 Docker Compose로 통합하고 Naver Cloud에 배포
회원·게시글·댓글·추천 기능이 있는 커뮤니티 서비스를 구현하며 브라우저부터 데이터베이스·Linux·네트워크까지 이어지는 전체 흐름을 경험했고, 2026년에는 인증정보·인가·설정 문제를 다시 검토해 공개용 코드를 정리했습니다.
</aside>
<aside> <img src="/icons/plus_gray.svg" alt="/icons/plus_gray.svg" width="40px" />
GamjaWeb 직전에 진행한 2023 뉴스빅데이터 해커톤에서는 짧은 기간 안에 기능을 완성하는 데 집중한 나머지 역할과 책임, 개발 순서, 완료 기준을 명확하게 나누지 못했습니다. 이 경험을 바탕으로 다음 팀 프로젝트에서는 초기에 담당 영역과 협업 방식을 구체적으로 정하고, 각자의 작업을 안정적으로 합칠 수 있는 개발 체계를 만들어 보고 싶었습니다.
마침 2023년 2학기 데이터베이스 과목에서 관계형 데이터베이스를 배웠습니다. 수업에서 익힌 개념을 이론에 그치지 않고 사용자·게시글·댓글·추천을 실제 테이블과 관계로 설계한 뒤 웹 기능으로 구현하며 더 깊이 이해하고자 했습니다.
또한 로컬 환경에서 기능을 구현하는 데서 끝내지 않고, 클라이언트·서버·데이터베이스를 하나의 서비스로 통합해 외부 환경에 직접 배포해 보고 싶었습니다. 브라우저의 요청이 서버와 데이터베이스를 거쳐 응답으로 돌아오고, 완성한 서비스가 외부 사용자에게 제공되기까지의 과정을 경험하며 실제 웹사이트가 작동하는 방식을 배우기 위해 React, FastAPI, MySQL을 Docker Compose로 통합하고 Naver Cloud에 배포하는 GamjaWeb을 시작했습니다.
</aside>
| 항목 | 내용 |
|---|---|
| 기간 | 2023.12.01–2024.02.20 · 2026년 공개용 보안 정리 |
| 수행 형태 | 3인 팀 토이프로젝트 |
| 문제 | 수업에서 개별적으로 배운 Linux·Docker·관계형 데이터베이스를 실제 웹서비스의 하나의 실행 흐름으로 연결하기 |
| 데이터·대상·환경 | 사용자·게시글·댓글·추천 관계 데이터 · Linux · Docker Compose · Naver Cloud Platform |
| 분석·구현 범위 | MySQL 관계 설계, JWT 인증, 커뮤니티 CRUD, 드래그 댓글, React–FastAPI 연동, 컨테이너 통합, 클라우드 배포, 2026년 보안 재검토 |
| 결과 | 브라우저–API–DB 전체 흐름 구현 · Docker Compose 통합 · Naver Cloud 외부 배포 · 공개용 코드 보안 정리 |
https://github.com/foxirain/GamjaWeb
핵심 질문 — 클라이언트·서버·데이터베이스·운영체제·네트워크를 어떻게 하나의 서비스로 연결하고, 각 경계에서 어떤 입력과 권한을 신뢰해야 할까?
flowchart LR
A["Linux·Docker·<br>DB 학습"] --> B["서비스 기능·<br>관계 구조 설계"]
B --> C["FastAPI API·<br>MySQL 구현"]
C --> D["React 클라이언트<br>연동"]
D --> E["Docker Compose<br>통합"]
E --> F["Naver Cloud<br>배포"]
F --> G["2026 보안 관점<br>재검토·정리"]
| 단계 | 판단 기준 | 산출물·확인 결과 |
|---|---|---|
| 1. 데이터·기능 설계 | 화면 기능을 어떤 엔터티와 관계로 표현할 것인가 | 사용자·게시글·댓글·추천 관계와 API 범위 |
| 2. 백엔드 구현 | 요청이 인증·권한 판단을 거쳐 올바른 데이터 변경으로 이어지는가 | JWT 인증과 커뮤니티 CRUD API |
| 3. 클라이언트 연동 | React 상태와 서버 응답을 일관되게 연결할 수 있는가 | 회원·게시판·댓글·추천·프로필 사용자 흐름 |
| 4. 실행 환경 통합 | 클라이언트·서버·DB를 독립 서비스로 실행하고 연결할 수 있는가 | Docker Compose 기반 통합 환경 |
| 5. 외부 배포 | 공인 IP·포트·인바운드 규칙을 통해 필요한 경로만 열었는가 | Naver Cloud 외부 배포 경험 |
| 6. 보안 재검토 | 클라이언트 입력·소유권·비밀정보·로그를 서버가 안전하게 다루는가 | 2026년 공개용 보안 정리 버전 |
Backend Developer · DevOps Contributor
React · JavaScript · Python · FastAPI · MySQL · Linux · Docker Compose · Naver Cloud Platform