비주얼 스튜디오는 프로그래머들이 가장 많이 쓰는 통합개발환경이지만 그만큼 잘 모르고 쓰는 도구이기도 합니다.
컴퓨터 관련 학과에 다닌다면 대학교에 들어와서 처음으로 만지는 전공 프로그램인데, 교수님들조차도 비주얼 스튜디오에 대해선 제대로 설명하지 않고 넘어가기 때문에 졸업하고 나서도 제대로 모르고 쓸 수 있습니다. (물론 교수님들은 강의 시간이 부족하니까 알아서 공부하라는겁니다)
솔루션과 프로젝트의 개념을 잘 알고 있으면 과제할 때도 편하고 나중에 자기만의 프로그램을 만들 때도, 그리고 다른 사람들이 작업한 코드에 투입될 때도 도움이 많이 됩니다.
프로젝트(Project)는 컴파일의 결과물로 하나의 실행파일 혹은 라이브러리 등을 만들어내는, 말 그대로 하나의 프로그램을 만드는 묶음입니다.
그렇다면 솔루션은 뭘까요? 솔루션(Solution)은 하나 이상의 프로젝트가 모인 집합이라고 볼 수 있습니다. 왜 여러 개의 프로젝트를 같이 모을 생각을 하게 된걸까요?
보통 특정 회사에서 누군가에게 “솔루션”을 제공한다는 것은 하나 이상의 제품을 한 번에 제공한다는 의미입니다. 프로그래밍 측면에서도 그렇습니다. 소형 프로젝트가 아닌 이상 여러 개의 실행 파일과 라이브러리를 만들어야 하는 것이 보통이며, 이것을 묶어 하나의 “솔루션”으로 관리하는 것이 여러 방면에서 이득이 될 수 있습니다.
위의 그림은 일반적인 솔루션과 프로젝트의 모습입니다. 이 솔루션과 프로젝트에 관해 간단히 소개해드리자면, CPU 단위에서 처리할 수 있는 명령어들을 테스트할 목적으로 만들어진 솔루션이며 각각의 프로젝트는 각자의 분야에 관련된 명령어를 테스트하게 되어 있습니다.
이런 개념은 과연 비주얼 스튜디오에서만 제공하는 것일까요? 절대 아닙니다.
위의 그림은 이클립스(Eclipse) 개발환경에서의 디렉토리 구조를 나타낸 것입니다. 이클립스에서는 워크스페이스(Workspace)와 그 안에 속하게 되는 프로젝트(Project)가 있습니다. 이클립스를 사용해보신 분들은 알겠지만 이클립스를 실행한 직후에 항상 이용 혹은 생성할 워크스페이스의 경로를 묻게 되어있습니다. 해당 워크스페이스에서 만들거나 추가한 프로젝트는 워크스페이스 단위로 관리됩니다.
위의 그림은 인텔리제이(Intellij) 개발 환경에서의 디렉토리 구조를 나타낸 것입니다. 인텔리제이는 프로젝트(Project)와 그 안에 속하게 되는 모듈(Module)이 있습니다. 개발 환경마다 같은 개념을 다른 용어로 이용하기 때문에 헷갈릴 수 있어 아래와 같이 정리해봤습니다.
비주얼 스튜디오: 솔루션 <- 프로젝트
인텔리제이: 프로젝트 <- 모듈
이클립스: 워크스페이스 <- 프로젝트
이제 이해가 가시나요? 신입생 입장에서 조언을 드리자면 과제를 하는 입장에서는 한 주 단위의 과제 묶음이 솔루션이 되고 각각의 과제들을 프로젝트로 만들면 하나의 솔루션으로 과제를 관리할 수 있습니다.
다음 편에서는 실제로 솔루션과 프로젝트를 만들고 이를 활용하는 방법에 대해 설명하겠습니다.
'개발자 > C++(Linux, Window)' 카테고리의 다른 글
cuda 사용하기 #1 (0) | 2020.06.12 |
---|---|
C++ STL List 사용법과 예제 (0) | 2020.06.12 |
extern 사용법 (0) | 2020.04.05 |
C++ STL - 벡터(std::vector), 리스트(list), 데크(deque) (0) | 2020.03.15 |
vs2017대상 프레임워크 및 플랫폼 도구 집합 수정 (0) | 2020.03.13 |