codingstairs
노트에듀라이프연락
⌕검색⌘K
koen

Navigation

  • Intro
  • Blog
  • Life

연락하기

로그인 없이도 보낼 수 있어요. 답변이 필요하면 이메일을 함께 적어 주세요.

  • 익명 폼으로 의견 남기기 →
  • ✉ warragon112@gmail.com
  • 카카오톡 오픈채팅 ↗

© 2026 codingstairs

  • 노트
  • 에듀
  • 검색
  • 라이프
  • 연락
  • 약관
  • RSS
  • GitHub
에듀›Spring Boot 4 로 시작하는 백엔드›1단계

1단계

1단계 — 백엔드란 무엇인가

0회 조회

1단계 — 백엔드란 무엇인가

프론트엔드가 보이는 부분 이라면, 백엔드는 데이터 · 로직 · 인증 을 담당하는 보이지 않는 절반.

1. 백엔드의 네 가지 일

  1. 데이터 저장 · 조회 — DB 에 사용자 · 게시물 · 로그를 쌓고 검색
  2. 비즈니스 규칙 — "5 번 잘못 입력하면 5 분 잠금" 같은 판단
  3. 인증 · 인가 — 이 사람이 누구인지 (Authentication) + 무엇을 할 수 있는지 (Authorization)
  4. 외부 시스템 연동 — 결제 (PG) · 메시지 (카카오 · 네이버) · 이메일 (SMTP)

프론트엔드가 답할 수 없는 부분을 백엔드가 책임집니다.

2. 한 요청의 흐름

브라우저
  └─ 1. POST /api/posts (HTTPS 요청)
     ↓
  Spring Controller (DTO 검증)
     ↓
  Service (비즈니스 규칙 · 트랜잭션)
     ↓
  Repository (DB 쿼리)
     ↓
  PostgreSQL → 결과 row
     ↑
  브라우저 ← 2. 201 Created (JSON 응답)

이 다섯 층 구조가 Spring 의 핵심 모양. 각 층이 자기 책임만 집니다.

3. Controller · Service · Repository

// Controller — HTTP 요청/응답 담당
@RestController
@RequestMapping("/api/posts")
public class PostController {
    private final PostService postService;

    @PostMapping
    public ResponseEntity<PostDto> create(@Valid @RequestBody CreatePostRequest req) {
        PostDto created = postService.create(req);
        return ResponseEntity.status(201).body(created);
    }
}

// Service — 비즈니스 로직 · 트랜잭션
@Service
@Transactional
public class PostService {
    private final PostRepository postRepo;

    public PostDto create(CreatePostRequest req) {
        if (req.getTitle().length() > 100) throw new ValidationException(...);
        Post post = Post.from(req);
        return PostDto.from(postRepo.save(post));
    }
}

// Repository — DB 접근
public interface PostRepository extends JpaRepository<Post, Long> {
    List<Post> findByUserIdOrderByCreatedAtDesc(Long userId);
}

규칙: Controller → Service → Repository 한 방향. 반대는 금지.

4. 왜 Java 21 + Spring Boot 4 인가

  • Java 21
    • virtual threads — 가벼운 쓰레드로 동시성 ↑
    • record class — 데이터 클래스 보일러플레이트 제거
    • pattern matching — switch 강력화
  • Spring Boot 4
    • 의존성 관리 · 자동 설정 · 내장 서버 (Tomcat · Netty)
    • ./gradlew bootRun 한 줄로 실행
  • 생태계
    • Security · Data JPA · Cloud · Batch · WebFlux 거의 모든 기업용 기능

5. 다른 백엔드 스택 비교

스택 특징 대표 사용처
Spring Boot 4 견고함 · 대규모 · 풀텍스트 금융 · 이커머스 · 엔터프라이즈
FastAPI (Python) 가벼움 · 데이터 · 빠른 프로토타입 스타트업 · AI · 데이터
Express / NestJS (Node) 프론트와 같은 언어 · 빠른 시작 스타트업 · 실시간
Go (Gin · Fiber) 성능 · 단순함 클라우드 인프라 · 결제
Rust (Axum · Actix) 안전성 · 최고 성능 고성능 시스템 · 임베디드

한국 시장은 여전히 Spring 이 가장 큼.

6. HTTP 상태 코드

코드 의미 용도
200 OK 일반 성공
201 Created 생성 성공
204 No Content 삭제 성공
400 Bad Request 요청 형식 오류
401 Unauthorized 인증 안 됨
403 Forbidden 권한 없음
404 Not Found 없는 자원
409 Conflict 중복 · 충돌
422 Unprocessable Entity 검증 실패
500 Internal Server Error 서버 오류

REST API 설계의 첫 언어.

7. 인증 vs 인가

Authentication (인증)  = "이 사람이 누구지?"
                        → 로그인 · JWT · 세션 쿠키

Authorization (인가)   = "이 사람이 무엇을 할 수 있지?"
                        → 역할 (admin · user) · 소유권 검사

둘 다 필요. 로그인은 했지만 다른 사용자 글을 삭제하면 403.

8. 데이터베이스 — 왜 PostgreSQL?

  • 오픈소스 · 무료 · 기업 지원
  • ACID — 트랜잭션 안전
  • SQL 표준 충실 · 확장 풍부 (pgvector · PostGIS · TimescaleDB)
  • JSONB · 배열 · 전문검색 등 현대적 기능

MySQL · SQL Server · Oracle 도 가능하지만 PostgreSQL 이 2026 기준 가장 다용도.

9. API 형태 — REST · GraphQL · gRPC

형태 특징 언제
REST 자원 · HTTP 메서드 중심. 표준 대부분
GraphQL 클라이언트가 필요한 필드만 요청 프론트 여러 · 네트워크 최적화
gRPC protobuf · HTTP/2 · 스트리밍 마이크로서비스 간

입문은 REST. GraphQL · gRPC 는 특정 상황에서.

10. 로그 · 관측

private static final Logger log = LoggerFactory.getLogger(PostController.class);

log.info("created post userId={}", userId);
log.warn("rate limit hit ip={}", ip);
log.error("payment failed", exception);

SLF4J + Logback 이 Spring 표준. System.out.println 은 지양.

11. 자주 걸리는 자리

  • Controller 에서 비즈니스 로직 — 반드시 Service 로 이동
  • DTO 없이 Entity 직접 반환 — API 응답이 DB 스키마에 결합
  • @Transactional 없이 여러 쿼리 — 중간 실패 시 데이터 불일치
  • 민감 정보 log — 비밀번호 · 토큰 · 주민번호 절대 로그 금지

12. 학습 순서 제안

  1. Java 21 문법 (record · switch) 기초
  2. Spring Boot 프로젝트 만들기 · @SpringBootApplication
  3. Controller · Service · Repository 실습
  4. H2 · PostgreSQL 연결
  5. DTO · Validation · 예외 처리
  6. JWT 인증
  7. 테스트 (MockMvc · Testcontainers)
  8. 배포 (Docker)

이 강좌가 같은 순서로 갑니다.

더 깊이

  • Spring 멀티 모듈 노트
  • WebFlux vs MVC 노트
  • REST API 입문 노트
  • Java 21 모던

다음 단계

2단계에서는 진짜 첫 Spring Boot 프로젝트를 만들어 봅니다.

2단계 →

2단계 — 첫 Spring Boot 4 프로젝트