프레임워크와 라이브러리

2024. 1. 21. 03:45· CS/Spring
목차
  1. 개요
  2. 프레임워크
  3. 프레임워크 특징
  4. 프레임워크 장점
  5. 프레임워크 단점
  6. 라이브러리
  7. 라이브러리란?
  8. 라이브러리의 장점
  9. 라이브러리의 단점
  10. 프레임워크와 라이브러리의 차이
  11. 참고 사이트

프레임워크와 라이브러리 코드의 관계도

 

 

 

개요

이번에는 프레임워크와 라이브러리를 각각 알아보고 어떤 차이점이 있는지 정리해보았습니다.

 

 

 

프레임워크

 

프레임워크란?

프레임워크는 소프트웨어 개발에 필요한 기본 구조와 규칙을 제공하는 도구 모음입니다. 개발자는 이 구조안에서 특정 규칙에 따라 효율적으로 애플리케이션을 개발할 수 있습니다. 프레임워크는 제어의 역전이 적용된 기술로 애플리케이션의 흐름을 제어합니다. 프레임워크는 애플리케이션 대부분의 라이프사이클을 관리하며 앱, 서버 구동, 메모리 관리, 네트워킹, 보안 등 다양한 기능을 통합적을 제공합니다. 이를 통해 개발자는 기초적인 세부 사항보다는 애플리케이션의 핵심 기능과 비즈니스 로직 구현에 더 집중할 수 있습니다. 프레임워크의 예시로는 Spring, Django, React  등이 있습니다. 

 

 

프레임워크 특징

  • 프레임워크는 작업(work)의 구조(frame)가 정해져 있습니다. 개발자는 이 구조 안에서 정해진 규칙에 따라 애플리케이션을 개발합니다.
  • 프레임워크는 제어의 역전이 적용된 기술입니다. 애플리케이션이 흐름을 제어하며 개발자는 프레임워크가 제공하는 특정 지점에 자신의 코드를 삽입함으로 기능을 개발합니다.
  • 프레임워크는 개발에 도움을 줍니다. 앱, 서버 구동, 메모리 관리, 네트워킹, 보안 등 다양한 기능을 제공하며 애플리케이션의 라이프사이클을 관리합니다. 이로 인해 세부적인 사항은 신경쓰지 않고 비즈니스 로직 개발에 집중할 수 있습니다. 

 

 

프레임워크 장점

  • 개발 속도 및 효율성 향상 : 반복적인 작업을 줄여주고 이미 개발된 코드 라이브러리를 제공하여 개발 속도를 높입니다.
  • 표준화된 개발 프로세스 : 프레임워크의 규약과 패턴을 따름으로 일관된 개발 방식을 유지할 수 있습니다. 팀 내 협업을 용이하게 하며, 프로젝트의 유지보수성을 높입니다.
  • 보안 강화 : 보안 측면에서 검증된 요소를 제공하며 주기적인 업데이트를 통해 보안 문제를 해결합니다.

 

 

프레임워크 단점

  • 학습 곡선 : 새로운 프레임워크를 배우는데 시간이 필요합니다.
  • 과도한 오버헤드 : 모든 프로젝트에 필요하지 않은 기능들이 포함될 수 있어 성능에 부정적인 영향을 미칠수도 있습니다.

 

해결법 

프레임워크는 관련 문제나 학습에 있어 공식 문서, 튜토리얼 등을 제공합니다. 이를 활용하면 사전 학습 시간을 단축시킬 수 있습니다. 프레임워크는 모듈화되어 있어 개발자들이 필요한 부분만 선택적으로 사용할 수 있습니다. 예를 들어 Spring은 Spring MVC, Spring Security 등으로 구성되어 있으며 필요한 모듈만 사용할 수 있습니다. 이로 인해 과도한 오버헤드를 완화할 수 있습니다.

 

 

 

 

 

라이브러리

 

라이브러리란?

라이브러리란 프로그래밍에서 필요한 기능들이 묶여있는 코드의 집합입니다.자주 사용되는 기능들을 라이브러리로 만들어두어 필요할 때마 호출해 사용함으로 재사용성과 코드 품질을 높일 수 있습니다.

 

 

현실 세계에서 라이브러리(도서관)는 필요할 때 마다 꺼내볼 수 있는 책들이 모여있는 곳 입니다. 프로그래밍에서도 마찬가지로 필요한 기능들이 모여있는 코드의 집합입니다. 개발자들은 필요할 때마다 라이브러리를 호출하여 코드를 구현합니다.

 

 

 

라이브러리의 장점

  • 개발 시간 단축 : 라이브러리 코드를 재사용함으로 개발 시간을 단축할 수 있습니다.
  • 품질 향상 : 라이브러리는 여러 프로젝트에서 사용되고 테스트하므로 높은 품질의 코드와 안정성을 제공합니다.
  • 유지보수 용이성 : 코드의 일관성을 유지하고 유지보수를 용이하게 할 수 있습니다.

 

 

 

