Spring Boot를 이용하여 인터넷 강의를 듣고 다른 사람들의 코드를 복붙하고 예제를 수동적으로 따라가면서
"이렇게 공부를 해서 나한테 도움이 될까?"
라는 근본적인 질문을 하게 되었다.
작년에 아무것도 모르던 시절, 면접을 해주신 면접관님의 말이 떠올랐다.
"전에는 모든 프로젝트 설정들을 직접 해줘야했고 라이프사이클을 제대로 알지 못하면 프로젝트를 만들 수 없었는데 Spring Boot가 나온 이후로 편리함에 속아 기본적인 이해없이 프로젝트를 진행하는 경우가 많다"
내가 그 편리함에 속아 '수박 겉핥기'만 한다는 생각이 들었다.
현업에서 일하고 계신 분처럼 정말 깊게는 공부하지 못하더라도 내가 코드를 작성하면서 내부적으로 어떻게 작동할 것인가에 대한 이해는 한 상태로 코드를 작성하고 싶었다.
그래서 시작한 첫 번째 글, Spring이 무엇인지 간단한 개념을 잡고 시작하고 싶었다.
(모든 내용은 Spring 공식 문서의 내용을 참조)
스프링 프레임워크는 엔터프라이즈급 애플리케이션을 만들기 위한 경량솔루션이다.
모든 기능을 갖춘 MVC 프레임워크를 제공하며 당신의 소프트웨어에 투명하게 AOP를 통합할 수 있다.
비침투적
도메인 로직 코드가 일반적으로 프레임워크에 의존적이지 않다는 의미이다.
데이터 접근 계층(DAO) 같은 통합 계층에서 데이터 접근 기술과 스프링 라이브러리에 대한 의존성이 존재한다.
하지만 당신의 다른 코드들로부터 이러한 의존성을 쉽게 제거할 수 있다.
IoC 컨테이너
참조: https://js2prince.tistory.com/entry/Spring-IOC-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88-%EB%9E%80
RMI(Remote Method Invocation)란?
- 분산되어 존재하는 객체 간의 메시지 전송(메소드를 호출하는 것 포함)을 가능하게 하는 프로토콜.
출처: https://0yumin.tistory.com/16 [공유민 블로그]
예제: https://jistol.github.io/java/2017/03/07/springboot-ex-remote/
선언적 트랜잭션
https://snoopy81.tistory.com/335