비주얼 스튜디오는 프로그래머들이 가장 많이 쓰는 통합개발환경이지만 그만큼 잘 모르고 쓰는 도구이기도 합니다.

컴퓨터 관련 학과에 다닌다면 대학교에 들어와서 처음으로 만지는 전공 프로그램인데, 교수님들조차도 비주얼 스튜디오에 대해선 제대로 설명하지 않고 넘어가기 때문에 졸업하고 나서도 제대로 모르고 쓸 수 있습니다. (물론 교수님들은 강의 시간이 부족하니까 알아서 공부하라는겁니다)

 

솔루션과 프로젝트의 개념을 잘 알고 있으면 과제할 때도 편하고 나중에 자기만의 프로그램을 만들 때도, 그리고 다른 사람들이 작업한 코드에 투입될 때도 도움이 많이 됩니다.


Project

 프로젝트(Project)는 컴파일의 결과물로 하나의 실행파일 혹은 라이브러리 등을 만들어내는, 말 그대로 하나의 프로그램을 만드는 묶음입니다.

그렇다면 솔루션은 뭘까요? 솔루션(Solution)은 하나 이상의 프로젝트가 모인 집합이라고 볼 수 있습니다. 왜 여러 개의 프로젝트를 같이 모을 생각을 하게 된걸까요?

보통 특정 회사에서 누군가에게 “솔루션”을 제공한다는 것은 하나 이상의 제품을 한 번에 제공한다는 의미입니다. 프로그래밍 측면에서도 그렇습니다. 소형 프로젝트가 아닌 이상 여러 개의 실행 파일과 라이브러리를 만들어야 하는 것이 보통이며, 이것을 묶어 하나의 “솔루션”으로 관리하는 것이 여러 방면에서 이득이 될 수 있습니다.

Solution

위의 그림은 일반적인 솔루션과 프로젝트의 모습입니다. 이 솔루션과 프로젝트에 관해 간단히 소개해드리자면, CPU 단위에서 처리할 수 있는 명령어들을 테스트할 목적으로 만들어진 솔루션이며 각각의 프로젝트는 각자의 분야에 관련된 명령어를 테스트하게 되어 있습니다.

이런 개념은 과연 비주얼 스튜디오에서만 제공하는 것일까요? 절대 아닙니다.

Eclipse

[그림 출처]

위의 그림은 이클립스(Eclipse) 개발환경에서의 디렉토리 구조를 나타낸 것입니다. 이클립스에서는 워크스페이스(Workspace)와 그 안에 속하게 되는 프로젝트(Project)가 있습니다. 이클립스를 사용해보신 분들은 알겠지만 이클립스를 실행한 직후에 항상 이용 혹은 생성할 워크스페이스의 경로를 묻게 되어있습니다. 해당 워크스페이스에서 만들거나 추가한 프로젝트는 워크스페이스 단위로 관리됩니다.

Intellij

[그림 출처]

위의 그림은 인텔리제이(Intellij) 개발 환경에서의 디렉토리 구조를 나타낸 것입니다. 인텔리제이는 프로젝트(Project)와 그 안에 속하게 되는 모듈(Module)이 있습니다. 개발 환경마다 같은 개념을 다른 용어로 이용하기 때문에 헷갈릴 수 있어 아래와 같이 정리해봤습니다.


비주얼 스튜디오: 솔루션 <- 프로젝트

인텔리제이: 프로젝트 <- 모듈

이클립스: 워크스페이스 <- 프로젝트


이제 이해가 가시나요? 신입생 입장에서 조언을 드리자면 과제를 하는 입장에서는 한 주 단위의 과제 묶음이 솔루션이 되고 각각의 과제들을 프로젝트로 만들면 하나의 솔루션으로 과제를 관리할 수 있습니다.

다음 편에서는 실제로 솔루션과 프로젝트를 만들고 이를 활용하는 방법에 대해 설명하겠습니다.

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.