728x90
반응형
프레임워크(Framework) 란?
- 프레임워크는 말 그대로 개발자가 코드를 개발하는데에 있어서 시간을 단축하기 위해 미리 만들어 놓은 뼈대나 구조와 같이 코드나 클래스를 모아둔 프레임을 이용하고 이를 사용하는 것이다.
- 프레임워크는 대부분 개발자가 따라야 하는 가이드를 제공하고 일관된 개발 패턴을 유지시킨다.
- 미리 만들어 둔 프레임워크를 사용하면 특정 부분만 개발자가 원하는 대로 채워 사용하기 때문에 코드의 재사용성이 늘어나고 개발 시간이 크게 줄어든다는 장점이 있다.
- 유지 보수가 용이하지만 프레임워크에 너무 의존한다면 해당 기능 개발에 있어서 스스로 개발하는데 어려워지기도 한다.
- C#에서의 사용하는 프레임워크의 예시로는 .Net FrameWork, .NET Core 등이 있다.
라이브러리(Library) 란?
- 라이브러리 역시 프레임워크와 비슷하게 특정한 기능을 수행하는 코드들의 모음이다.
- 개발자가 필요한 순간 호출하여 해당 기능을 사용하고 여러 라이브러리를 조합해서 사용할 수도 있다.
- C#에서 자주 사용하는 라이브러리의 예시로는 [Newtonsoft.Json (Json.NET) - Json 데이터 직렬화, 역직렬화],
[Dapper - 데이터베이스 쿼리 실행, 결과 매핑] 등이 있다.
그렇다면 프레임워크와 라이브러리의 차이점은?
프레임워크와 라이브러리는 기능면에서는 유사하지만 애플리케이션의 흐름을 제어하는 제어권에서 차이점을 보인다.
- 프레임워크는 스스로가 애플리케이션의 흐름을 직접 제어하고 일관된 개발 방식을 요구한다.
- 프레임워크는 필요에 따라 제어의 역전(IOC - Inversion Of Control) 개념이 적용되며 이는 간단히 말해 프로그램의 제어 흐름 구조가 프레임워크에 위임된 것을 뜻한다.
- 라이브러리는 개발자의 의도에 따라 애플리케이션을 제어할 수 있다.
- 프레임워크는 여러 라이브러리를 포함한 코드의 집합, 즉 [프레임워크 = 라이브러리의 모음 + 일관된 규칙들] 이라고 해석할 수 있다.
사진 출처 : https://www.geeksforgeeks.org/software-framework-vs-library/?ref=gcse_ind
Software Framework vs Library - GeeksforGeeks
A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.
www.geeksforgeeks.org
728x90
반응형
'C#' 카테고리의 다른 글
C# - 델리게이트(Delagate) (0) | 2024.08.15 |
---|---|
C# - 인터페이스(Interface) (0) | 2024.07.19 |
C# - Struct 와 Class의 차이점 (0) | 2024.06.21 |
C# - 스레드(Thread) (2) | 2024.06.18 |
C# - 동기와 비동기 (Synchronous/Asynchronous) (0) | 2024.06.13 |