오늘은 부트캠프 28일차이다. 오전에는 알고리즘 문제를 풀고 푼거에 대한 리뷰를 했고, 오후에는 스프링부트 입문 개인 과제를 진행하게 되었고, api 작성과 클래스 다이어그램을 작성을 해보았다. 이게 맞게 작성하였는지 잘 모르겠지만 처음에는 작성하지도 못했는데 이제는 작성이라도 한 것이 크게는 아니지만 조금이나마 발전하지 않았나 싶다. 그리고 예전에는 프로젝트를 하면서 구글링을 하는 것 조차 힘들어서 어려움을 많이 느꼈지만 지금은 정확히 어디 부분에서 오류가 났고 대처하는 방법이 조금 발전한 것 같아서 뿌듯하다.
오늘 배운 것
1. 스프링의 개념
-자버 기반의 웹 어플리케이션을 만들 수 있는 프레임워크이다.
2. 스프링의 구조
-Data Access/Integration(JDBC / ORM / OXM / JMS / Transactions)
-Web(WebSocket / Servlet / Web / Portlet)
-AOP / Aspects / Instrumentation / Messaging
-Core Container(Beans / Core / Context / SpEL)
-Test
3. 스프링의 특징
-자바 객체와 라이브러리들을 관리해주며, 톰캣과 같은 WAS가 내장되어 있어 자바 웹 어플리케이션을 구동할 수 있다.
-객체의 생성 및 소멸과 같은 생명 주기를 관리하며, 컨테이너에서 필요한 객체를 가져와 사용한다.
3-1. 제어의 역전(IOC, Inversion Of Control)
-스프일에게 제어를 위임하여 스프링이 만든 객체를 주입 -> 의존성 객체의 메서드 호출
3-2. 의존성 주입(DI, Dependency Injection)
-객체를 Spring에서 생성해서 사용하려는 주체 객체에 주입시켜주는 방식
4. 스프링 부트의 개념
-스프링을 더 쉽게 이용하기 위한 도구
-스프링부트는 실행환경과 의존성 관리 등의 인프라 관련 등에 에너지를 쏟기 보다는 비즈니스를 만들기 위한 프로그래밍에 더 투자할 수 있게 spring의 많은 부분을 자동화하였다.