SlideShare a Scribd company logo
1 of 10
Download to read offline
속성관리자
Visual Studio: Property Manager


                        2011. 3. 31. 워크샵
                             LF 프로그래밍 팀
                                  최성기
.h, .lib 파일 경로를 전역적(툴 전체 범위)으로
설정하던 기능이 vs2010으로 넘어오면서    삭제.


                ◀ vs2008
                ▼ vs2010
M$ : 대신 속성 관리자를 쓸 지어다.
속성 관리자 : vs2005부터 있었다.
인클루드 경로뿐만 아니라
대부분의 빌드 옵션을 설정 / 관리하는 기능.
컴파일러 최적화, warning 레벨, 출력 파일 경로, 등…
빌드 옵션을 담고 있는 속성 시트 (.props)를
만들어서 셋팅하고 겹겹이 붙여서
하나의 빌드 설정을 완성하는 구조.
‘부모값을 상속’ 받으면 상위 시트의 설정이 유지된다.
관리자에서 더 아래에 설정된 시트가
‘부모 속성’이 된다.


         모든 옵션에서 동일한 값.

          디버그/릴리즈 별 옵션

            비트값 속성별 옵션
프로젝트가 잘게 나뉘어져 있을 때 더 유용하다.
      어느 정도 공통 범주에 속하는
      시트를 만들 설정해두고 일괄 관리하면 편하다.


      예:
      -릴리즈 모드 최적화 옵션을 /O1에서 /O2로 변경.
      -32비트 빌드의 obj 파일 생성 경로명을 약간 수정.
      -코드 전체가 사용하는 코어 모듈의 인클루드 수정.
Debug/Release 모드 외에 추가 모드
(가령, Profile 같은)를 하나 유지하려고 해도 부담.

프로젝트 개수가 50개라면,
                                        빌드 옵션의 개수

                  Debug         Win32
              *   Release   *   x64     = 200
         50         2             2

                  Debug
                                Win32
              *
                  Release
                  Profile   *   x64     = 300
         50         3             2
속성 관리자 사용의 장/단점
장점 : 설정의 유지 / 관리가 용이해진다.

단점 :
1. 처음 적용하고자 할 경우 노가다가 요구됨.
 • 속성 시트를 MECE하게 계획적으로 분리.
2. props 파일은 Perforce와 연동되지 않음.
 • 초기 설정시 직접 depot에 추가.
 • 수정할 땐 수동으로 체크아웃/서밋.
정리 :
개발 잘 하고 있는 코드에 굳이 애써 적용할 필요는 없을 듯.

• vs2010에서 새로 시작하는 대규모 코드나
• 빌드 옵션이 자주 변경되는 개발 초기
• Debug/Release 모드 이외에 추가구성이 많은 경우

…등의 경우에 좀 더 유용하게 활용될 것으로 예상.




      -끗-

More Related Content

Similar to [110331] visual studio 속성 관리자

NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발Jinuk Kim
 
대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014
대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014
대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014NDOORS
 
빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)YEONG-CHEON YOU
 
