체력적으로 힘든 시간인것같다. 말없이 공부 하는 시간도 늘고, 그렇다는 건 앉아 있는 시간도 많다는 것을 의미하니, 작년 차사고의 후유증이 계속 오는 것 같은 나날이다. 스프링 숙련주차에 들어온 만큼 더더욱 많이 공부해야지
스프링을 공부하는 내내 궁금했었다. 프레임 워크가 뭐고, 스프링이 어떤 것이길래, 자바를 배웠을 때와 이렇게도 다른지.
자바플렛폼을 위한 오픈소스 어플리케이션 프레임 워크로써 엔터프라이즈급 어플리케이션을 개발하기 위한 모든 기능을 종합적으로 제공하는 경량화된 솔루션이라고 한다. 엔터프라이즈급은 무엇일까? 엔터프라이즈급 개발이란 뜻 그대로 보자면 기업을 대상으로 하는 개발을 말한다.
(Spring Framework는 경량 컨테이너로 자바객체를 담고 직접 관리 한다. 객체의 생성 및 소멸, 그리고 라이프 사이클을 관리하면서 언제든 Spring컨테이너로 부터 객체를 가져와 사용할 수 있다. 결론:Spring은 IoC기반의 Framework라는 의미이다.}
프레임워크는 어플리케이션 개발시 필수적인 코드, 알고지름, DB커넥션 등의 기능들을 위해 뼈대(구조)를 제공한다. 개발자는 이 뼈대위에 코드를 작성해서 원하는 것을 구현한다.
프레임워크는 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하도록 상호 협력하는 클래스와 인터페이스의 집합이라고 생각하면 좋다.
라이브러리는 개발에 필요한 것들을 미리 구현해놓은 도구하고 할수 있다. 재사용이 가능한 기능을 구현하고 적합하게 사용하도록 만들어진 집합이라고 볼 수 있다.
이둘의 차이는 "제어의 흐름"이 어디에 있는가라고 한다.
프레임워크는 제어의 역젼 개념이 적용되어 있다. 반면, 라이브러리는 개발자가 전체적인 흐름을 만들며 라이브러리를 가져다쓰게 된다. 즉, 개발자에게 전적으로 제어의 흐름이 있으며, 능동적으로 라이브러이를 호출하여 사용한다.