2025-09-08 02:52

Tags: 소프트웨어 공학 넥스트

프레임워크

  • 애플리케이션 개발의 뼈대를 제공하여 개발자가 비즈니스 로직에 집중하게 해주는 소프트웨어 환경입니다.
  • 제어의 역전]은 프레임워크가 개발자의 코드를 호출하는 핵심 원리로, 라이브러리와의 가장 큰 차이점
  • 프레임워크를 사용하면 개발 속도 향상, 표준화된 구조, 보안 강화 등의 장점이 있지만, 학습 곡선과 유연성 제한이라는 단점도 존재

프레임워크(Framework) 란, 특정 목적의 애플리케이션을 더 쉽고 효율적으로 개발하기 위해 미리 정해진 구조와 규칙, 그리고 필수 라이브러리들의 묶음을 제공하는 소프트웨어 환경입니다.

‘헐리우드 원칙(Hollywood Principle)‘에 비유. “Don’t call us, we’ll call you.” (먼저 전화하지 마세요, 우리가 필요하면 전화하겠습니다.)

  • 일반적인 프로그래밍 (라이브러리 사용): 내 코드 → 라이브러리 호출
  • 프레임워크 기반 프로그래밍: 프레임워크 → 내 코드 호출 (제어의 역전)
장점 (Pros)단점 (Cons)
개발 속도 향상높은 학습 곡선
반복적인 작업을 자동화하고 필수 기능을 제공하여 핵심 로직 개발에 집중할 수 있습니다.프레임워크 고유의 구조와 동작 방식을 배우는 데 시간이 걸립니다.
코드 표준화 및 유지보수 용이유연성 및 자유도 제한
정해진 구조와 규칙을 따르므로 코드의 일관성이 높아지고, 다른 개발자가 코드를 이해하기 쉽습니다.프레임워크가 정해놓은 방식에서 벗어난 구현을 하기가 어렵습니다.
보안 강화성능 오버헤드 및 코드 블로트(Bloat)
일반적인 보안 취약점에 대한 방어 로직이 내장되어 있어 더 안전한 애플리케이션을 만들 수 있습니다.사용하지 않는 기능까지 포함되어 있어 애플리케이션이 무거워질 수 있습니다.
강력한 커뮤니티와 생태계프레임워크에 대한 의존성
문제가 발생했을 때 참고할 수 있는 자료가 많고, 유용한 확장 기능이나 라이브러리를 쉽게 찾을 수 있습니다.프레임워크의 업데이트나 정책 변경에 따라 프로젝트가 영향을 받을 수 있습니다.
구분프레임워크 (Framework)라이브러리 (Library)
제어권프레임워크가 내 코드를 호출 (제어의 역전)내 코드가 라이브러리를 호출
역할애플리케이션의 뼈대, 전체적인 구조특정 기능을 수행하는 도구의 모음
비유집의 골조, 자동차의 섀시망치, 스패너, 렌치 같은 공구
사용법규칙에 맞춰 코드를 작성하고 끼워 넣음필요할 때마다 함수를 가져와서 사용
예시Django, Spring, React, AngularjQuery, Pandas, Requests