SpringBoot/개념정리

기초단어 및 애너테이션 정리

공부 기록장 2024. 2. 15. 18:38

● WAS(Web Application Service) : 사용자의 입력을 받아 서버에서 무언가를 처리하고 그 결과를 보여주는 동적인 데이터를 처리하는 웹서버(스프링 부트에는 톰캣 서버가 내장되어 있다.)

 

● IDE(Integrated Development Environment) : 통합 개발 환경(ex. 이클립스, 인텔리제이)

 

ORM(Object Relational Mapping)  : sql 을 사용하지 않고 자바 문법으로도 데이터베이스를 다룰 수 있도록 하는 도구

 

JPA(Java Persistence API) : 자바에서 ORM 을 사용하기 위한 인터페이스를 제공하는 API 이다.

 

CRUD : Create, Read, Update, Delete 의 앞글자만 따 만든 단어로 데이터 처리의 기본 기능을 의미한다.

 

 

 

 

 


▶annotation

 

@Controller : 이 클래스가 컨트롤러의 기능을 수행한다는 의미이다. 이 애너테이션이 있어야 스프링 부트 프레임워크가 컨트롤러로 인식한다.

 

@GetMapping("/hello") : http://localhost:8080/hello 라는 URL 요청이 발생하면 hello 메소드가 실행됨을 의미한다.

이 때 URL 명과 메소드명이 동일할 필요는 없다.

 

@PostMapping : post 방식의 URL 요청을 위해서 사용한다.

 

@ResponseBody : @GetMapping 에 상응하는 메소드의 출력결과가 문자열 그 자체임을 나타낸다.

 

@Getter : 클래스 필드에 대한 getter 메소드를 생성한다.

 

@Setter : 클래스 필드에 대한 setter 메소드를 생성한다.

 

@RequiredArgsConstructor : 클래스의 final 필드나 @NonNull 애너테이션이 지정된 필드에 대한 생성자를 생성한다.

 

@Autowired : 스프링의 의존성 주입(DI) 기능을 사용 / 의존성 주입이란 스프링이 객체를 대신 생성하여 주입하는 기법

 

@Entity : 다음 애너테이션을 적용한 클래스는 엔티티로 인식한다.

 

@Id : Id 애너테이션은 어떠한 속성을 기본키로 지정한다.

 


@GeneratedValue : 데이터를 저장할 때 해당 속성에 값을 일일이 입력하지 않아도 자동으로 1 씩 증가하여 저장된다.

@GeneratedValue(strategy = GenerationType.IDENTITY)

고유한 번호를 생성하는 방법을 지정하는 부분으로 해당 속성만 별도로 번호가 차례대로 늘어나도록 할 때 사용한다.


@Column : 열의 세부 설정을 위해 사용한다. length 는 열의 길이를 설정할 때 사용한다. columnDefinition 은 열 데이터의 유형이나 성격을 정의할 때 사용한다.

@Column(columnDefinition = "TEXT")

말 그대로 텍스트를 열 데이터로 넣을 수 있음을 의미

 

@Column(length = 200)

열의 길이를 200으로 정한다.


@ManyToOne : N:1 관계를 나타낼 수 있다.

 

@OneToMany : 1:N 관계를 나타낼 수 있다.

@OneToMany(mappedBy = "question", cascade = CascadeType.REMOVE)

mappedBy 는 참조 엔티티의 속성명을 정의한다. CascadeType.REMOVE 는 질문을 삭제하면 그에 달린 답변들도 모두 삭제되도록 한다.