@Component
- 개발자가 직접 작성한 class를 bean으로 등록하기 위한 Annotation
@RequiredArgsConstructor
- lombok
- final 혹은 @NotNull 이 붙은 필드의 생성자 생성
@NoArgsConstructor
- lombok
- 어노테이션은 파라미터가 없는 기본 생성자를 생성
@AllArgsConstructor
- lombok
- 어노테이션은 모든 필드 값을 파라미터로 받는 생성자 생성
@Getter / @Setter
- lombok
- 접근자/생성자
@ModelAttribute를 사용해 객체 형식으로 값을 받음 – 값이 많을 때!
@ModelAttribute을 빼고 써도 값은 받아짐
@Requestbody – 바디에 값을 받아옴
@Transactional(readOnly = true) 오류 뜰 때에는 import 확인
import org.springframework.transaction.annotation.Transactional;
필드 값은 보내는 쪽과 받는 쪽이 똑같아야함
다르면 값을 제대로 받아와 표현하지 하지 못함
OOP (Object Oriented Programming, 객체지향프로그래밍)
- 상속과 인터페이스 (계층성)
- 다형성, 사용편의성 (모듈화)
- 캡슐화, 정보은닉
- 자료 추상화 (모델링)
- 동적 바인딩
상속
extends
- 부모 메소드 그대로 사용 가능
- 오버라이딩 할 필요없이 부모에 구현되어 있는 것을 직접 사용 가능
- 다중 상속 불가!
implements
- 부모의 메소드 반드시 오버라이딩(재정의) 해야함
- 다중 상속 가능!
- extends는 일반 클래스와 abstract 클래스 상속에 사용되고, implement는 interface 상속에 사용된다.
-> 일반 class & abstract class 상속 : extends
-> interface 상속 : implement
- class가 class를 상속받을 땐 extends를 사용하고, interface가 interface를 상속 받을 땐 extends를 사용한다.
-> class가 class 상속 : extends
-> interface가 interface 상속 : extends ( 주의! implement 아님 )
- class가 interface를 사용할 땐 implements를 써야하고, interface가 class를 사용할 땐 implements를 쓸수 없다.
- extends는 클래스 한 개만 상속 받을 수 있다.
- extends 자신 클래스는 부모 클래스의 기능을 사용한다.
- implements는 여러개 사용 가능하다.
- implements는 설계 목적으로 구현 가능하다.
- implements한 클래스는 implements의 내용을 다 사용해야 한다.
멀티스레드 : 하나의 t메모리 & 스택 영역만 분할
멀티프로세스 : 각자의 t메모리 & 각자의 고유 공간
MVC (Model - View - Controller) 디자인 패턴