빈 이름 @Configuration public class AppConfig { @Bean public MyBean myBean() { return new MyBean(); } } -@Bean 애노테이션으로 빈을 등록할때, 해당 애노테이션이 붙은 메서드의 이름이 "myBean"이라면, 해당 빈의 이름은 "myBean"이 됩니다. @Component public class MyBean { // ... } -@Component 애노테이션으로 빈을 등록할때, 해당 애노테이션이 붙은 클래스의 이름이 "MyBean"이라면, 해당 빈의 이름은 클래스 이름의 첫글자를 소문자로 변환한 "myBean"이 됩니다. 빈 이름 충돌 -빈 이름 충돌은 동일한 이름으로 두개 이상의 빈이 등록되는 경우를 말하며, 이로인해 스프링 ..

컴포넌트 스캔이란? -스프링이 직접 클래스를 검색해서 빈으로 등록해주는 기능입니다. 직접 수동으로 빈을 등록하지않아도, 코드에 컴포넌트라고 표시만 해주면 스프링이 컴포넌트로 지정된 부분을 찾아서 자동으로 빈으로 등록을 해주는 기능입니다. 컴포넌트 스캔 과정 스캔 대상 패키지 지정 - 컴포넌트 스캔을 수행할 패키지를 지정하여 스프링이 스캔을 해야하는 패키지를 지정합니다. @ComponentScan 애노테이션을 통해 스캔 대상 패키지를 지정할 수 있습니다. 클래스 탐색 -지정된 패키지 내부에 있는 클래스들을 탐색합니다. 전체 클래스를 탐색하며, 컴포넌트로 지정된 클래스들만 찾아서 스캔합니다. 어노테이션 탐색 -클래스들을 스캔하면서 컴포넌트만 찾기위해 @Component 어노테이션을 찾습니다. 해당 어노테이션..

웹 서버(Web Server)란? -클라이언트로부터 HTTP 요청을 받고, 정적인 웹 콘텐츠를 제공하는 것으로, 주로 HTML파일을 처리합니다. 즉, 클라이언트로 부터 요청을 받아들여 해당 결과만 응답 해주는 역할로 정적인 페이지 처리를 담당 합니다. 대표적인 예시로는 아파치(Apache)가 있습니다. 웹 애플리케이션 서버(WAS) -동적인 페이지 처리를 담당하며, 요청한 페이지의 로직을 수행하거나 필요할 시 데이터베이스와의 연동을 처리합니다. WAS내부에 웹서버와 웹컨테이너가 결합된 형태로 웹서버가 정적 페이지 처리, 웹컨테이너가 추가적인 동적 페이지 처리를 담당합니다. 대표적인 예시로는 톰캣(Tomcat)이 있습니다. 보시다 싶이, 위의 사진에서 WAS 내부에 Web Server와 Web Contai..

Controller, Repository, Service 분리 이유 -스프링에서 한곳이아닌 여러 파일로 분리후 Controller, Repository, Service등으로 역할을 분리한 이유는 소프트웨어의 구조적인 모듈화와 관심사의 분리를 하기 위한 것입니다. 각각의 역할을 달리가져 서로 다른 책임과 역할을 수행하며, 이를 통해 코드 가독성 ,유지보수성, 확장성을 개선할 수 있습니다. Controller 사용자의 요청을 처리하고 응답을 반환하는 역할을 담당함 클라이언트와의 상호작용을 처리함. 요청의 라우팅처리 및 Service호출등을 수행함. Service 비즈니스 로직을 구현하고, 제공하는 역할을 담당함. 컨트롤러의 요청을 받아 해당 요청에 맞는 비즈니스 로직을 처리함. 로직 내부에서 데이터 필요 시..

빈(Bean)이란? -스프링 컨테이너가 관리를 하고 있는 객체를 뜻합니다. 이 빈은 스프링 컨테이너 안에서 관리되며, 애플리케이션에서 필요한 객체들인 빈을 컨테이너가 받아오거나 전달합니다. 아래 사진을 보시면 스프링 컨테이너에 빈이 5개 등록이 되어있습니다. 애플리케이션에서 해당 빈이 필요할때 컨테이너에게 필요한 빈이 컨테이너 내부에 있는지 요청하고, 해당 빈이 있으면 컨테이너가 빈을 전달합니다. @Bean 과 @Component의 차이 Bean Bean은 메소드 레벨에서 선언하며, 반환 되는 객체를 수동으로 빈으로 등록하는 것 @Configuration 선언된 클래스 내부에서 선언되어 빈등록 Component Component는 클래스 레벨에서 선언하며, 컴포넌트 스캔을 통해 객체를 자동으로 빈을 등록..
DI(Dependency Injection)이란?-스프링에서 객체 간의 의존성을 관리하는 방법, 객체가 필요로하는 타 객체를 직접 생성하지않고, 외부에서 주입받는 방식으로 동작합니다. 이를 통해 객체 간의 결합도를 낮추고 유연하고 확장 가능한 코드를 작성할 수 있습니다. 쉽게말해서, 한 객체내에서 각자 코드구현에 필요한 타 객체가 있을겁니다. 여기서 필요한 객체를 내부 코드에서 직접 생성하게 되면 결합도가 높아져 나중에 코드변경이 있을때, 복잡해 집니다. 따라서, 내부에서 직접 생성하는 것이아닌 외부에서 주입받는 방식으로, 결합도를 낮춰 유지보수를 쉽게할 수 있게 만드는법을 말합니다. DI가 필요한 이유public interface Recipe{ } public class Ramen implements ..

스프링(Spring)이란? -Java의 웹 프레임워크로 Java 언어를 기반으로 사용한다. 즉, 쉽게 말하면 java로 다양한 어플리케이션을 만들기 위한 프로그래밍 설계도,틀이라고 할 수 있습니다. 중복코드의 사용률을 줄여주고, 비즈니스 로직을 더 간단하게 해줍니다.경량 컨테이너와 다양한 모듈로 구성되어 있어 다양한 어플리케이션에 확장가능한 구조를가지고 있습니다. 또한 오픈소스를 기반으로 사용하여 한마디로 말하면 Java로 다양한 프로그램을 더 쉽게 만들수 있게 해주는 오픈소스 프레임워크입니다 스프링의 특징 경량 컨테이너 -개발자가 직접 해야했던 자바 객체의 생명주기(lifecycle) 관리를 자동으로 처리해주는 컨테이너, 여기서, 스프링 컨테이너에 의해 관리되는 자바 객체를 빈(Bean)이라고 부른다...
- Total
- Today
- Yesterday
- 웹소켓
- 네트워크
- 포트포워딩
- 문법
- 자바
- 메세지큐
- 깃허브
- 컴퓨터구조
- 보안
- 도커
- 데이터
- 클라우드
- 파인튜닝
- 스프링
- 프로토콜
- IP주소
- nat
- 데이터베이스
- DB
- sql
- 서버
- 쿼리
- 테이블
- 깃
- 인공지능
- 자동화
- 컨테이너
- JPA
- 소프트웨어공학
- 배포
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |