1.애플리케이션 종류(T) 선택

1-(1). 단일 문서 (SDI: Single Document Interface)
• 무슨 뜻인가요?
- 프로그램을 켰을 때, "딱 하나의 창에서 딱 하나의 파일(문서)만" 열어서 작업할 수 있는 구조입니다.
• 선택하면 "뭐가, 어떻게" 달라지나요?
- 모양새: 상단에 메뉴 바(파일, 편집 등), 툴바가 있고, 중앙에 작업 영역이 있는 전형적인 프로그램 모습입니다.
다른 파일을 열려면 기존 파일을 닫거나 프로그램을 하나 더 실행해야 합니다.
• 대표적인 예시
- 윈도우 메모장(Notepad), 그림판
• 코드 구조
- 데이터를 관리하는 Document 클래스와 화면 출력을 담당하는 View 클래스가 철저하게 분리되어 생성됩니다. (기능과 디자인을 쪼개놓은 구조예요.)
1-(2). 여러 문서 (MDI: Multiple Document Interface)
• 무슨 뜻인가요?
- 하나의 거대한 부모 창(프로그램) 안에서, "여러 개의 자식 창(문서)을 동시에" 띄워놓고 작업할 수 있는 구조입니다.
• 선택하면 "뭐가, 어떻게" 달라지나요?
- 모양새: 프로그램 화면 안에서 '창 정렬', '창 겹치기'가 가능합니다.
예를 들어 메모장 3개를 한 화면 안에서 격자로 정렬해 놓고 쓰는 느낌입니다.
• 대표적인 예시
- 과거의 포토샵(Photoshop), 옛날 버전의 Excel/Word.
• 코드 구조
- 단일 문서(SDI)보다 훨씬 복잡합니다. 자식 창들을 관리하는 템플릿 코드가 대거 추가됩니다.
1-(3). 대화 상자 기반 (Dialog-based)
• 무슨 뜻인가요?
- 메뉴 바, 툴바, 문서 개념 다 필요 없고, "딱 필요한 버튼과 입력창만 있는 팝업창 형태"로 프로그램을 만드는 구조입니다.
• 선택하면 "뭐가, 어떻게" 달라지나요?
- 모양새: 상단 메뉴가 없고 알림창처럼 생겼습니다. 마우스로 버튼을 누르거나 텍스트를 입력하는 직관적인 UI입니다.
신입 개발자가 미니 프로젝트나 유틸리티 프로그램을 만들 때 가장 많이 애용하고, 가장 쉬운 구조입니다.
• 대표적인 예시
- 윈도우 계산기, 알집, 각종 드라이버 설치 창.
• 코드 구조
- Document나 View 같은 복잡한 개념이 없습니다.
오직 Dialog 클래스 하나에 버튼 클릭 이벤트 등을 다 때려 박아 넣기 때문에 구조가 직관적이고 공부하기 제일 편합니다.
1-(4). 여러 최상위 문서 (MTDI: Multiple Top-Level Documents)
• 무슨 뜻인가요?
- 여러 문서(MDI)와 비슷하지만, 부모 창 안에 갇혀있는 게 아니라 "새 문서를 열 때마다 완전히 독립된 새 윈도우 창이 뜨는" 구조입니다.
• 선택하면 "뭐가, 어떻게" 달라지나요?
- 모양새: 겉보기에는 단일 문서(SDI) 창이 여러 개 켜진 것 같지만, 내부적으로는 하나의 프로세스(프로그램)가 이 창들을 전부 기억하고 통제하고 있습니다. 작업 표시줄에도 창이 여러 개 뜹니다.
• 대표적인 예시
- 현대의 인터넷 익스플로러/엣지(새 창으로 열기 했을 때), 최신 버전의 MS Word.
• 코드 구조
- 다중 창을 관리해야 하므로 이 역시 초보자가 다루기엔 난이도가 있습니다.
2.프로젝트 스타일 선택

