Framework 20

[Spring] Classpath와 Component가 뭘까?

목표 : 스프링의 Classpath와 Component를 설명할 수 있다. 현재 진행하고 있는 문서의 위치는 다음과 같다. 조금 생소하다면 생소하고, 많이 봤으면서도 설명하기 어려웠던 개념이 나오기에, 잘 정리하도록 해보자. Classpath 먼저, Classpath가 무엇인지 부터 알도록 하자. java는 빌드 후에 실행파일이 나오게 된다. (javac 로 컴파일 이후에 Java Byte Code인(JVM이 이해할 수 있는 언어) .class 파일이 나오는 것 정도는 알아야 한다) 즉, Classpath는 이 컴파일된 파일의 경로를 가리키게 된다. 우리가 흔히, Spring을 빌드하고 나면, target 폴더에 결과물이 남는데, 이 때 classes 폴더가 바로 해당 파일의 경로가 될 것이다. Clas..

Framework/Spring 2022.08.02

[Spring] Annotation Configuration은 어떻게 할까?

목표 : Spring의 Anntation 설정을 할 수 있다. 이번엔 계속 XML에서 설정해온 Configuration 정보들을 Annotation으로 어떻게 할 수 있을지 알아볼 예정이다. 해당 링크를 중심으로 하나씩 알아가 보도록 하자. Annotation-based Container Configuration 먼저 Annotation이 XML보다 Spring configuration하는 것에 있어서 더 좋은가? 에 대한 질문으로 시작한다. 답은 역시나 "상황에 따라 다르다" 이다. XML 방식은 소스 코드 외, XML만 보고도 설정을 알 수 있다. 즉, 설정과 소스 코드의 분리가 가능하다. 그러나, 프로젝트가 커질수록 XML 관리가 복잡해지기 시작한다. Annotation은 더 짧고 간결한 구성이 가..

Framework/Spring 2022.08.01

[Spring] Bean의 LifeCycle는 어떻게 될까?

목표 : Spring에서 Bean의 LifeCycle에 대해 설명할 수 있다. Bean에도 LifeCycle이 있을 것이고, 그에 따라 여러 설정값들도 있을 것이다. 그에 대해 알아보면서, 결국 서블릿 컨테이너를 통해 서블릿이 관리되고, 하나의 서블릿에서 Application Context가 관리하는 Bean들이 실행되는 전체적인 관점도 알아보도록 하자. Customizing the Nature of a Bean 계속 참고하여 보던 문서의 제목이며, Bean의 성질이 어떻게 되는지 보고, 수정할 수 있는 방향을 알아보자. 그럼 LifeCycle에 대해 알아보자. LifeCycle Spring에서는 객체를 다루므로, 객체를 만들거나 객체를 없애는 행위를 할 수 있다. 객체를 만들 때는 new로 객체를 만드..

Framework/Spring 2022.07.31

[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

Spring Framework 아주 조금만 알아보자 - SpringMVC

Annotation Spring 을 공부하면서 가장 러닝커브가 높았던 것이 Annotation이었다. Annotation을 쓰지 않던 (현재는 지원하는 것도 많지만) 언어를 먼저 공부하기도 했고, 의존성 주입이나, 작성한 Configuration을 Framework가 알아서 가져와 사용한다는 개념이 익숙지 않았었다. 그래서 항상 기본 도서를 보고, 실무에 사용된 코드를 보면서 기능은 알겠는데, 명확한 차이를 몰라 익숙한대로 써왔었는데, 하나씩 포스팅하며 정리해보도록 하겠다. XML 아직 XML을 사용하는 곳은 많다. 시스템 전체에 영향을 주거나 이후에 변경 가능성이 있는 내용은 XML로 정의하면서 결합도를 낮추고 유지보수성을 높여준다. 다만, 너무 내용이 많아지면 오히려 유지보수성이 낮아지는 상황도 발생..

Framework/Spring 2020.12.01

Spring Framework 아주 조금만 알아보자 - INTRO

INTRO 몇몇 컨셉이나, 프로그래밍을 통해 몇가지 개발을 진행해 본적은 있다. 다만, 최근의 방향, 부가적인 컴포넌트들, 핵심이 되는 컨셉등을 알아가기에는 조금 힘든감이 있어, 조금씩 공부해보기로 했다. 선택한 책은 다음과 같다. 제목 링크 토비의 스프링 www.yes24.com/Product/Goods/7516911 실전! 스프링 5와 Vue.js 2로 시작하는 모던 웹 애플리케이션 개발 http://www.yes24.com/Product/Goods/86038744 사실 몇가지 책이 더 있지만, 그건 그 때가서 보도록 하겠다. 기본적으로, Spring 만 공부할 것은 아니라, Javascript나 Vue에 대한 내용도 포함해서 공부할 예정이라, 해당 내용도 추가로 따로 작성할 예정이다. Spring의..

Framework/Spring 2020.11.19