본문 바로가기

728x90

Spring Boot

(16)
외장 서버 vs 내장 서버 외장 서버 과거에는 자바로 웹 애플리케이션을 개발할 때, 먼저 서버에 톰캣과 같은 WAS(Web Application Server)를 설치한 뒤, 설치한 WAS에서 동작하도록 Servlet 스펙에 맞추어 코드를 작성하였습니다. 그리고 작성한 코드를 WAR 형식으로 빌드하여 war 파일을 생성하고, 생성한 war 파일을 설치한 WAS에 배포하는 방식으로 애플리케이션을 개발하였습니다. 하지만 이렇게 개발을 하는 것은 상당히 복잡하고 추가 설정이 필요합니다. 따라서 현재는 다른 방식으로 개발을 진행하는 데요, 그 방식인 내장 서버를 이용한 방식입니다. 내장 서버 최근에는 Spring Boot가 내장 톰캣을 포함하고 있습니다. 애플리케이션 코드 안에 톰캣 같은 WAS가 라이브러리로 내장되어 있어, 개발자가 코드..
@Configuration + @Bean vs @Component 결론 외부 라이브러리를 사용해야 할 때는 우리가 직접 @Component를 그 라이브러리에 선언할 수 없으므로, @Configuration + @Bean 조합으로 스프링 빈을 생성하고, 그 외에 우리가 직접 제어할 수 있는 클래스들은 @Component를 붙임으로써 자동으로 스프링 빈으로 등록되도록 하자. 참고하면 좋은 글: [Spring] 빈 등록을 위한 어노테이션 @Bean, @Configuration, @Component 차이 및 비교 - (1/2) - MangKyu's Diary (tistory.com) [참고자료] https://stackoverflow.com/questions/67691575/when-should-you-use-configuration-instead-of-service-cont..
@Autowired required 옵션 주입할 스프링 빈이 없어도 애플리케이션이 동작해야 할 때가 있습니다. @Autowired는 required 옵션의 기본값이 true로 되어 있어서 자동 주입 대상이 없으면 오류가 발생합니다. 이번 포스팅은 자동 주입 대상을 옵션으로 처리하는 방법을 통해 오류가 발생하지 않도록 하는 방법에 대해서 작성하였습니다. 자동 주입 대상을 옵션으로 처리하는 방법은 아래와 같습니다. @Autowired(required=false): 자동 주입할 대상이 없으면 @Autowired가 선언된 메서드 자체가 호출되지 않습니다. org.springframwork.lang.@Nullable: 자동 주입할 대상이 없으면 null이 입력됩니다. Optional : 자동 주입할 대상이 없으면 Optional.empty가 입력됩니다...
다양한 의존관계 주입 방법 (@Autowired) 스프링 빈끼리의 의존관계 주입은 크게 4가지 방법이 있습니다. 생성자 주입 수정자 주입(Setter 주입) 필드 주입 일반 메서드 주입 이번 포스팅은 각각을 이용하여 의존관계를 주입하는 방법에 대해서 알아보겠습니다. 생성자 주입 이름 그대로 생성자를 통해서 의존 관계를 주입받는 방법입니다. 생성자 호출시점에 딱 한 번만 호출되는 것이 보장됩니다. 불변, 필수 의존관계에 사용됩니다. 아래 코드처럼 생성자 위에 @Autowired를 붙여서 의존관계를 주입하면 됩니다. @Component public class OnlineOrder implements Order { Product product; @Autowired public OnlineOrder(Product product) { this.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 속성..
Spring Boot란 Spring Boot를 알기 전에 우선 Spring Framework가 무엇인지, 왜 Spring Boot가 탄생했는지를 알면 좋습니다. 이번 포스팅은 Spring 프레임워크/Spring Boot가 무엇인지 작성하였습니다.Spring Framework스프링 프레임워크는 엔터프라이즈 애플리케이션을 개발하기 위한 경량 프레임워크 입니다. 이게 무슨 뜻인지 하나씩 파헤쳐 보도록 하겠습니다. 우선 엔터프라이즈 애플리케이션은 비즈니스 로직이 복잡한 기능을 가지고 있는 애플리케이션 혹은 여러가지 기능을 통합한 애플리케이션 이라고 할 수 있습니다. 그럼 프레임워크는 무엇일까요?? 사실 개발자라면 프레임워크 라는 단어를 수도 없이 들어왔을 것입니다. 프레임워크는 매우 중요하고 기본적인 개념이니 다시 한 번 정의를 정리..

728x90
반응형