2-(1). MFC 표준 (MFC Standard)
• 특징
- 우리가 매일 쓰는 '윈도우 파일 탐색기' 구조를 그대로 만들어 줍니다. 화면 왼쪽에는 트리 구조(폴더 목록)가 있고, 오른쪽에는 그 폴더를 클릭했을 때 나오는 상세 내용(파일 리스트)이 나오는 2분할 화면이 자동으로 구성됩니다.
• 디자인
- 내 PC를 열었을 때 보이는 좌측 폴더 트리 + 우측 파일 목록.

• 언제 사용?
- 데이터가 계층 구조(부모-자식 관계)로 되어 있어서 시각적으로 분류해 보여줘야 할 때.
- 예를 들어, 데이터베이스(DB) 관리 툴(좌측: 테이블 목록, 우측: 데이터 내용), 혹은 사내 조직도 관리 프로그램(좌측: 부서 목록, 우측: 사원 정보) 등을 만들 때 아주 유용.
2-(2). Windows 탐색기 (Windows Explorer)
• 특징
- 우리가 매일 쓰는 '윈도우 파일 탐색기' 구조를 그대로 만들어 줍니다. 화면 왼쪽에는 트리 구조(폴더 목록)가 있고, 오른쪽에는 그 폴더를 클릭했을 때 나오는 상세 내용(파일 리스트)이 나오는 2분할 화면이 자동으로 구성됩니다.
• 디자인
- 내 PC를 열었을 때 보이는 좌측 폴더 트리 + 우측 파일 목록.
• 언제 사용?
- 데이터가 계층 구조(부모-자식 관계)로 되어 있어서 시각적으로 분류해 보여줘야 할 때.
- 예를 들어, 데이터베이스(DB) 관리 툴(좌측: 테이블 목록, 우측: 데이터 내용), 혹은 사내 조직도 관리 프로그램(좌측: 부서 목록, 우측: 사원 정보) 등을 만들 때 아주 유용.
2-(3). Visual Studio
• 특징
- 지금 우리가 코딩할 때 쓰고 있는 개발 툴인 Visual Studio의 화면 배치를 그대로 복사해 줍니다.
왼쪽이나 오른쪽에 뗐다 붙였다(도킹) 할 수 있는 창들이 있고,
하단에 출력 창이나 에러 목록 창이 들어가는 아주 전문적인 구조입니다.
테마도 어두운 테마(다크 모드), 밝은 테마 등을 기본 지원합니다.
• 디자인
- 개발자에게 아주 친숙한 좌/우/하단 도킹 창 구조.

• 언제 사용?
- 사용자가 입맛에 맞게 화면 배치를 바꾸어야 하는 복잡하고 전문적인 기능의 프로그램을 만들 때.
- 예를 들어, 자체적인 코드 에디터를 만들거나, 복잡한 그래픽 툴, 혹은 다양한 로그(Log) 창을 실시간으로 띄워놓고 모니터링해야 하는 전문 개발/분석용 소프트웨어를 만들 때 선택합니다.
2-(4). Office
• 특징
- 마이크로소프트 오피스(Word, Excel 등) 제품군처럼 상단에 큼직하고 화려한 '리본 메뉴(Ribbon Bar)'를 달아줍니다.
탭을 누를 때마다 커다란 아이콘 메뉴들이 바뀌는 형태입니다. 4가지 스타일 중 가장 현대적이고 세련된 UI를 제공합니다.
• 디자인
- MS Word나 Excel 상단의 큼직한 아이콘 메뉴들.

• 언제 사용?
- 일반 사용자들이 쓰기에 친숙하고 직관적인 UI를 제공하고 싶을 때.
- 기능이 너무 많아서 얇은 텍스트 메뉴(파일, 편집 등)에 다 담기 힘들 때, 기능들을 아이콘화해서 예쁘게 그룹화하고 싶을 때 사용합니다. (사내 문서 관리 시스템 등)
'[C++] MFC 개발' 카테고리의 다른 글
| 다이어로그(Dialog) 도킹(Docking)하기 (0) | 2026.06.18 |
|---|