Spring Boot 속성 개념 정리

qoqo_mi·2026년 1월 22일

TIL

목록 보기
9/10

갑자기 속성으로 공부하게 된 백엔드라 기본 개념 익히기 좋았다.

김영한강사님의 스프링 핵심 원리 - 기본편

1. Spring 프로젝트 구조

Spring 프로젝트는 역할에 따라 패키지를 분리하여 관리한다.

디렉토리역할예시
domain데이터 정의Member, Order, Product
controller요청/응답 처리URL 매핑
service비즈니스 로직회원가입 규칙
repositoryDB 저장/조회실제 데이터 저장

📌 요청 흐름

사용자 요청
 → Controller
 → Service
 → Repository
 → DB

2. HTTP Mapping 어노테이션

📌 HTTP Mapping 어노테이션이란?

HTTP 요청 방식(GET, POST 등)과 URL을 Controller 메서드에 매핑해주는 어노테이션이다.
즉, 어떤 요청이 들어왔을 때 어떤 메서드를 실행할지 지정하는 역할을 한다.

📌 주요 HTTP Mapping 어노테이션

어노테이션HTTP 메서드의미
@GetMappingGET데이터 조회
@PostMappingPOST데이터 생성
@PutMappingPUT데이터 수정
@DeleteMappingDELETE데이터 삭제

📌 어노테이션별 정의

@GetMapping

  • 서버의 데이터를 조회

  • 데이터 변경 없음

@GetMapping("/members")
public String members() {
    return "members";
}

@PostMapping

  • 데이터를 서버에 전송하여 생성
@PostMapping("/members/new")
public String create(MemberForm form) {
    return "redirect:/members";
}

@PutMapping

  • 기존 데이터 수정
@PutMapping("/members/{id}")
public void updateMember(@PathVariable Long id) {
}

@DeleteMapping

  • 데이터 삭제
@DeleteMapping("/members/{id}")
public void deleteMember(@PathVariable Long id) {
}

3. 데이터 바인딩 (Data Binding)

HTML 폼 데이터를 Java 객체에 자동으로 연결해주는 기능

<input type="text" name="name">
public class MemberForm {
    private String name;

    public void setName(String name) {
        this.name = name;
    }
}

@PostMapping("/members/new")
public String create(MemberForm form) {
    form.getName();  // 입력값이 자동으로 들어옴
}

👉 Spring이 name="name"을 보고 setName()을 자동 호출한다.

4. 다형성 (Polymorphism)

같은 인터페이스로 여러 구현체를 교체할 수 있는 성질

// 인터페이스
public interface MemberRepository {
    Member save(Member member);
}
// 구현체 1: 메모리 저장
public class MemoryMemberRepository implements MemberRepository { }
// 구현체 2: DB 저장
public class JpaMemberRepository implements MemberRepository { }

👉 Service는 인터페이스에만 의존하므로 구현체 교체가 자유롭다.

5. JDBC vs JPA

구분JDBCJPA
SQL직접 작성자동 생성
코드량많음적음
특징로우 레벨 DB 접근객체 ↔ 테이블 매핑
// JDBC
String sql = "INSERT INTO member(name) VALUES(?)";
// JPA
em.persist(member);

6. MVC 패턴

애플리케이션을 3가지 역할로 분리하는 설계 패턴

구분역할예시
Model데이터Member, MemberForm
View화면HTML
Controller요청 처리MemberController

7. AOP (Aspect Oriented Programming)

공통 관심사를 분리하는 기법

구분설명예시
핵심 관심사실제 비즈니스 로직회원가입
공통 관심사반복되는 로직로깅, 시간 측정

👉 AOP를 사용하면 공통 로직을 한 곳에서 관리할 수 있다.

8. 주요 어노테이션

어노테이션의미역할
@Controller컨트롤러 등록웹 요청 처리
@Service서비스 등록비즈니스 로직
@Repository레포지토리 등록DB 접근
@Autowired자동 주입의존성 주입
@Override메서드 재정의인터페이스 구현
@Bean수동 등록직접 객체 등록

0개의 댓글