Spring Framework 5

[Spring] Bean Scope 가 뭘까?

목표 : Bean Scope에 대해 설명할 수 있다. Bean Scope라는 것은 Bean의 범위인데, 아마 바로는 이해가 쉽지 않을 것이다. Bean Scope는 객체를 만들 때, 컨테이너가 이 객체를 한번만 호출하는지, 아니면 호출 할 때마다 여러번 만드는지에 대한 내용이다. 그래서 문서 상에 여러 Scope가 있는 걸 볼 수 있고, 대부분 singleton 혹은 prototype이다. 이 두가지를 알아보기 전에 한가지 정리가 필요하다. 용어부터 정리해보자. Identity (동일성) 그리고 equals (동등성) 두가지가 있다 Identity (동일성) 은 객체의 주소가 같다. 이 말은 obj1 == obj2 && obj2 == obj3 를 했을 때, true가 나오는 Hashcode가 동일한 것이..

Framework/Spring 2022.07.29

[Spring] 스프링의 DI가 뭘까?

목표 : Spring의 DI에 대해 설명할 수 있다. 이제 DI(Dependency Injection)에 대해 알아보려고 한다. 앞서 IoC Container에 대한 설명에서 Spring 공식문서에 IoC와 DI를 동일하게 표현하고 있다는 걸 먼저 볼 수 있었다. 그럼에도 용어가 다른 것에는 다른 의미가 있을 텐데, 어떻게 된건지 알아보도록 하자. 이번에도 역시, Spring 공식문서의 Dependencies 부분을 참고하여 확인해볼 것이다. Dependencies 보통의 Application은 하나 이상의 Object로 구성된다. 그리고, 이 Object들은 서로 함께 동작하게 된다. 그 예시를 보도록 하자. // A.java public class A { private B b = new B(); pu..

Framework/Spring 2022.07.26

[Spring] 스프링의 Bean을 어떻게 쓸 수 있을까?

목표 : Spring 의 Bean을 간단히 사용해볼 수 있다. 스프링은 무엇을 도와주는가? 스프링의 사용법은 어떻게 되는가? 라는 두가지 주제 중, 스프링은 무엇을 도와주는가? 에 대해 간략히 정의와 함께 알아보았고, 스프링의 사용법을 알기 이전에 그 사용 용어들부터 정리해보고 있다. 우선, 이전 포스트에서 Spring 의 IoC Container가 무엇인지 설명할 수 있게 되었다. 다만, 그 Detail을 조금 더 파고 들고자 한다. Bean이라는 것 앞서 보던 Spring 공식 문서에서 Bean Overview를 통해 자세히 알아보고자 한다. 사실 우린 Bean이라는 것도 이미 배웠다. Bean은 Spring Container (ApplicationContext 구현체) 가 관리하고 생성하고 인스턴스..

Framework/Spring 2022.07.23

[Spring] 스프링의 IoC Container가 뭘까?

목표 : 스프링의 IoC Container 에 대해 설명할 수 있다. 앞선 포스팅에서 스프링 프레임워크가 주는 의문 두가지, 스프링은 무엇을 도와주는가? 스프링의 사용법은 어떻게 되는가? 중에서 스프링의 사용법은 어떻게 되는지 알아볼 차례다. 일단 그 전에, 용어를 정리해야 사용법도 알게 될 것이므로 용어부터 하나씩 보도록 하자. 그 중, IoC Container 에 대해 알아볼 것이고, 그 내용은 스프링 공식 문서를 기반으로 확인해 보겠다. 스프링 코어 (spring-core) 스프링 코어의 가장 처음 나오는 용어가 IoC Container 이다. 그리고 그 문장을 그대로 가져오면 다음과 같다. Foremost amongst these is the Spring Framework’s Inversion o..

Framework/Spring 2022.07.23

[Spring] 스프링 프레임워크가 뭘까?

목표 : 스프링(Spring)이 무엇인지 설명할 수 있다. 더보기 서론이자 내 생각.. 스프링을 별도로 공부한 적은 많이 있지만, 글을 적으려고 할 때마다, 그리고 너무 겉핥기로 알고 있다보니 난감한 부분이 있다. 특히나 어려운 부분은, 오랫동안 발전해왔고 그 히스토리를 온전히 공부하면서 쌓아가야하는 건 아닐까 하는 생각이 항상 들어, 어디부터 어떻게 시작해야하는지 감이 잘 잡히지 않는다. 게다가 Spring Security, Data, Batch, Cloud, JPA 등등 너무도 다양해지는 탓에 어떻게 시작해야하는지 모르는 경우가 많았다. 무작정 토비의 스프링을 들고 공부하면 될지, 아니면 스프링부트로 API 서버 만드는 법부터 하면 되는 건지, JSP를 비롯한 이제는 점점 Legacy라는 단어로 표현..

Framework/Spring 2022.07.22