본문 바로가기

728x90

분류 전체보기

(130)
@Autowired로 의존관계 주입하기 앞 포스팅(@ComponentScan으로 스프링 빈 스캔하기)에서 @Component와 @ComponentScan을 이용하여 스프링 빈을 스프링 컨테이너에 등록하였습니다. 이제는 @Autowired를 이용하여 의존관계를 자동으로 주입할 수 있도록 해보겠습니다. @Autowired로는 여러가지 방법으로 의존관계를 주입할 수 있는데, 우선은 가장 기본적이고 많이 사용하는 방법인 생성자를 통해 주입해보도록 하겠습니다. @Autowired 생성자 주입 1. 스프링 빈 생성하기 먼저 @Component를 이용해 원하는 스프링 빈을 생성하겠습니다. (물론 @ComponentScan도 적절한 위치에 정의가 되어 있어야겠습니다. ) @Component public class Book implements Product{..
@ComponentScan으로 스프링 빈 스캔하기 앞의 포스팅까지는 @Configuration과 @Bean을 이용하여 아래와 같이 자바 설정 정보에 등록할 스프링 빈을 직접 만들어 스프링 컨테이너에 빈을 등록하였습니다. @Configuration public class AutoAppConfig { @Bean Product getBook(){ return new Book(); } @Bean Order getOrder(){ return new OnlineOrder(getBook()); } } [Book, OnlineOrder 클래스] 더보기 public interface Order {} public class OnlineOrder implements Order { Product product; public OnlineOrder(Product product)..
빈(Bean)을 조회하는 다양한 방법 아래 포스팅에서 스프링 빈을 직접 조회하는 방법에 대해서 알아봤습니다. 아래 포스팅에서는 이름을 통해 빈을 찾았다면 이번 포스팅에서는 빈을 조회하는 다른 여러 가지 방법에 대해서 코드로 작성해 보았습니다. https://silver-programmer.tistory.com/entry/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88%EC%99%80-%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B9%88Bean 스프링 컨테이너와 스프링 빈(Bean) 스프링 컨테이너란, 스프링 빈(Bean)을 저장하고 관리하는 저장소입니다. 스프링 빈(Bean)은 스프링 컨테이너에 의해 관리되는 재사용 가능한 소프트웨어 컴포넌트입니다. 즉, 스프..
스프링 컨테이너와 스프링 빈(Bean) 스프링 컨테이너란, 스프링 빈(Bean)을 저장하고 관리하는 저장소입니다. 스프링 빈(Bean)은 스프링 컨테이너에 의해 관리되는 재사용 가능한 소프트웨어 컴포넌트입니다. 즉, 스프링 컨테이너가 관리하는 자바 객체를 뜻하며, 하나 이상의 빈(Bean)을 관리한다. 빈은 인스턴스화된 객체를 의미하며, 스프링 컨테이너에 등록된 객체를 스프링 빈이라고 합니다. 스프링 컨테이너를 생성할 때는 구성 정보를 지정해주어야 합니다. 이 구성 정보는 XML을 기반으로 만들 수 있고, 자바 에너테이션 기반의 자바 설정 클래스로도 만들 수 있습니다. (이 외에도 Groovy, json 등 다양한 형식의 파일도 가능합니다.) 이번 포스팅은 이 2가지 방법을 사용하여 스프링 컨테이너와 빈을 생성하는 방법에 대해서 작성하였습니다..
스프링 부트: Spring Initializr 예제 프로젝트 생성 이번 포스팅은 Spring Initializr을 이용하여 쉽게 스프링 부트 예제 프로젝트를 생성하는 법에 대해서 작성하였습니다. 1. Spring Initializr로 프로젝트 구성하기 위 사이트로 들어가 프로젝트의 구성을 원하는 대로 설정하여 다운로드하면 쉽게 Spring Boot 프로젝트 생성이 가능합니다. 저는 아래와 같이 구성한 후, Generate 버튼을 눌러 프로젝트를 생성하였습니다. Project: Gradle Language: Java 17 Spring Boot: 3.2.0 (SNAPSHOT이나 M 버전 같은 것들은 아직 완전히 개발되지 않은 것들이라 보시면 됩니다.) Project Metadata Group: hello Artifact: core (Artifact을 수정하면 Name 속성..
ORM 이란? Object-Relational Mapping ORM이란, 자바의 객체와 데이터베이스를 연결하는 프로그래밍 기법입니다. 만약, SQL이라는 언어로 데이터를 데이터베이스로부터 꺼내 사용해야 한다면 SQL 언어를 별도로 공부해서 사용할 줄 알아야 하는 번거로움이 있습니다. 이 번거로움을 해결하고자 ORM이 탄생을 했는데요. ORM을 통해 우리는 SQL 언어를 전혀 몰라도 Java 언어로만 데이터베이스에 접근해서 원하는 데이터를 받아올 수 있습니다. 즉, 객체와 데이터베이스를 연결해 JAVA 언어로만 데이터베이스를 다룰 수 있게 하는 도구라고 할 수 있습니다. ORM의 장점과 단점을 알아보면 아래와 같습니다. 장점 데이터베이스 시스템에 대한 종속성이 줄어듭니다.: 데이터베이스 시스템이 추상화되어 있기 때문에 ..
객체지향 4대 특성 객체지향의 4대 특성에는 아래가 있습니다. 캡슐화: 정보 은닉 상속: 재사용 추상화: 모델링 다형성: 사용 편의 각각의 특성에 대해서 살펴보겠습니다. 추상화 - 모델링 OOP의 추상화는 모델링이라고 할 수 있습니다. 클래스 설계에서 추상화가 사용됩니다. 클래스 설계를 위해서는 애플리케이션 경계부터 정해야 합니다. 객체 지향에서 추상화의 결과는 클래스입니다. 추상화 = 모델링 = 자바의 class 키워드 상속 - 재사용 객체 지향의 상속은 상위 클래스의 특성을 재사용하는 것입니다. (부모-자식 관계가 X) 객체 지향의 상속은 상위 클래스의 특성을 확장하는 것입니다. 객체 지향의 상속은 is kind of 관계를 만족해야 합니다. (즉, 하위 클래스 is kind of 상위 클래스): 하위 클래스는 상위 클..
객체 지향 설계 5원칙 - SOLID SOLID란? 객체 지향 프로그래밍 및 설계의 5가지 기본 원칙을 두문자어로 나타낸 것입니다. 응집도는 높이고, 결합도는 낮추라는 고전 원칙 (High cohesion, Loose coupling)을 객체 지향 관점에서 재정립한 것입니다. SOLID는 아래의 5가지에 해당합니다. SRP (Single Responsibility Principle): 단일 책임 원칙 OCP (Open Closed Principle): 개방 폐쇄 원칙 LSP (Liskov Substitution Principle): 리스코프 치환 원칙 ISP (Interface Segregation Principle): 인터페이스 분리 원칙 DIP (Dependency Inversion Principle): 의존 역전 원칙 ※ 결합도와 응집..

728x90
반응형