책/C# 스타터

[C# 스타터] Chapter 6. 프로그램 구조

개발의 피 2022. 8. 7. 21:35
6.1 네임스페이스
6.2 솔루션과 프로젝트
6.3 프로젝트 추가
6.4 리팩토링(다중 소스 파일 구성)
6.5 라이브러리 만들기 

 

1. 네임스페이스

1) 네임스페이스 이해

- 새로운 프로젝트를 시작하면, 자동으로 생성되는 코드

using System;

namespace 프로젝트명
{
    class Program
    {
        static void Main(string[] args)
        {
        	// 
        }
    }
}

 

- 네임스페이스 = 프로젝트

 

ex) 집을 지을 때,

- 방, 부엌 : 네임스페이스

- 각 방 조명 시스템 :클래스

- 조명 켜고 끄는 스위치 : 함수 

 

* 네임 스페이스가 필요한 이유

- 여러 프로그래머가 참여하는 큰 프로젝트의 경우, 같은 이름의 클래스, 함수 등이 존재 가능 

-> 이러한 충돌을 피하면서 프로그램 개발하는 것이 목적 (= 개발자들이 각자 자신이 맡은 '방'만 꾸미도록 하는 것) 

- 하나의 네임스페이스 안에서는 같은 이름을 가지는 객체가 허용되지 않지만, 다른 네임스페이스에는 같은 이름의 객체가 존재할 수 있다 

- 주의 : Main() 함수를 가지는 네임스페이스 - 오직 하나만 존재 가능 (= 모든 집에 들어오는 현관이 하나인 것처럼) 

 

2) using 키워드

- 네임 스페이스 호출하여 사용

->  using 문을 이용해 외부 네임스페이스를 연결하면, 해당 네임스페이스에 속한 클래스와 함수를 자유롭게 사용 가능 

 

3) 네임스페이스의 별명 사용

- 참조하려는 네임스페이스의 이름이 길다면, 별명을 사용하여 줄여 쓰는 것도 가능

using <별명> = <네임스페이스 이름>;

using MyNameSpace_1;

using mns1 = MyNameSpace_1;

using <별명> = <네임스페이스 이름>;

 

 

2. 솔루션, 프로젝트

- 솔루션 : 프로젝트를 담는 그릇 (.sln)

- 프로젝트 : (csproj)

 

 

3. 프로젝트 추가 

 

 

4. 리팩토링(다중 소스 파일 구성)

프로그램의 전체 구조는 그대로 유지한 채, 세부적인 기능들을 서로 다른 소스 코드 파일로 분리해서 관리

-> 소스 코드를 분리 : 프로그램 개발과 유지 보수를 수월하게 만듦

 

 

5. 라이브러리 만들기

- 라이브러리(=DLL) : 재사용이 가능한 범용 모듈

- 모듈 : 프로그램에서 독립적인 기능을 수행하는 부분을 따로 떼어놓은 것, 그 자체로 컴파일이 가능 + 재사용 가능

- 컴파일 vs. 빌드

- .NET Framework, .NET Core, .Net Standard 비교

 

 

6. 파일 및 폴더 제어

- System.IO 네임스페이스 : 파일과 폴더(디렉터리)를 생성, 삭제하고, 파일로부터 자료를 읽거나 쓰는 등의 다양한 기능을 위한 클래스와 함수, 프로퍼티를 제공