[Spring Core] Spring Framework 기본 1

grapefruit·2022년 10월 12일
0

BE 2022-10.10~10.14

목록 보기
1/8
post-thumbnail

👨🏻‍💻Framework이란?

Gof의 디자인 패턴으로 유명한 랄프 존슨(Ralph Johnson)은
"프레임워크란, 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것"이라고 정의하였다.

자동차로 예를 들면, 강판이나, 프레임같은것으로 예를 들수가 있고, 사진을 담는 액자도 프레임이라고 할 수 있다.

이처럼 Frame은 어떤 대상의 큰 틀이나 외형적인 구조를 의미하는데 프로그래밍 세계에서의 Frame 역시 이와 비슷한 의미를 가지고 있다.

👨🏻‍💻Framework를 사용하는 장점과 단점

장점

  1. 효율적으로 코드를 작성할 수 있다.

  2. 정해진 규약이 있어 애플리케이션을 효율적으로 관리할 수 있다.

단점

  1. 내가 사용하고자 하는 Framework에 대한 학습이 필요하다.

  2. 자유롭고 유연한 개발이 어렵다.

👨🏻‍💻Framework와 Library의 차이

Library는 애플리케이션을 개발하는 데 사용되는 일련의 데이터 및 프로그래밍 코드이다.

👨🏻‍💻Framework와 Library의 차이점

차체를 구성하는 Frame, 그리고 바퀴 혹은 핸들 엔진과 같은 다양한 부품들이 모여서 하나의 자동차를 이루고 있다.
이 자동차를 구성하고 있는 요소에서 Framework는 자동차의 뼈대, 즉 Frame을 의미한다.
그리고, Library는 자동차에서 다양한 기능을 제공하는 부품을 의미한다.
자동차가 나아가기 위한 바퀴, 엔진 또는 밤에 운전하기 위한 라이트, 비가 올때 필요한 와이퍼등의 부품이 있다.

실제로 자동차를 구매후, 부품을 교체할때 Frame은 쉽게 교체할 수 없다.
하지만 바퀴나 와이퍼, 라이트는 언제든지 쉽게 교체가 가능하다.
이 말은 곧 소프트웨어 관점에서도 한번 정해진 Framework를 교체하는일은 어렵지만, Library는 쉽게 교체가 가능하며 필요한 Library들을 선택적으로 사용할 수 있다는 의미가 된다.

Library는 애플리케이션 흐름의 주도권이 개발자에게 있는 반면, Framework은 애플리케이션 흐름의 주도권이 개발자가 아닌 Framework에 있다.

👨🏻‍💻Spring Framework이란?

Spring Framework만의 장점은??

  1. POJO(Plan Old Java Object)기반의 구성
  2. DI(Dependency Injection) 지원
  3. AOP(Aspect Oriented Programming, 관점지향 프로그래밍) 지원
  4. Java 언어를 사용함으로써 얻는 장점
profile
개발자몽

0개의 댓글