안녕하세요.
지금까지 계속 저만의 기술 블로그를 만들어야지, 만들거야
마음으로만 다짐하다가 인제야 시작하게 되었습니다.
비록 시작은 코딩일기지만, 그 끝은 창대하게
어엿한 개발자 블로그로 성장할 수 있도록 노력하겠습니다.
본 게시글은 김영한님의 스프링 핵심 원리 강의 내용을 정리한 글입니다.
예전에는 Enterprise Java Beans가 Java 진영의 표준이었고 정파였다.
분산 서비스, 트랜잭션 설정 등 이론은 좋았지만 난이도는.. 심지어 가격도 매우매우매우 비쌌다고. 그리고 EJB의 ORM 기술이었던 Entity beans도 기술적으로 상당히 저조했다.
이런 EJB와 Entity beans 에 불만을 품고 나온것이 바로 Spring Framework 와 Hibernate!
(EJB를 사용하던 개발자가 빡쳐서 만들었다고..)
이렇게 EJB에 의존하여 코드를 짜다보니 복잡하고 더러워져서 다시 Java의 본질로 회귀하자는 POJO(Plain Old Java Object) 얘기가 나왔다고 한다.
Rod Johnson이 EJB의 문제점을 지적하는 책 출간.(전설의 시작)
EJB를 상위 대체할 수 있음을 무려 30,000 라인의 예제 코드로 선보였다.
(예제 코드가 실무 프로젝트에 쓰일 정도라고 한다..)
여기서 IoC, DI, BeanFactory, ApplicationContext 개념 등장..
Juergen Hoeller, Yann Caroff가 Rod Johnson에게 오픈소스 프로젝트를 제안하고 여기서 겨울이 끝나고 봄이 온다는 뜻에 Spring이 탄생.
하지만 이런 Spring도 설정이 굉장히 복잡했기에 이를 편리하게 해주는
Spring Boot 가 등장한다.
Spring 안에는 여러 기술이 존재한다.
필수
선택
이 외에도 많은 자료들은 spring.io 를 참고하자!
Spring 의 편리한 사용을 돕는 Spring Boot가 최근에는 기본으로 사용된다.
Tomcat이 내장되어서 별도의 웹 서버 설치가 불필요하다.
빌드 구성을 쉽게 할 수 있는 starter 종속성을 제공한다.
(필요한 기능을 타고 타고 타서 전부 땡겨와준다.)
3rd party lib를 자동으로 구성해준다.
(버전 궁합에 맞게 알아서 설정해준다.)
운영에서 모니터링 환경을 제공해준다.
왠만한 스프링 설정이 default 값으로 되어있고 메뉴얼이 잘 되어있어 필요하면 찾아서 간편하게 설정하면 된다.