서론
Spring을 접하면서 가장 먼저 만나는 단어는 단연 Framework라는 말이다. Framework라는 말은 일상생활에서도 굉장히 많이 사용하고 있지만 Spring과 같은 SW분야에서는 그 이해가 라이브러리와 헷갈리는 결과를 가지고 온다. 이 글을 통해서 그동안에 Framework와 라이브러리에 혼돈을 가져온 부분들을 정리를 통해 해결해보고자 한다.
본론
Framework의 어원에 대해서 알아보자. Framework는 두 단어가 합쳐진 단어이다.
Frame + work, Frame은 뼈대라는 뜻으로 흔히 틀이라는 뜻으로 사용이 된다. work는 말 그대로 일하다 라는 동사이다. 풀어서 설명을 해보면 뼈대를 통해 일을 한다라는 뜻이다.
Library의 어원에 대해서 알아보자. Library는 일상생활에서 도서관으로 통하는 말이다.
조금 더 깊게 들어가 보자. Spring의 관점에서 본다면 Framework라는 말은 뼈대를 통해 일을 하는 개념이 되는 것인데, 그렇다면 그 뼈대는 무엇인가에 대해서 고민해보았다. 여기서 이야기하는 뼈대란, 어떠한 문제점들을 해결하기 위해 보인 형태를 이야기한다.
정리를 해보자면 Framework는 특정 형태의 소프트웨어 문제를 해결하기 위해, 상호 협력하는 클래스와 인터페이스의 집합이라고 볼 수 있다. 이로인한 장점은 재사용성이 높아지고, 구조가 단순해지며 역할이 확실히 구분된 상태에서 개발이 진행된다는 장점이 있다. 또한 확장성이 향상되고 유지보수가 용이하다는 장점이 있다.
라이브러리는 어플리케이션에서 호출할 수 있는 함수와 루틴으로 구성이 되어있다.
아직까지 정확하게 이해가 안될것이다. 조금 더 깊게 들어가 보자.
주도권이라는 관점에서 라이브러리와 Framework를 구분해보겠다.
라이브러리는 개발의 주도권이 개발자한테 있다. 라이브러리를 쓸 거면 개발자가 결정하고 사용을 하고 안 쓸 거면 개발자가 안 사용하면 된다.
Framework는 주도권이 Framework한테 있다. 개발할 때 개발의 주도권이 Framework에게 있으며 제어의 역전이 일어난 것이다.
결론
가장 헷갈리는 개념을 시작으로 Spring에 있어서 깊이 있게 학습할 예정이다. Framework와 라이브러리를 구분하며 Spring의 개념 정리의 시작을 정리해보았다.
'Web > Spring' 카테고리의 다른 글
Spring Security와 Spring Security의 Filter를 알아보자! (0) | 2021.05.03 |
---|---|
SOLID (SRP, OCP, LSP, ISP, DIP) (0) | 2021.03.16 |
Spring의 구조와 역할 (0) | 2021.03.16 |
구조와 로그, Debugging의 이야기 (0) | 2021.02.25 |