최근 수정 시각 : 2024-05-21 14:41:58

프레임워크


파일:나무위키+유도.png  
은(는) 여기로 연결됩니다.
에이전트 오브 쉴드의 용어에 대한 내용은 에이전트 오브 쉴드 문서
번 문단을
프레임워크 부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
참고하십시오.
1. 개요2. 라이브러리와의 차이점3. 종류4. 관련 문서

1. 개요

Framework

어떠한 목적을 달성하기 위해 복잡하게 얽혀있는 문제를 해결하기 위한 구조로, 소프트웨어 개발에 있어 하나의 뼈대 역할을 한다.

2. 라이브러리와의 차이점

읽기전에 답부터 이야기하면 둘의 차이를 엄밀히 말하는건 불가능에 가깝다. 여러 사이트들의 설명[1]들은 학술적으로는 의미가 없는 내용이다. 해외의 유명한 개발책들을 읽어도 갑론을박이 활발한것을 알 수 있다. 아래의 설명을 읽을 때 대략 이런 경향이있다로 이해를 해야지 단순하게 라이브러리는 무엇이고 프레임워크는 무엇이다 같은 이야기를 면접때 한다면 매우 불리해질 것이다.[2][3]

보통 프레임워크라고 하면 여러 기능을 가진 클래스라이브러리가 '특정 결과물을 구현하고자' 합쳐진 형태라고 볼 수 있다. 따라서 프레임워크는 라이프 사이클이나 일종의 상태를 가지며 대부분의 프레임워크들은 다양한 기능들을 지원하기 위해 많은 라이브러리들을 가지고 있다. 다만 이 분류법도 예외가 있다.

메서드클래스화, 즉 모듈화를 하는 이유 중 하나가 재사용성인데, 프레임워크는 이 재사용성을 큰 그룹 단위로 묶어주었다고 보면 된다. 재사용 가능한 수많은 클래스들과 라이브러리들을 융합한 채로 처음부터 제공해 주기 때문에, 여러 개의 표준을 만들지 않아도 돼서 개발자의 피곤함을 덜어준다.

예를 들어, 웹 프레임워크는 '웹 서버'를 구현하기 위한 목적으로 만들어진 프레임워크다. 웹 서버를 구현하기 위해선 페이지 구현, DB 관리, 유저 인증, API 서버, 라우팅, 사이트맵, 세션 관리 등 여러 기능이 들어있어야할 것이다. 각 기능을 보유한 라이브러리들을 한데 묶어 담은 것이 바로 프레임워크라고 보면 된다.

현재는 만든사람이 라이브러리라고 하면 라이브러리이고 프레임워크라고 하면 프레임워크로 굳는 분위기이다.

3. 종류

4. 관련 문서


[1] 이는 나무위키도 포함한다[2] 보통 FE프레임워크로 자주 예시를 드는게 Vue와 React이고 둘은 일반적으로 우리가 이야기하는 프레임워크 정의에 완벽하게 부합하지만 Vue는 본인을 프레임워크라고 소개하고 React는 본인을 라이브러리라고 소개한다.[3] 또한 유닛테스트를 보통 우리는 프레임워크라고 부르는 경향이 있는데 언어마다 유닛테스트를 어떤관점으로 보는지 또한 완전 다르다.