Framework(Spring)

[Framework] 프레임워크(Framework)

8기_이지정 2024. 7. 9. 10:35

프레임워크(Framework)


1. 프레임워크(Framework)

  • 프레임워크(Framework)란, 어느 정도 구현되어 있는 틀을 가지고 그 안에서 기능 구현을 할 수 있도록 여러 가지 기능을 제공하는 소프트웨어
  • 프레임워크는 소프트웨어를 구현하는 개발 시간을 줄이고, 반복적으로 해야 하는 공통적인 부분을 최소화할 수 있도록 설계되어 있음
  • 프레임워크는 일정 수준 이상의 품질을 보장하는 애플리케이션을 개발할 수 있는 환경을 제공

 

2. 라이브러리와 프레임워크, API

2.1. 라이브러리(Library)

  • 라이브러리는 소프트웨어를 개발을 필요한 기능들을 재사용하기 편리하도록 미리 만들어 놓은 도구

2.2. 프레임워크(Framework)

  • 프레임워크는 애플리케이션의 공통적인 개발 환경을 제공해 주는 소프트웨어
  • 프레임워크 안에 라이브러리가 포함되어 있고 필요에 따라서 개발자가 라이브러리를 추가 가능

2.3. API(Application Programming Interface)

  • 애플리케이션에서 사용할 수 있도록 운영 체제나 서버, 프로그래밍 언어 등이 제공하는 기능을 제어할 수 있게 만든 인터페이스

 

3. 프레임워크의 특징

  • 개발자가 따라야 하는 가이드를 제공
  • 개발할 수 있는 범위가 정해져 있음
  • 개발자를 위한 다양한 도구, 플러그인들을 지원

3.1. 프레임워크의 장점

  • 개발 시간을 줄일 수 있음
  • 유지 보수가 쉽고 추상화된 코드 제공을 통해 확장성이 뛰어남
  • 정형화되어 있어 일정 수준 이상의 품질을 보장받을 수 있음

3.2. 프레임워크의 단점

  • 기본 설계에 대한 이해가 어렵기 때문에 학습 난이도가 높음
  • 기본 설계된 구조에 의해 자유로운 개발에 한계가 있음
  • 사용하지 않는 기능에 대한 라이브러리가 포함될 수 있음

 

4. 프레임워크의 종류

4.1. 영속성 프레임워크

  • 데이터의 저장, 조회, 변경, 삭제를 다루는 클래스 및 설정 파일들을 제공하는 프레임워크
    • Mybatis
    • Hibernate

4.2. 자바 웹 프레임워크

  • Java EE를 통한 웹 애플리케이션 개발에 초점을 맞추어 필요한 요소들을 모듈화하여 제공하는 프레임워크
    • Spring Framework
    • 전자정부표준 (Spring 기반)
    • Struts

4.3. UI 프레임워크

  • UI를 보다 쉽게 구현할 수 있는 도구를 제공하는 프레임워크
    • Bootstrap
    • Quasar Framework

4.4. 기능 및 지원 프레임워크

  • 특정 기능이나 업무 수행에 도움을 줄 수 있는 기능을 제공하는 프레임워크
    • Log4j
    • JUnit 5
    • ANT, Maven, Gradle