본문 바로가기

Spring

(28)
스프링 DB : JDBC는 뭐에요? 일반적인 서버와 DB 연결 방법 Connection 연결 : 주로 TCP/IP를 사용해서 커넥션을 연결 SQL 전달 : DB가 이해할 수 있는 언어인 SQL을 Connection을 통해 DB에 전달 결과 응답 : DB는 SQL을 수행하고 그 결과를 응답한다. 서버는 응답 결과를 활용 JDBC가 왜 나왔을까? DB의 종류는 수십가지가 있다. 예전에는 DB마다 위에서 언급한 Connection 연결, SQL 전달, 결과 응답을 받아오는 방법이 천차만별이었다!! 이런 문제들을 해결하기 위해서 JDBC가 등장했다! JDBC (Java Database Connectivity) : Java에서 DB에 접속할 수 있도록 하는 Java API JDBC는 표준 인터페이스를 구현해서 DB에 종류에 상관하지 않게 Conne..
의존관계 주입 방법 중 생성자 주입에 대해서 설명해주세요 https://jootang2.tistory.com/149 @ComponentScan은 무슨 역할인가요? @Autowired는 뭐 하는 아이인가요? @ComponentScan은 @Componet가 붙은 모든 클래스를 스프링 Bean으로 등록해준다. 기본적으로 Bean의 이름은 맨 앞글자만 소문자를 사용한다. (ex. MemberService.class -> memberService) 사용자가 이름을 지정하려면 jootang2.tistory.com 이전 포스팅에서 @ComponentScan과 @Autowired 가 어떤 역할들을 하는 지 알아봤다. 이제 의존관계 자동 주입에 대해서 알아보자. 크게 4가지 방법이 있는데 이번 포스팅에서는 그 중 대표적인 생성자 주입 방법에 대해서 알아보자. 생성자 주입 생성..
@ComponentScan은 무슨 역할인가요? @Autowired는 뭐 하는 아이인가요? @ComponentScan은 @Componet가 붙은 모든 클래스를 스프링 Bean으로 등록해준다. 기본적으로 Bean의 이름은 맨 앞글자만 소문자를 사용한다. (ex. MemberService.class -> memberService) 사용자가 이름을 지정하려면 @Component("myMemberService") 이런 식으로 사용하면 된다. ComponentScan을 사용하기 전에는 직접 @Bean으로 설정 정보를 작성했고, 의존 관계도 직접 명시했었다. 이제 의존관계 주입도 @Component가 붙은 클래스 안에서 해결해야 한다. 이 때, 의존관계를 주입하기 위해 @Autowired를 사용한다. @Autowired를 지정하면 스프링 컨테이너가 자동으로 해당 스프링 빈을 찾아서 주입한다. (기본적으로..
Bean이 뭐에요? 그렇다면 객체는 뭔가요? 설명해주세요. 어제 회사에서 Bean이 뭔지 아냐는 질문을 받았다. 정확히 설명할 수 없었다. spring 시작하면 등록되는 설정... 어버버 하다가 대답을 못했다. 역시 기본이 탄탄해야 한다. Q. Bean이 뭔가요? A. 보통, java에서는 class를 생성하고 new를 사용해서 객체를 직접 생성합니다. Spring에서는 개발자가 직접 생성하지 않고 Spring이 객체를 생성해서 관리합니다. 이를 Bean이라고 합니다. 정리하자면, Spring이 만든 객체를 Bean이라고 합니다. Q.그렇다면 class와 객체는 뭔가요? 또, 인스턴스는 뭔가요? A. class는 일종의 설계도 입니다. 기능과 성능을 정의해 놓은 것 입니다. 설계도이므로 실제로 작동하지는 않습니다. 예를 들면, 핸드폰의 설계도입니다. 객체는 구현..
Spring bean 조회 시 같은 타입이 두 개 이상인 경우는 어떻게 해요~? https://jootang2.tistory.com/145 Spring에 등록된 Bean들을 조회해보자~ https://jootang2.tistory.com/144 Spring을 통해 의존관계 주입해보기! https://jootang2.tistory.com/127 Spring에서 순수 Java코드로 의존관계 주입해보기 (OCP,DIP 문제를 어떻게 해결하지?) 원리를 모르고 기능만 사용 jootang2.tistory.com 이전 포스팅에서 bean을 타입으로 조회하는 방법을 알아봤다. 동일한 타입이 두 개 이상인 경우는 어떻게 해야하지!? 먼저 오류가 나는 경우를 보자 @Test @DisplayName("타입으로 조회시 같은 타입이 둘 이상 있으면, 중복 오류가 발생") void findBeanByTyp..
Spring에 등록된 Bean들을 조회해보자~ https://jootang2.tistory.com/144 Spring을 통해 의존관계 주입해보기! https://jootang2.tistory.com/127 Spring에서 순수 Java코드로 의존관계 주입해보기 (OCP,DIP 문제를 어떻게 해결하지?) 원리를 모르고 기능만 사용해서 결과물 내기에만 급급했었다. 이제는 결과물을 내는 것 jootang2.tistory.com 전 포스팅에서는 Spring에서 사용할 bean들을 spring의 기능들을 통해서 생성했다. 이제 이 생성한 bean들을 어떻게 조회하는 지 알아보자. 1. bean의 이름으로 조회하기 class Test { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicati..
Spring을 통해 의존관계 주입해보기! https://jootang2.tistory.com/127 Spring에서 순수 Java코드로 의존관계 주입해보기 (OCP,DIP 문제를 어떻게 해결하지?) 원리를 모르고 기능만 사용해서 결과물 내기에만 급급했었다. 이제는 결과물을 내는 것도 중요하지만, 어떻게 작동하는지에 대해서 이해가 필요하다고 생각든다. Spring의 기능을 사용하지 않고 jootang2.tistory.com 이전 포스팅에서는 Spring의 기능을 사용하지 않고 순수 java코드로 의존관계를 주입해봤다. 이제 Spring을 통해서 주입해보겠다! 어노테이션을 통해서 AppConfig를 bean으로 등록하자. @Configuration : 설정 정보 @Bean : spring container에 등록이 된다. @Configuration..
Spring에서 순수 Java코드로 의존관계 주입해보기 (OCP,DIP 문제를 어떻게 해결하지?) 원리를 모르고 기능만 사용해서 결과물 내기에만 급급했었다. 이제는 결과물을 내는 것도 중요하지만, 어떻게 작동하는지에 대해서 이해가 필요하다고 생각든다. Spring의 기능을 사용하지 않고 순수 Java코드로 DI컨테이너를 구현해봤다. 앞으로는 Spring으로 전환하여 각각의 어노테이션들이 어떤 의미를 내포하고 있는지 알아볼 계획이다. 먼저, 다형성을 활용해서 코드를 작성했다. public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository = new MemoryMemberRepository(); private final DiscountPolicy discountPolicy = new..