닷넷 프레임워크는 닷넷 플랫폼(CLR)과 클래스 라이브러리를 함께 제공하며, 다양한 프레임워크를 사용할 수 있다고 했습니다. 플랫폼이라는 용어도 살펴보았는데 이 절에서는 라이브러리와 프레임워크에 대해 알아보겠습니다.
- 닷넷 프레임워크 : 닷넷 프레임워크에 프레임워크라는 단어가 들어가 있어서 지금부터 설명하는 프레임워크와 혼동될 수 있는데 닷넷 프레임워크는 닷넷 플랫폼과 클래스 라이브러리가 합쳐진 하나의 제품 이름이라고 기억하는 바랍니다. 마이크로소프트 사 공식 홈페이지에서는 닷넷 프레임워크를 영어로 표기하고 (.NET Framework), 프레임워크는 한글로 표기하여 완전히 구분하고 있답니다.
- 라이브러리 : 프로그래밍 언어는 그냥 규칙의 집합입니다. 다른 프로그래밍 언어를 다뤄본 적이 있다면 다음과 같은 코드를 보았을 것입니다. 각 코드를 실행하면 모두 화면에 Hello World를 출력합니다.
프로그래밍 언어라는 것은 여기서 식별자(글자) 뒤에 괄호가 있으면 메서드(함수)를 호출하는 행위라는 규칙만 지정합니다. 그런데 print, printf, WriteLine, println,puts라는 식별자를 사용하면 어떻게 화면에 글자를 출력하는 것일까요? 이는 우리보다 앞선 사람(또는 프로그래밍 언어의 창시자)이 "화면 출력하는 코드가 사실 엄청나게 길어, 기게좀 많이 어려운데, 그러니까 쉽게 사용하게 해줄께" 라고 만들어준 것입니다.
이렇게 쉽게 사용할 수 있게 미리 만들어준 코드가 라이브러리입니다. 조금 어렵게 말하면 소프트웨어를 만들 때 사용하는 클래스 또는 서브루틴의 집합이라고 표현한다.
- 프레임워크 : 프레임워크는 제어 역전 IoC(Inversion of Control)이 있는 대규모의 라이브러리를 의미합니다. 그렇다면 제어 역전을 알아야 프레임워크가 무엇인지 알 수 있다는 말이겠죠?
라이브러리는 개발자가 사용해줘야만 하며, 스스로는 아무것도 하지 못합니다.
하지만 프레임워크는 다릅니다. 프레임워크는 프로그램의 초기화부터 종료까지의 흐름을 직접 관리합니다. 한마디로 프레임워크가 오히려 개발자에게 " 넌 내가 하라는 규칙대로 만들어"라고 반대로 이야기하는 것입니다. 원래 개발자가 제어하던 코드를 프레임워크가 제어하는 것인데요, 이를 제어 역전이라고 부릅니다.
프로그래밍 언어를 다룬 적이 있다면 더 쉽게 구분할 수 있는데 메인 메서드를 내가 만질 일이 없으면 프레임워크를 사용하고 있는 것이라고 할 수 있습니다. 프레임워크를 사용하면 개발자가 할 일이 별로 없습니다. 기본 틀Framework을 모두 제공해주므로 원하는 개발에 집중할 수 있게 됩니다.
- 프레임워크와 라이브러리 : 현재는 프레임워크와 라이브러리라는 두 용어가 너무 혼용되어 " 대규모의 라이브러리 = 프레임워크 "라고 의미하는 경우도 많습니다. 하지만 지금은 배우는 시점이므로 어느 정도 구분하도록 합시다.
'C# > 1장' 카테고리의 다른 글
기본 자료형 (0) | 2023.02.06 |
---|---|
C# 기본자료형, 변수 (0) | 2023.02.03 |
C# 기본용어 (0) | 2023.02.02 |
C#으로 할 수 있는 일 (0) | 2023.01.31 |
플랫폼과 프로그래밍 언어 (0) | 2023.01.29 |