[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함
[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함
[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함Ji-Woong Choi
 
Sonatype nexus 로 docker registry 관리하기
Sonatype nexus 로 docker registry 관리하기Sonatype nexus 로 docker registry 관리하기
Sonatype nexus 로 docker registry 관리하기KwangSeob Jeong
 
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기CONNECT FOUNDATION
 
Git의 개념과 사용
Git의 개념과 사용Git의 개념과 사용
Git의 개념과 사용환민 홍
 
Petra보고서 개발 open자료
Petra보고서 개발 open자료Petra보고서 개발 open자료
Petra보고서 개발 open자료cho hyun jong
 
Unity Auto Build iOS
Unity Auto Build iOSUnity Auto Build iOS
Unity Auto Build iOSGiseok Lee
 
develop android app using intellij
develop android app using intellijdevelop android app using intellij
develop android app using intellijSewon Ann
 
Kernel 2.6 makefile_분석(송형주)
Kernel 2.6 makefile_분석(송형주)Kernel 2.6 makefile_분석(송형주)
Kernel 2.6 makefile_분석(송형주)iamhjoo (송형주)
 
[123] electron 김성훈
[123] electron 김성훈[123] electron 김성훈
[123] electron 김성훈NAVER D2
 
윈도우 커널 익스플로잇
윈도우 커널 익스플로잇윈도우 커널 익스플로잇
윈도우 커널 익스플로잇Seungyong Lee
 
[아꿈사] The C++ Programming Language 9장 소스 파일과 프로그램
[아꿈사] The C++ Programming Language 9장 소스 파일과 프로그램[아꿈사] The C++ Programming Language 9장 소스 파일과 프로그램
[아꿈사] The C++ Programming Language 9장 소스 파일과 프로그램해강
 
[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)Ildoo Kim
 
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁Yi-kwon Hwang
 

Similar to [110331] visual studio 속성 관리자 (20)

Atom package part1
Atom package part1Atom package part1
Atom package part1
 
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
 
대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014
대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014
대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014
 
빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)
 
[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함
[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함
[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함
 
Sonatype nexus 로 docker registry 관리하기
Sonatype nexus 로 docker registry 관리하기Sonatype nexus 로 docker registry 관리하기
Sonatype nexus 로 docker registry 관리하기
 
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
 
Git의 개념과 사용
Git의 개념과 사용Git의 개념과 사용
Git의 개념과 사용
 
Petra보고서 개발 open자료
Petra보고서 개발 open자료Petra보고서 개발 open자료
Petra보고서 개발 open자료
 
Unity Auto Build iOS
Unity Auto Build iOSUnity Auto Build iOS
Unity Auto Build iOS
 
develop android app using intellij
develop android app using intellijdevelop android app using intellij
develop android app using intellij
 
Maven
MavenMaven
Maven
 
Docker Container
Docker ContainerDocker Container
Docker Container
 
Kernel 2.6 makefile_분석(송형주)
Kernel 2.6 makefile_분석(송형주)Kernel 2.6 makefile_분석(송형주)
Kernel 2.6 makefile_분석(송형주)
 
[123] electron 김성훈
[123] electron 김성훈[123] electron 김성훈
[123] electron 김성훈
 
윈도우 커널 익스플로잇
윈도우 커널 익스플로잇윈도우 커널 익스플로잇
윈도우 커널 익스플로잇
 
[아꿈사] The C++ Programming Language 9장 소스 파일과 프로그램
[아꿈사] The C++ Programming Language 9장 소스 파일과 프로그램[아꿈사] The C++ Programming Language 9장 소스 파일과 프로그램
[아꿈사] The C++ Programming Language 9장 소스 파일과 프로그램
 
[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)
 
Git
Git Git
Git
 
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
 

More from sung ki choi

[120316] node.js 프로그래밍 5장
[120316] node.js 프로그래밍 5장[120316] node.js 프로그래밍 5장
[120316] node.js 프로그래밍 5장sung ki choi
 
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화sung ki choi
 
[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임sung ki choi
 
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기sung ki choi
 
[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.
[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.
[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.sung ki choi
 
[아꿈사/110903] 도메인주도설계 4장
[아꿈사/110903] 도메인주도설계 4장[아꿈사/110903] 도메인주도설계 4장
[아꿈사/110903] 도메인주도설계 4장sung ki choi
 
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'sung ki choi
 
[아꿈사/110528] 멀티코어cpu이야기 5,6장
[아꿈사/110528] 멀티코어cpu이야기 5,6장[아꿈사/110528] 멀티코어cpu이야기 5,6장
[아꿈사/110528] 멀티코어cpu이야기 5,6장sung ki choi
 
[아꿈사/110514] 멀티코어cpu이야기 시작발표
[아꿈사/110514] 멀티코어cpu이야기 시작발표[아꿈사/110514] 멀티코어cpu이야기 시작발표
[아꿈사/110514] 멀티코어cpu이야기 시작발표sung ki choi
 
100828 [visual studio camp #1] C++0x와 Windows7
100828 [visual studio camp #1] C++0x와 Windows7100828 [visual studio camp #1] C++0x와 Windows7
100828 [visual studio camp #1] C++0x와 Windows7sung ki choi
 
110212 [아꿈사발표자료] taocp#1 1.2.8. 피보나치수열
110212 [아꿈사발표자료] taocp#1 1.2.8. 피보나치수열110212 [아꿈사발표자료] taocp#1 1.2.8. 피보나치수열
110212 [아꿈사발표자료] taocp#1 1.2.8. 피보나치수열sung ki choi
 
101102 endofdb select.1_rdbms
101102 endofdb select.1_rdbms101102 endofdb select.1_rdbms
101102 endofdb select.1_rdbmssung ki choi
 
100526 windows7 mfc_최성기_배포용
100526 windows7 mfc_최성기_배포용100526 windows7 mfc_최성기_배포용
100526 windows7 mfc_최성기_배포용sung ki choi
 
100511 boost&tips 최성기
100511 boost&tips 최성기100511 boost&tips 최성기
100511 boost&tips 최성기sung ki choi
 
Touch Ux With Win32
Touch Ux With Win32Touch Ux With Win32
Touch Ux With Win32sung ki choi
 

More from sung ki choi (15)

[120316] node.js 프로그래밍 5장
[120316] node.js 프로그래밍 5장[120316] node.js 프로그래밍 5장
[120316] node.js 프로그래밍 5장
 
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화
 
[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임
 
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기
 
[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.
[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.
[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.
 
[아꿈사/110903] 도메인주도설계 4장
[아꿈사/110903] 도메인주도설계 4장[아꿈사/110903] 도메인주도설계 4장
[아꿈사/110903] 도메인주도설계 4장
 
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'
 
[아꿈사/110528] 멀티코어cpu이야기 5,6장
[아꿈사/110528] 멀티코어cpu이야기 5,6장[아꿈사/110528] 멀티코어cpu이야기 5,6장
[아꿈사/110528] 멀티코어cpu이야기 5,6장
 
[아꿈사/110514] 멀티코어cpu이야기 시작발표
[아꿈사/110514] 멀티코어cpu이야기 시작발표[아꿈사/110514] 멀티코어cpu이야기 시작발표
[아꿈사/110514] 멀티코어cpu이야기 시작발표
 
100828 [visual studio camp #1] C++0x와 Windows7
100828 [visual studio camp #1] C++0x와 Windows7100828 [visual studio camp #1] C++0x와 Windows7
100828 [visual studio camp #1] C++0x와 Windows7
 
110212 [아꿈사발표자료] taocp#1 1.2.8. 피보나치수열
110212 [아꿈사발표자료] taocp#1 1.2.8. 피보나치수열110212 [아꿈사발표자료] taocp#1 1.2.8. 피보나치수열
110212 [아꿈사발표자료] taocp#1 1.2.8. 피보나치수열
 
101102 endofdb select.1_rdbms
101102 endofdb select.1_rdbms101102 endofdb select.1_rdbms
101102 endofdb select.1_rdbms
 
100526 windows7 mfc_최성기_배포용
100526 windows7 mfc_최성기_배포용100526 windows7 mfc_최성기_배포용
100526 windows7 mfc_최성기_배포용
 
100511 boost&tips 최성기
100511 boost&tips 최성기100511 boost&tips 최성기
100511 boost&tips 최성기
 
Touch Ux With Win32
Touch Ux With Win32Touch Ux With Win32
Touch Ux With Win32
 

[110331] visual studio 속성 관리자

  • 1. 속성관리자 Visual Studio: Property Manager 2011. 3. 31. 워크샵 LF 프로그래밍 팀 최성기
  • 2. .h, .lib 파일 경로를 전역적(툴 전체 범위)으로 설정하던 기능이 vs2010으로 넘어오면서 삭제. ◀ vs2008 ▼ vs2010
  • 3. M$ : 대신 속성 관리자를 쓸 지어다.
  • 4. 속성 관리자 : vs2005부터 있었다. 인클루드 경로뿐만 아니라 대부분의 빌드 옵션을 설정 / 관리하는 기능. 컴파일러 최적화, warning 레벨, 출력 파일 경로, 등…
  • 5. 빌드 옵션을 담고 있는 속성 시트 (.props)를 만들어서 셋팅하고 겹겹이 붙여서 하나의 빌드 설정을 완성하는 구조. ‘부모값을 상속’ 받으면 상위 시트의 설정이 유지된다.
  • 6. 관리자에서 더 아래에 설정된 시트가 ‘부모 속성’이 된다. 모든 옵션에서 동일한 값. 디버그/릴리즈 별 옵션 비트값 속성별 옵션
  • 7. 프로젝트가 잘게 나뉘어져 있을 때 더 유용하다. 어느 정도 공통 범주에 속하는 시트를 만들 설정해두고 일괄 관리하면 편하다. 예: -릴리즈 모드 최적화 옵션을 /O1에서 /O2로 변경. -32비트 빌드의 obj 파일 생성 경로명을 약간 수정. -코드 전체가 사용하는 코어 모듈의 인클루드 수정.
  • 8. Debug/Release 모드 외에 추가 모드 (가령, Profile 같은)를 하나 유지하려고 해도 부담. 프로젝트 개수가 50개라면, 빌드 옵션의 개수 Debug Win32 * Release * x64 = 200 50 2 2 Debug Win32 * Release Profile * x64 = 300 50 3 2
  • 9. 속성 관리자 사용의 장/단점 장점 : 설정의 유지 / 관리가 용이해진다. 단점 : 1. 처음 적용하고자 할 경우 노가다가 요구됨. • 속성 시트를 MECE하게 계획적으로 분리. 2. props 파일은 Perforce와 연동되지 않음. • 초기 설정시 직접 depot에 추가. • 수정할 땐 수동으로 체크아웃/서밋.
  • 10. 정리 : 개발 잘 하고 있는 코드에 굳이 애써 적용할 필요는 없을 듯. • vs2010에서 새로 시작하는 대규모 코드나 • 빌드 옵션이 자주 변경되는 개발 초기 • Debug/Release 모드 이외에 추가구성이 많은 경우 …등의 경우에 좀 더 유용하게 활용될 것으로 예상. -끗-