라이브러리의 단점

  • 호환성 문제 : 다른 라이브러리나 프레임워크와의 호환성 문제가 발생할 수 있습니다. 여러 라이브러리를 사용하면 버전 충돌이나 상호 작용 문제가 발생할 수 있ㅅ브니다.

 

해결법

Maven, Gradle, npm 과 같은 의존성 관리 도구를 사용하여 라이브러리의 버전을 관리하고 의존성 충돌을 해결할 수 있습니다.

 

 

 

 

프레임워크와 라이브러리의 차이

프레임워크와 라이브러리의 가장 큰 차이점은 ‘코드 흐름 제어권’ 이 누구에게 있냐는 것 입니다.

  • 제어의 흐름 : 프레임워크가 제어의 흐름을 가지고 있으며 개발자는 그 안에서 작업을 진행합니다. 라이브러리는 개발자가 직접 제어합니다.
  • 용도 : 프레임워크는 애플리케이션 전체 구조화 흐름을 제공합니다. 라이브러리는 특정 기능을 위해 사용됩니다.

 

 

 

 

 

참고 사이트

https://webclub.tistory.com/458

https://curryyou.tistory.com/363

  1. 개요
  2. 프레임워크
  3. 프레임워크 특징
  4. 프레임워크 장점
  5. 프레임워크 단점
  6. 라이브러리
  7. 라이브러리란?
  8. 라이브러리의 장점
  9. 라이브러리의 단점
  10. 프레임워크와 라이브러리의 차이
  11. 참고 사이트
'CS/Spring' 카테고리의 다른 글
  • Spring과 Spring Boot
  • Dispatcher Servlet
  • 어노테이션 Annotation
너지살
너지살
너지살
너지살개발자
너지살
전체
오늘
어제
  • 분류 전체보기 (375)
    • 잡식 (2)
      • 티스토리 (2)
    • 개발 일지 (0)
      • OMS 프로젝트 (4)
      • 우테코 6기 프리코스 (1)
    • Git (2)
    • JAVA (15)
      • Java 공부 (6)
      • 자료구조 (4)
      • 도움되는 메모 (4)
    • DevOps (18)
      • AWS (6)
      • Docker (2)
      • Jenkins (1)
      • Nginx (1)
      • Kafka (6)
      • RabbitMQ (2)
    • Spring, Spring Boot (16)
      • Test Code (1)
      • AOP (2)
      • Batch (3)
      • Cache - Redis (5)
      • Cloud Config - 설정 파일 관리 (3)
      • 성능 측정 (1)
      • 예외 처리 (1)
    • BackEnd (1)
      • Spring 공부 (1)
      • Thymeleaft (0)
    • DB (17)
      • JPA (2)
      • DB 공부 (3)
      • DB 포스팅 (4)
      • DB 답장 (1)
      • MySQL (2)
      • Redis (5)
      • MongoDB (0)
    • CS (8)
      • Spring (4)
      • DataBase (3)
      • Java (1)
    • Algorithm (203)
      • 알고리즘 개념 (5)
      • 정렬 알고리즘 (11)
      • 프로그래머스 문제풀이 (18)
      • 백준 문제풀이 (165)
      • 소프티어 문제풀이 (3)
      • 알고리즘 시험 정리 (1)
    • SQL (0)
      • 문법 (1)
      • 프로그래머스 문제풀이 (52)
      • 리트코드 문제풀이 (19)
    • IT (1)
      • IT 공부 (1)
    • 정리 (10)
      • 질문 정리 (10)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Algorithm
  • DP
  • 그래프 이론
  • Sorting algorithm
  • Union-Find
  • 다음 순열 찾기
  • MST
  • 최소 스패닝 트리
  • 그래프 탐색
  • 두 포인터
  • 질문 정리
  • cache
  • 경로표현식
  • git
  • 백준
  • 비트마스킹
  • 최소 신장 트리
  • 다이나믹프로그래밍
  • DFS
  • 알고리즘
  • Bitmast
  • db
  • Spring Boot Redis 연결
  • 소프티어
  • 병렬 처리
  • 유니온파인드
  • 설정
  • Next permutation
  • 투포인트
  • 외판원 순회 문제
  • Spring Batch
  • Java
  • 데이터베이스
  • Test code
  • 분리 집합
  • 크루스칼 알고리즘
  • 투 포인터
  • JPA
  • 다이나믹 프로그래밍
  • dynamiceprogramming
  • Java 정리
  • dynamic programing
  • docker
  • 부분탐색
  • Spring Boot
  • 깊이/너비 우선탐색
  • two pointer
  • 자료구조
  • redis
  • 우선수위큐

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
너지살
프레임워크와 라이브러리
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.