[Spring 입문] 프레임워크와 라이브러리

박화랑·2025년 3월 17일

Spring_개념정리

목록 보기
6/17

프레임워크와 라이브러리

1. 프레임워크란?

  • 개발 프로젝트의 일관된 구조를 제공하여 코드의 일관성과 가독성을 높여주며, 팀 협업이 편해지는 소프트웨어
  • 개발자가 코드의 흐름을 직접 제어하는 것이 아니라, 프레임워크가 전체적인 실행 흐름을 관리
  • 예: Spring Framework, Django, Ruby on Rails

프레임워크의 장점

  1. 일관된 구조 제공 → 코드의 일관성과 가독성을 높여주며 팀 협업이 편리해짐
  2. 핵심 비즈니스 로직에 집중 가능 → 기본적으로 필요한 기능과 도구를 제공하여 개발자가 로직 구현에 집중할 수 있음
  3. 보안 기능 제공 → 보안 취약점을 방지하는 기본적인 보안 기능이 포함됨
  4. 테스트 환경 지원 → 통합된 테스트 환경과 도구를 제공하여 테스트 작성 및 실행이 용이함
  5. 커뮤니티 지원 → 인기 있는 프레임워크는 방대한 커뮤니티에서 다양한 문서를 제공

프레임워크의 단점

  1. 학습 비용이 높음 → 복잡한 구조로 인해 처음 익히는 데 시간이 많이 소요됨
  2. 버전 호환성 문제 → 새로운 버전이 기존 코드와 호환되지 않을 수 있음
  3. 자유도 제한 → 정해진 규칙과 구조를 강제하여 자유로운 변경이 어려울 수 있음

Spring Framework는 Java 기반의 대표적인 웹 애플리케이션 프레임워크


2. 라이브러리란?

  • 특정 기능을 수행하는 코드의 모음
  • 개발자가 필요할 때 직접 호출하여 사용하며, 프로그램의 흐름을 제어하지 않음
  • 예: Lombok, Gson, Apache Commons

라이브러리의 장점

  1. 필요한 기능만 선택적 사용 가능 → 불필요한 코드 작성 최소화
  2. 자유로운 활용 가능 → 개발자가 코드 흐름을 직접 제어
  3. 다양한 조합 가능 → 여러 라이브러리를 조합하여 사용 가능

라이브러리의 단점

  1. 일관성이 부족할 수 있음 → 프로젝트 내에서 다양한 스타일이 혼재할 가능성
  2. 반복적인 코드 작성 필요 → 여러 라이브러리를 사용할 경우 코드 복잡도가 증가할 수 있음
  3. 호환성 문제 발생 가능 → 라이브러리 간 충돌 가능성
  4. 효율성 관리 어려움 → 불필요한 기능 포함 시 효율성 감소

Spring에서는 다양한 라이브러리를 활용하여 기능을 확장할 수 있음


3. 프레임워크 vs 라이브러리 비교

구분프레임워크라이브러리
제어권프레임워크가 흐름을 제어개발자가 직접 제어
사용 방식정해진 구조를 따라야 함필요할 때 호출하여 사용
기능 제공전체적인 애플리케이션 구조 제공특정 기능만 제공
예제Spring, DjangoLombok, Gson

프레임워크는 전체적인 개발 방식과 구조를 제공하지만, 라이브러리는 특정 기능을 수행하는 도구


4. Spring Framework란?

  • Java 기반의 웹 애플리케이션 프레임워크
  • 다양한 기능을 제공하며, 유지보수성과 확장성이 뛰어남

Spring의 주요 개념

  1. 의존성 주입(DI, Dependency Injection) → 객체 간의 의존 관계를 자동으로 설정
  2. 제어의 역전(IoC, Inversion of Control) → 객체 생성 및 실행 흐름을 개발자가 아닌 프레임워크가 관리
  3. AOP(Aspect-Oriented Programming) → 공통 기능(로깅, 보안, 트랜잭션 등)을 분리하여 코드 중복 최소화
  4. Spring MVC → 웹 애플리케이션 개발을 위한 구조 제공

Spring을 활용하면 유지보수성과 확장성이 뛰어난 애플리케이션을 개발할 수 있음


정리

  • 프레임워크: 개발을 위한 구조 제공 (예: Spring, Django) → 애플리케이션을 개발할 때 전체적인 구조(frame)를 잡기 위해 사용하는 것, 기본적으로 프레임워크 내에서 사용하는 라이브러리들이 존재
  • 라이브러리: 개발을 진행하는 과정에서 필요한 기능을 구현하기 위해 사용하는 것
profile
개발자 희망생

0개의 댓글