어노테이션 그리고 엔티티

sun·2026년 1월 6일

2026

목록 보기
3/6

@RequestMapping vs @GetMapping

공통점: 둘 다 URL을 메서드에 연결하는 어노테이션
" HTTP 요청 -> Controller 메서드 "

@RequestMapping (범용)

@RequestMapping("/api/user")

특징 :

  • GET / POST / PUT / DELETE 전부 가능
  • 클래스 / 메서드 둘 다 사용 가능

단점 :

  • 코드 길어짐
  • 한 눈에 HTTP 메서드가 안 보임

@GetMapping / @PostMapping (전용)

@GetMapping("/abc")
@PostMapping("/login")
@PutMapping("/{id}")
@DeleteMapping("/{id}")

특징 :

  • HTTP 메서드 의미가 바로 보임
  • 가독성 최고
  • 실무 표준
@GetMapping("/abc")

⬇️ 이거랑 같음

@RequestMapping(
  value = "/abc",
  method = RequestMethod.GET
)

@Entity만 붙였는데 테이블이 생기는 이유

  • Spring Boot+ JPA + Hibernate가
    "엔티티 보고 테이블 만들어도 되네" 하고 자동 생성

내부에서 벌어지는 일

1. 애플리케이션 시작

  • spring boot가 설정 확인
spring.jpa.hibernate.ddl-auto=update

2. @Entity 스캔

@Entity
public class User {
    @Id @GeneratedValue
    private Long id;
    private String email;
}

--> Hibernate :
“User → 테이블 후보”

3. 테이블 생성 SQL 자동 생성

create table user (
  id bigint not null,
  email varchar(255),
  primary key (id)
);

--> DB에 실행

왜 가능한가?

  • JPA는 ORM(Object ↔ Table 매핑) 기술이라서

자바 클래스 ↔ DB 테이블
필드 ↔ 컬럼
(자동 변환이 가능함)


@RestController  → 요청 받음
@Service         → 로직 처리
@Repository      → DB 접근
@Entity          → DB 구조

0개의 댓글