@NoArgsConstructer이란
lombok을 사용하면 사용하면 생성자도 자동으로 생성할 수 있다.
@NoArgsConstructer 어노테이션은 파라미터가 없는 기본 생성자를 생성해준다.
@AllArgsConstructer 어노테이션은 모든 필드 값을 파라미터(매개 변수)로 받는 생성자를 만들어 준다.
@RequiredArgsConstructer 어노테이션은 final이나 @NonNull인 필드 값만 파라미터(매개 변수)로 받는 생성자를 만들어 준다.
@Getter, @Setter란
JAVA의 가장 큰 특징인 객체지향 중 Getter/Setter의 반복 수행을 대신해수 줄여주는 Lombok의 어노테이션이다.
Getter/Setter 이란
개인 정보나, 구매 정보 등 중요한 정보를 가지는 Entity가 있다고 가정해보자.
해당 데이터처럼 매우 중요한 정도에 실수로 수정 혹은 삭제가 되면 큰 문제가 생길 수 있다.
때문에 필드를 private으로 직접적인 접근을 할 수 없도록 막고, getter/setter 메서드를 통해서만 접근할 수 있도록 제한할 수 있다.
이를 사용하면 getter 메서드를 통해 해당 필드 값을 가져오고, setter 메서드를 사용하여, 값을 설정해줄 수 있다.
Private이란
JAVA에는 변수나 메서드의 사용 권한을 지정해주기 위해 접근 제어자라는 친구가 사용된다.\
접근 제어자의 종류에는
- private : private로 설정되어 있다면 private가 붙은 변수, 메서드는 해당 클래스에서만 접근이 가능하다.
- default : 접근 제어자를 별도로 지정해주지 않으면 default 접근 제어자가 적용된다. default로 지정된 변수, 메서드는 해당 패키지 내에서만 접근이 가능하다.
- protected : protected가 붙은 변수, 메서드는 동일 패키지의 클래스 또는 해당 클래스를 상속받은 다른 패키지의 클래스에서만 접근이 가능하다.
- public : public이 붙은 변수, 메서드는 특정 조건 없이 어디서든 사용이 가능하다.
이 있다.
생성자란
클래스를 가지고 객체를 생성하면, 해당 객체는 메모리에 즉시 생성된다.
하지만 이렇게 생성된 객체는 모든 인스턴스 변수가 아직 초기화되지 않은 상태이며
자바에서 클래스 변수와 인스턴스 변수를 별도로 초기화하지 않으면 변수의 타입에 따라 초깃값이 저장된다.
인스턴스 변수중 private 변수도 있으며, 이러한 private 변수에는 사용자나 프로그램이 직접 접근할 수 없어 일반적인 초기화 방식으로는 초기화할 수 없다.
따라서 private 인스턴스 변수에도 접근할 수 있는 초기화만을 위한 public 메소드가 필요해진다.
이러한 초기화만을 위한 메소드는 객체가 생성된 후부터 사용되기 전까지 반드시 인스턴스 변수의 초기화를 위해 호출되어야 한다.
여태까지 말한 초기화만을 위한 메서드가 생성자(Constructer)에 해당된다.
Lombok(롬복)이란?
lombok이란 Java 라이브러리로 반복되는 getter, setter, toString 등의 반복 메서드 작성 코드를 줄여주는 코드 다이어트 라이브러리 이다.
Java에서 보통 model 클래스나 Entity 같은 도메인 클래스 등에는 수많은 멤버 변수가 있고 이에 대응되는 getter, setter와 toString() 메서드, 때에 따라 멤버 변수에 따른 여러 개의 생성자는 만들어주게 되는데 거의 대부분 IDE에서 자동생성 기능이 있지만 이 역시도 번거로운 작업이 아닐 수 없다.
뿐만 아니라 코드가 자체 반복 소스코드로 인해 복잡하게 된다.
Lombok은 여러 가지@어노테이션을 제공하고 이를 기반으로 반복 소스코드를 컴파일 과정에서 생성해주는 방식으로 동작하는 라이브러리이다.
즉, 코딩 과정에서는 롬복과 관련된 어노테이션만 보이지만 해당 어노테이션에 해당되는 코드는 실제로 컴파일된 결과물. class 파일에는 코드가 생성되어 있다.
toString() 이란
Object 클래스가 가진 메서드 중 toString 메서드가 있다.
toString 메서드는 객체가 가지고 있는 정보나 값들을 문자열로 만들어 리턴하는 메서드이다.
Object란
JAVA에 제공하는 모든 클래스들은 계층 구조로 이루어져 있고, 그 최상위로 올라가면 Object라는 클래스가 존재한다.
우리가 일반적으로 생성하는 클래스도 extends로 직접 상속하지는 않지만
자바 컴파일러는 일반 클래스를 Object의 하위 클래스로 자동 설정하게 되어있다.
즉, 자바 라이브러리나 유저가 만든 모든 클래스는 Object 클래스를 부모 클래스로 상속받아 사용할 수 있게 된다.
IDE란
통합 개발 환경(Integrated Development Environment, IDE)이란 공통된 개발자 툴을 하나의 그래픽 사용자 인터페이스(Graphical User Interface, GUI)로 결합하는 애플리케이션을 구축하기 위한 소프트웨어이다.
즉, 쉽게 말하면 코딩, 디버그, 컴파일, 배포 등 프로그램 개발에 관련된 모든 작업을 하나의 프로그램 안에서 처리하는 환경을 제공하는 소프트웨어이다.
'🍃웹개발 Spring' 카테고리의 다른 글
[Spring] API - GET (0) | 2022.09.27 |
---|---|
[String] Lombok이란 (0) | 2022.09.27 |
[Spring] JPA심화 (CRUD)_2, SpringBoot 서비스 구조 (1) | 2022.09.27 |
[Spring] JPA심화 (CRUD)_1 (0) | 2022.09.27 |
[Spring] JPA 상속(extends) (0) | 2022.09.26 |