비트를 쪼개는 개발자

allen321@naver.com

C#

C# - 라이브러리 vs 프레임워크

MozarTnT 2024. 7. 11. 14:52
728x90
반응형

 

 

 

프레임워크(Framework) 란?

 

 

 

 

  • 프레임워크는 말 그대로 개발자가 코드를 개발하는데에 있어서 시간을 단축하기 위해 미리 만들어 놓은 뼈대나 구조와 같이 코드나 클래스를 모아둔 프레임을 이용하고 이를 사용하는 것이다.

 

  • 프레임워크는 대부분 개발자가 따라야 하는 가이드를 제공하고 일관된 개발 패턴을 유지시킨다.

 

  • 미리 만들어 둔 프레임워크를 사용하면 특정 부분만 개발자가 원하는 대로 채워 사용하기 때문에 코드의 재사용성이 늘어나고 개발 시간이 크게 줄어든다는 장점이 있다.

 

  • 유지 보수가 용이하지만 프레임워크에 너무 의존한다면 해당 기능 개발에 있어서 스스로 개발하는데 어려워지기도 한다.

 

  • C#에서의 사용하는 프레임워크의 예시로는 .Net FrameWork, .NET Core 등이 있다.

 

 

 

라이브러리(Library) 란?

 

 

 

 

  • 라이브러리 역시 프레임워크와 비슷하게 특정한 기능을 수행하는 코드들의 모음이다.

 

  • 개발자가 필요한 순간 호출하여 해당 기능을 사용하고 여러 라이브러리를 조합해서 사용할 수도 있다.

 

  • C#에서 자주 사용하는 라이브러리의 예시로는 [Newtonsoft.Json (Json.NET) - Json 데이터 직렬화, 역직렬화],
    [Dapper - 데이터베이스 쿼리 실행, 결과 매핑] 등이 있다.

 

 

 

 

 

그렇다면 프레임워크와 라이브러리의 차이점은?

 

 

 

 

 

 

프레임워크와 라이브러리는 기능면에서는 유사하지만 애플리케이션의 흐름을 제어하는 제어권에서 차이점을 보인다.

 

 

 

  1.  프레임워크는 스스로가 애플리케이션의 흐름을 직접 제어하고 일관된 개발 방식을 요구한다.
  2.  프레임워크는 필요에 따라 제어의 역전(IOC - Inversion Of Control) 개념이 적용되며 이는 간단히 말해 프로그램의   제어 흐름 구조가 프레임워크에 위임된 것을 뜻한다.
  3.  라이브러리는 개발자의 의도에 따라 애플리케이션을 제어할 수 있다.
  4.  프레임워크는 여러 라이브러리를 포함한 코드의 집합, 즉 [프레임워크 = 라이브러리의 모음 + 일관된 규칙들] 이라고  해석할 수 있다.

 

 

 

 

사진 출처 : 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