Back-end
[Spring] 객체지향적 DAO - 분리 (템플릿 메소드 패턴)
👉 객체지향의 세계에서는 모든것이 변하는데, 쉽게 말하면 객체에 대한 설계와 이를 구현한 코드가 변한다는 것입니다. 그렇기 때문에 개발자는 객체를 설계할 때 바로 미래의 변화를 어떻게 대비할 것인가 염두해 둬야 합니다. 객체지향 기술(언어)는 이러한 객체지향 세계의 변화에 효과적으로 대처할 수 있습니다. How? 변화의 폭을 분리를 통해 최소한으로 줄여줘야 합니다. 🧐 분리란? 프로그래밍의 기초 개념 중 관심사의 분리라는 게 있는데, 이를 객체지향에 적용해보면, 관심이 같은 것끼리는 하나의 객체 안으로 또는 친한 객체로 모이게 할 수 있고, 관심이 다른 것은 가능한 한 따로 떨어져서 서로 영향을 주지 않도록 분리하는 것입니다. 관심사의 분리를 적용해보면, DB connection 부분을 다른 것과 영향을..
[Spring] DAO 기본 구조 만들기
🧐 DAO란? DAO(Data Access Object)는 DB를 사용해 데이터를 조회하거나 조작하는 기능을 전담하도록 만든 오브젝트 🧐 DAO 기본 구조 먼저 사용자 정보를 쉽게 저장하기 위한 객체를 위해 User 클래스를 만들어줍니다. User Class public class User { String id; String name; String password; public String getId(){ return id; } public void setId(String id){ this.id = id; } public String getName(){ return name; } public void setName(String name){ this.name = name; } public String ge..
[Spring] @Autowired vs @Resource vs @Inject
🧐 @Autowired, @Resource, @Inject을 사용하는 이유 의존 주입을 위해 사용한다. 특정 Bean 기능을 수행하기 위해 기능에 필요한 특정한 Bean을 참조해야 하는데, 이 때 특정 Bean에 자동 연결을 위해 위 어노테이션들을 사용한다. 😊 @Autowired vs @Resource vs @Inject public class Animal{} @Component public class Dog implements Animal{} @Component public class Cat implements Animal{} 차이 @Autowired private Dog cat //타입 기준 -- Dog 타입으로 연결 @Resource private Dog cat //이름 기준 -- Cat 타입으로..
[Spring] @Bean 과 @Component 차이
🧐 @Bean 과 @Component 사용하는 이유? IoC Container는 @Configuration, @Bean, @Component, @Repository, @Service, @Controller가 달린 클래스를 감지하며 빈을 가져오기 위해 빈 스캐닝을 합니다. 대표적으로 빈으로 사용 할 수 있도록 해주는 어노테이션으로 @Bean과 @Component이 있다. (@Configuration은 구성클래스를 만들 때 사용, @Repository, @Service, @Controller는 @Component에 속해있다.) 😊@Bean vs @Component 👉 @Bean @Bean은 개발자가 직접 제어가 불가능한 외부 라이브러리를 사용할 때 사용한다. @Configuration을 선언한 클래스 내부에..
[Spring] POJO 구성해보기
🧐 자바로 POJO 구성해보기 (1) POJO클래스를 설계할 때 @Configuration, @Bean을 붙여 자바 구성 클래스를 만들거나, @Component, @Repository, @Service, @Controller를 붙여 자바 컴포넌트를 구성해야합니다. IoC 컨테이너는 위와 같이 애너테이션을 붙인 자바 클래스를 스캐닝하여 POJO 인스턴스를 구성해줄 수 있습니다. 기본적인 POJO를 설계할 때의 원리는, 아래 그림과 같이 Main Class에서 IoC 컨테이너를 생성해주고, 구성 클래스에서 생성된 빈 인스턴스를 가져오는 원리입니다. POJO를 사용하기 위해 다목적 시퀀스 생성기 애플리케이션을 만들어보면, prefix, suffix, initial 세 프로퍼티를 지닌 SequenceGenera..
[Spring] POJO 란 무엇인가?
🧐 POJO란? Plain Old Java Object, 간단히 POJO는 말 그대로 해석을 하면 오래된 방식의 간단한 자바 오브젝트라는 말로서 Java EE 등의 중량 프레임워크들을 사용하게 되면서 해당 프레임워크에 종속된 "무거운" 객체를 만들게 된 것에 반발해서 사용되게 된 용어이다. 2000년 9월에 마틴 파울러, 레베카 파슨, 조쉬 맥킨지 등이 사용하기 시작한 용어로서 마틴 파울러는 다음과 같이 그 기원을 밝히고 있다. [1] Plan Old Java Object - 오래된 방식 단순 자바 객체 getter/setter를 가진 단순한 자바 오브젝트 🤔 개발된 이유: EJB의 객체지향적으로 장점인 특성들을 가져와 개발. (EJB란 자바 개발에 있어 로우개발에 신경을 안 쓰고 애플리케이션을 쉽게 만..