Entity객체를 생성할 때 lombok의 @Builder를 많이 적용한다. @Builder를 사용할경우, 일반적으로 기본 생성자에 대한 접근 제어를 위해@NoArgsConstructor(access = AccessLevel.PROTECTED)를 사용한다. 이유: 무분별하게 생성되는 객체들을 한번 더 체크하면서 의도하지 않은 Entity 객체를 만드는 행위 방지! 근데 @Builder와 @NoArgsConstructor을 동시에 사용하면 컴파일 에러가 난다. ▶왜 컴파일 에러가 발생함??@Builder를 통해 필요한 파라미터만 받아서 객체 생성 가능, 전체 파라미터를 받아서 객체 생성 가능-> 전체 생성자가 없으면 당연히 에러가 발생함. ▷@NoArgsConstructor없이 @Builder만 사..
전체 글
▶빌더패턴이 뭐지?빌더패턴은 생성자로만 객체를 생성했을 때 문제를 해결하기 위한 패턴이다. ▶생성자로 객체 생성생성자로만 객체 생성을 하면 코드가 복잡해지고 가독성이 떨어진다.public class Person { private String name; private int age; private String gender; private String address; public Person(String name, int age, String gender, String address) { this.name = name; this.age = age; this.gender = gender; this.address = address; ..
개발하다보면 여기저기 Lombok코드들이 많이 쓰인다. 어느순간부터 코드에 들어와있던 녀석들...을 알고써보면 좋을 것 같아서 글을 쓴다.역시 개발은 공부하고 내가 아는걸 코드로 작성해야지 더 재미있는 것 같다. ▶시작하기 전, 생성자는 뭐지??생성자는 인스턴스가 생성될 때 호출되는 인스턴스 초기화 메소드 이다.인스턴스 변수의 초기화 작업에 사용되며, 인스턴스 생성시에 실행되어야 할 작업을 위해서도 사용된다. 생성자는 클래스 내에 선언되며, 메소드와 달리 리턴값이 없다.또한 생성자의 이름은 클래스의 이름과 같아야한다. 생성자에는 기본생성자와 파라미터가 있는 생성자 두개가 존재한다.public class MemberDTO { private Long id; private String memberE..
▶의존성주입(DI)이란?사용자가 new키워드를 통해 객체를 생성하고 소멸시키는 과정 필요 없이의존성주입을 해서 Spring Container가 Bean들의 생명 주기를 관리해주는 기능을 IoC , 제어의 역전이라고 한다. 이 기능을 사용하기 위해서는 우선 객체를 빈으로 등록해야한다.Bean 등록은 XML 설정 파일을 통해서도 할 수 있고,Annotation을 이용한 자바 코드를 통해서 등록할 수도 있다. https://learning-study.tistory.com/entry/Spring-Boot-ApplicationContext%EB%9E%80-ApplicationContext-Interface%EB%A5%BC-%EA%B5%AC%ED%98%84%ED%95%98%EA%B3%A0-%EC%9E%88%EB%8..
▶ApplicationContext란?스프링을 공부할 때 ApplicationContext를 많이 들어봤을것이다. 듣기만 하고 넘기면 안된다. ApplicationContext란 뭘까?바로 스프링 컨테이너이다.스프링 컨테이너의 이름이 ApplicationContext이다. 그러면 컨테이너는 뭘까?컨테이너는 빈의 생명주기를 관리하고, 객체를 어떤 방식(싱글톤, 프로토타입)으로 만들지 정하는 역할을 한다.즉, 스프링의 핵심이다. 그러면 빈은 뭘까?빈. Bean은 컨테이너가 관리하는 객체를 말한다. 즉, 빈을 관리하는 컨테이너는 스프링의 핵심이고.그 핵심인 스프링 컨테이너의 이름이 ApplicationContext 인 것이다. ▷Spring Framework의 핵심모듈그림을 보면 Core Contai..
▶상황 깃허브에서 Repository 만들고 README 파일을 만들어줬다. 그리고 인텔리제이에서 스프링 웹 프로젝트를 만들고 git branch –M main git remote add origin [레포 주소] 이렇게 로컬과 원격를 연결 해 준 후 커밋하고 git push origin main 로컬의 main브랜치의 내용을 원격의 origin으로 push할려고 했는데 ▶문제 발생 이게 뭐람..? $ git push -u origin main To https://github.com/wlaud2000/likelion_shop.git ! [rejected] main -> main (non-fast-forward) error: failed to push some refs to 'https://github.c..