개발 환경에서 프론트-백 서버 분리 이유

2025. 6. 19. 00:31·WIL

1. 역할의 분리

  • 프론트엔드(React) 개발 서버
    • 주로 npm start나 yarn start로 띄우는 Webpack/Vite 개발 서버
    • 핫리로드(Hot-Reloading), 소스맵, 빠른 빌드 최적화 등 개발 생산성에 특화
    • HTML/CSS/JS 파일을 브라우저가 바로 가져가서 실행
  • 백엔드(Spring Boot 등) 서버
    • 비즈니스 로직, DB 연동, 인증·인가, API(REST)를 구현
    • 데이터 처리와 보안을 책임

이 둘을 분리하면

  1. 프론트만 수정해도 → 빠른 화면 확인(전체 서버 재시작 불필요)
  2. 백엔드만 수정해도 → API 로직 테스트 집중
  3. 서로의 작업이 꼬이지 않고 독립적으로 개발·디버깅 가능

2. 개발 환경에서의 연동

  1. 프론트 개발 서버(예: localhost:3000) →
  2. 백엔드 API 서버(예: localhost:8080)

React 에서는 보통 package.json에 proxy 설정을 걸어서

// package.json 예시
{
  // …
  "proxy": "http://localhost:8080",
  // …
}

이렇게 하면 /api/... 요청이 자동으로 백엔드 서버로 프록시되어

// React 코드
fetch('/api/posts')  // 실제로는 localhost:8080/api/posts에 요청
  .then(res => res.json())
  .then(data => /* … */);

처럼 CORS 문제 없이 프론트 ↔ 백엔드 통신이 가능함


3. 프로덕션(실서비스) 배포 방식

개발과 달리 실제 서비스에선 하나의 서버(또는 CDN+API 서버)에서 통합 배포

  1. npm run build 로 React 앱을 정적 파일(index.html, bundle.js 등)로 묶고
  2. Spring Boot 같은 백엔드 서버의 정적 리소스 폴더(src/main/resources/static 등)에 복사
  3. 같은 포트(예: 8080)로 GET / 요청 시 React 앱, GET /api/... 요청 시 API를 동시에 처리

이렇게 하면 사용자 입장에선 서버 하나로 보이지만, 안에서는

  • 정적 콘텐츠 서빙
  • API 요청 처리 두 역할이 분리되어 동작

4. 결론

  • 개발 중엔 프론트(HMR, 빠른 컴파일)와 백엔드(API)를 따로 띄워서 생산성을 높인다.
  • 실서비스(프로덕션) 배포 시에는 정적 빌드 파일을 백엔드와 통합해서 “서버 하나”처럼 운용할 수 있다
728x90

'WIL' 카테고리의 다른 글

H2가 MySQL, PostgreSQL와의 차이  (0) 2025.06.19
크래프톤 정글 학습 13주차: Spring Boot로 CRUD 게시판 API 서버 구축기  (0) 2025.06.18
[Python] 딕셔너리(Dictionary) 문법  (0) 2025.03.29
'WIL' 카테고리의 다른 글
  • H2가 MySQL, PostgreSQL와의 차이
  • 크래프톤 정글 학습 13주차: Spring Boot로 CRUD 게시판 API 서버 구축기
  • [Python] 딕셔너리(Dictionary) 문법
ahpicl64
ahpicl64
in the clouds
  • ahpicl64
    구름
    ahpicl64
  • 전체
    오늘
    어제
    • 분류 전체보기 (95)
      • WIL (4)
      • Jungle (36)
      • AWS (2)
      • SQL (2)
      • CS:APP (17)
      • Algorithm (10)
      • K8s (7)
      • 자료 구조 (10)
      • Spring (4)
      • React (0)
      • 운영체제 (1)
      • 기타등등 (2)
      • 이야기 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    DevOps
    k8s
    컴퓨터시스템
    CloudFront
    queue
    자료구조
    CSAPP
    DB
    알고리즘
    트러블슈팅
    부하테스트
    어셈블리
    IAM
    python
    Spring
    github actions
    EC2
    S3
    AWS
    Spring boot
  • 02-21 06:16
  • hELLO· Designed By정상우.v4.10.3
ahpicl64
개발 환경에서 프론트-백 서버 분리 이유
상단으로

티스토리툴바