스프링부트 프로젝트 포폴을 작성하는데 문득 스프링은 무엇인가? 내 프로젝트는 어떻게 구성되었는가? 에 대해 설명할 자신이 없었다. 스프링에 대해서 알기는 하는걸까? 사용자가 이용하는 비지니스 로직에 대한 설명, 기능 구현부분의 방식은 복습하면서 끌어올릴 수 있지만, 이건 기능에 대한 구현부분 설명이다. 구조적으로 왜 가장 기초가 되고 왜 스프링 프레임워크를 사용했는지에 대한 이론이 부족했다. 교육과정에서 분명히 선생님이 설명해주었지만 이해가 되지 않았던 것 같다. 강사의 잘못이 아니다. 그 때 내가 질문했더라면, 좀 더 이해하려 노력했으면 지금과 다를 수도 있다. 당시 어려운건 그냥 처음이라 원래 이해가 안되는건가? 알 것 같으면서 모르겠는데 당장 실습으로 기능부분 구현하니 뭐 되는구나 이정도 얕은 이해도로 지나가버린 것이다. 실습과 비슷한 폴더구조를 만들고, 의존성 주입은 어떤파일에서하고, 이런 단순한 기능을 구현 할줄만 알았던 것이고 그것마저 지금 기억이 흐릿하다. 그런데 더 나아가서 스프링 자체에 대한 이론 설명이 스프링 프레임워크, 스프링 mvc, 스프링 부트 이 3개의 다른 프로젝트를 진행했지만 최초 스프링프레임워크의 특징부터 시작해서 그 특징과 mvc, 부트 두 프로젝트의 차이점에 대해서 이끌어내지 못한 것이 이 혼란스러움의 원인이다.
겨울같은 코딩에 스프링을 통해 개발자들에게 봄이왔다.
스프링은 편리한 기능(핵심기술) 프로젝트(라이브러리)들을 지원해준다.
스프링 프레임워크에 스프링 부트가 속한다. 별도가 아니다.
일반적으로 스프링이라 하면 스프링 프레임워크를 포함, 그 내부 스프링 mvc, 스프링 부트 등 모든 스프링 생태계를 말한다.
di컨테이너 등 특정 기술에 대해 말할 때 스프링 부트라고 한다. 기본적으로 스프링 부트는 스프링 프레임워크에 포함되어 있다.
핵심기능은 뭐고 프로젝트에서 어떻게 부각되었는가? 단순히 로직을 말하는 것이 아니라 어느 부분이 "스프링 프레임워크" 또는 "스프링 부트"의 특징이 구현되었는가?
스프링은 객체지향을 도와주는 프레임워크다. 가장중요. 어떻게 도와주는가? 핵심기술 1번인 DI컨테이너가 무엇을 의미하는가?
스프링 프레임워크의 특징적인 기능, 객체지향을 도와주는 기술들을 한번 더 편리하게 사용 할 수있는 것이 스프링 부트이다.
외부 서버 설정 연결 등vs내장 서버로 간편해진 서버 환경 구축
라이브러리 의존성 주입의 차이 모든 라이브러리를 상세 주입 vs 대표 라이브러리 주입과 관련 라이브러리 자동 주입
의존성 주입 라이브러리의 버전에 대한 관리 편함 세부 라이브러리 구성을 직접 해야 함 vs 스프링 버전에 따른 라이브러리 버전 레퍼런스 최적화 제공