MS visual studio 에서 솔루션간 빌드 의존성 제어 질문

이용재@Facebook의 이미지

안녕하세요

프로젝트를 진행하다가 VRPN 이란 것을 사용해보는 중입니다.
VRPN 프로젝트를 빌드할 때 보니까 submodule 폴더 밑에 jsoncpp 와 hidapi 란 솔루션을 두고
각 솔루션의 바이너리 파일이 없으면 먼저 빌드하고 그 결과물인 lib 파일을 링킹시키더라구요.

제가 진행하고 있는 프로젝트에서도 이와같은 방법을 이용해 제 프로젝트를 빌드할 때
VRPN.lib 바이너리가 없으면 VRPN 솔루션을 빌드한 후 링킹을 하도록 해주고 싶은데 방법을 모르겠습니다.

prebuild event로 훅을 걸어놨나 싶어서 프로젝트 세팅을 훑어봤는데 그건 아닌 것 같네요.
서로 다른 솔루션이다보니 참조프로젝트로 할 수도 없고...

무슨 방법으로 한걸까요?

shint의 이미지

일단. 컴파일과 다운로드 방법이 있네요.
include 나 lib 우선순위를 지정하는 방법도 있습니다.

VRPN 컴파일 및 설치.
http://inclaude.blogspot.kr/2014/08/vrpn.html?m=0

다운로드
https://github.com/vrpn/vrpn/wiki
https://github.com/vrpn/vrpn/wiki/Getting-Started

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

이용재@Facebook의 이미지

제 질문의 의도는 A와 B의 서로다른 VS 솔루션이 있고, A가 B의 바이너리를 참조해야 할 때,
A를 빌드했을 때 B도 자동으로 빌드해주는 '빌드 자동화 방법'을 묻는 것입니다.

VRPN 솔루션은 잘 빌드 되요...

shint의 이미지

//
요즘은 클라우드 원격 서버 VDI / AWS 아마존 EC2 등에 컴퓨터도 사용하고 있습니다.
.VHD 가상 머신 파일에 OS를 설치해서 사용하는 방법도 있습니다. 파손되면 복구가 문제니. ㅇ_ㅇ;; 주의!
파이썬은 GPU 컴파일을 지원하기도 합니다.
저전력 컴퓨터를 여러개 모아서. 그리드 컴퓨터를 사용하기도 합니다.

//원하시는 내용은 이런거 같습니다.
- 빌드 이벤트 등록
- 솔루션에 프로젝트를 추가
- DLL 이나 LIB 파일을 로딩
- ActiveX OCX 로 등록해서 사용
- 프로젝트 종속성과 빌드 순서도 참고해보세요.
- 링커'를 도스 배치파일에서 IF 문으로 분기해야 할텐데. ㅇ_ㅇ;; 그냥. DLL 로딩이 편하실거예요.
- 아니면. 따로 .EXE 프로세스를 띄우고. 통신을 하는 방법도 있습니다.

//빌드 자동화 방법'도 다양한거 같아서 찾아봤습니다.
//VRPN 관련 데모 동영상도 많이 있네요.

//
저도 VRPN 컴파일을 해봤는데. 오류가 발생했다가.
성공했네요. ㅇ_ㅇ;; Visual Studio 2017
프로젝트 탭'에서 마우스 우클릭 후 프로젝트 대상 변경(Target)'을 SDK 10 으로 지정을 해줘야 합니다.

VRPN 다운
https://github.com/vrpn/vrpn

JSONCPP 다운
https://github.com/open-source-parsers/jsoncpp

HIDAPI 다운
https://github.com/signal11/hidapi

TortoiseSVN 다운
https://sourceforge.net/projects/tortoisesvn/files/1.9.7/Application/TortoiseSVN-1.9.7.27907-x64-svn-1.9.7.msi/download?accel_key=61%3A922e1b64-de57-11e7-8838-0200ac1d1d8f&click_id=922e878e-de57-11e7-8838-0200ac1d1d8f-1&source=accel

//
빌드 자동화 방법'로 구글 검색

심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태
오류 C1083 포함 파일을 열 수 없습니다. './submodules/hidapi/hidapi/hidapi.h': No such file or directory vrpn C:\Users\IEUser\Desktop\vrpn-master\vrpn-master\vrpn_HumanInterface.C 8

심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태
오류 C1083 포함 파일을 열 수 없습니다. './submodules/hidapi/hidapi/hidapi.h': No such file or directory vrpndll c:\users\ieuser\desktop\vrpn-master\vrpn-master\vrpn_humaninterface.c 8

심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태
오류 LNK1104 'C:\Users\IEUser\Desktop\vrpn-master\vrpn-master\pc_win32\Debug\vrpn.lib' 파일을 열 수 없습니다. make_vrpn_libs_build C:\Users\IEUser\Desktop\vrpn-master\vrpn-master\LINK 1

심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태
오류 LNK1104 'C:\Users\IEUser\Desktop\vrpn-master\vrpn-master\pc_win32\Debug\vrpn.lib' 파일을 열 수 없습니다. client_and_server C:\Users\IEUser\Desktop\vrpn-master\vrpn-master\server_src\LINK 1

VRPN C# Client
https://sourceforge.net/projects/vrpnclient/?source=navbar
https://sourceforge.net/p/vrpnclient/vrpncsharpclient/HEAD/tree/trunk/

Tree [r11] / trunk / VRPNCsharpClient_v1.0.2beta / include / vrpn / submodules / hidapi / Download Snapshot
https://sourceforge.net/p/vrpnclient/vrpncsharpclient/11/tree/trunk/VRPNCsharpClient_v1.0.2beta/include/vrpn/submodules/hidapi/

Is it safe to pass uint8_t in assignment? #403
https://github.com/open-source-parsers/jsoncpp/issues/403

open-source-parsers/jsoncpp
https://github.com/open-source-parsers/jsoncpp

About TortoiseSVN
https://sourceforge.net/projects/tortoisesvn/files/1.9.7/Application/TortoiseSVN-1.9.7.27907-x64-svn-1.9.7.msi/download?accel_key=61%3A922e1b64-de57-11e7-8838-0200ac1d1d8f&click_id=922e878e-de57-11e7-8838-0200ac1d1d8f-1&source=accel

개발 서버에 소스 코드 배포 과정에 대한 자동화
https://www.youtube.com/watch?v=X6UgSdjvrBU

[Visual Studio 2012] Visual Studio 2012의 Lab 관리를 통한 Build-Deploy-Test 워크플로우 자동화
https://www.youtube.com/watch?v=b8w1REYhhcg

Docker+Kubernetes를 이용한 빌드 서버 가상화 사례 SK플래닛@tech세미나
https://www.youtube.com/watch?v=EZE-aw2ndjg

[Webcast] 효과적인 애플리케이션 가상화와 인프라 관리 방법
https://www.youtube.com/watch?v=m32g4RWIIH4

UWP 앱에 대한 자동화된 빌드 설정
https://docs.microsoft.com/ko-kr/windows/uwp/packaging/auto-build-package-uwp-apps

svn checkout https://svn.code.sf.net/p/vrpnclient/vrpncsharpclient/trunk vrpnclient-vrpncsharpclient
svn checkout svn://svn.code.sf.net/p/vrpnclient/vrpncsharpclient/trunk vrpnclient-vrpncsharpclient
https://svn.code.sf.net/p/vrpnclient/vrpncsharpclient/trunk/VRPNCsharpClient_v1.0.2beta/include/vrpn/submodules/

https://sourceforge.net/p/vrpnclient/vrpncsharpclient/14/tree/trunk/VRPNCsharpClient_v1.0.6beta/include/vrpn/submodules/

202 5분만에 Jenkins Azure에서 배포하기
https://www.youtube.com/watch?v=9EmL9RqTbjU

빌드자동화와 테스트자동화 그리고 CI
http://charsyam.blog.me/30033536587

gitlab Runner를 이용한 자동화 빌드 구성 방법
http://blog.naver.com/sangrae-lee/220850671002

테스트 자동화 -단계적 빌드 자동화 / wed전문가과정
http://blog.naver.com/heesu2071/80197360637

NAnt 로 만들어 보는 빌드 자동화 1 - 설치
http://ondemand.tistory.com/136

Android Studio를 이용한 빌드 자동화 Gradle
http://used.kyobobook.co.kr/product/viewBookDetail.ink?cmdtBrcd=7248586192273

UE4 용 Visual Studio 셋업하기
https://docs.unrealengine.com/latest/KOR/Programming/Development/VisualStudioSetup/index.html

MS, ‘이그나이트 2017’서 AI 통합 '퀀텀 컴퓨팅' 비전 발표
http://www.iusm.co.kr/news/articleView.html?idxno=766370

[사용기]Visual Studio로 간단 LED 조작
http://cafe.naver.com/icbanq/2507

Visual Studio에서 솔루션 파일 그룹핑하기
https://blog.naver.com/aquayo/220881555009

Visual Studio 솔루션/프로젝트에 jQuery Scripts 폴더 추가하기 MS.NET / 개발
http://blog.naver.com/mininuke7303/50174646667

Visual Studio 솔루션에 새프로젝트 추가하기. 예... 2015.12.10.
http://igotit.tistory.com/477

Visual Studio 2005에서 솔루션이 안나올 때 Translation
http://blog.naver.com/guruby/140045205716

include 경로 추가하기 - Visual Studio 6.0/2005
http://blog.naver.com/skym9000/220767684775

방법: 다중 프로젝트 솔루션 만들기
https://msdn.microsoft.com/ko-kr/library/h970wzkb(v=vs.120).aspx

visual studio 2010 에서 기존 프로젝트 복사해서 쓰기
https://m.blog.naver.com/PostView.nhn?blogId=herbbread&logNo=220722348683&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F

visual-studio - Visual Studio에서 전체 디렉터리 구조를 "기존 항목 추가"하는 방법?
https://code.i-harness.com/ko/q/e1b0

버전 / 빌드.......란? 컴맹탈출 ·Computer
http://blog.naver.com/PostView.nhn?blogId=misterryu&logNo=110143786834

빌드 번호를 Revit Update와 연결하는 방법
https://knowledge.autodesk.com/ko/support/revit-products/learn-explore/caas/sfdcarticles/sfdcarticles/KOR/How-to-tie-the-Build-number-with-the-Revit-update.html

PostgreSQL 9.2.2 Windows 환경에서 빌드하기 Step by Step | ETC
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=51&MAEULNo=20&no=8624&ref=8624

openssl version 1.0 빌드 참고 문서 | VC++ 일반
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=51&MAEULNo=20&no=8461&ref=8461

bat파일로 빌드 하기
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=51&MAEULNo=20&no=8280&ref=8280

Visual Studio 열지 않고 빌드하기 | VC++ 일반
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=51&MAEULNo=20&no=8274&ref=8274

리소스 번호 자동 증가 매크로
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=51&MAEULNo=20&no=4255&ref=1419

C:\Users\IEUser\Desktop\vrpn-master\vrpn-master\submodules\hidapi\windows
hid.c 가 아니라며. 오류가 발생
hid.cpp 를 hid.c 로 이름 변경

심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태
오류 C2059 구문 오류: '문자열' vrpn c:\users\ieuser\desktop\vrpn-master\vrpn-master\submodules\hidapi\windows\hid.c 37

//주석 처리
extern "C" {
}

심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태
오류 C2100 간접 참조가 잘못되었습니다. vrpndll c:\program files (x86)\windows kits\10\include\10.0.16299.0\ucrt\stdio.h 1497

INI 파일을 이용해서 빌드할때 마다 빌드번호 자동으로 올리는 방법 | VC++ 일반
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=51&MAEULNo=20&no=8529&ref=8529

VC 프로젝트 빌드넘버 자동증가 시키기
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=51&MAEULNo=20&no=7121&ref=7121

Active X 컨트롤 자동 갱신해주기 ( 귀찮은 regsvr32 안쓰고... )
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=51&MAEULNo=20&no=6582&ref=6582

공유기를 사용하는 환경에서 게임이 자동 패치가 안됩니다.
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=51&MAEULNo=20&no=6177&ref=6155

OLE자동화 기초 | ActiveX/COM
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=51&MAEULNo=20&no=3659&ref=1190

VC++ 6.0에서와 .NET환경에서의 CString 자동형변환문제에 대해서...
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=51&MAEULNo=20&no=4576&ref=1541

쉘 스크립트를 활용한 배포 자동화
https://academy.realm.io/kr/posts/android-ui-test-automation/

쉘 스크립트를 활용한 배포 자동화
https://www.youtube.com/watch?v=U7tZnEiYJyE

[6장 웹 프로그램과 애플릿] 1. 애플릿의 실행 원리
https://www.youtube.com/watch?v=dJVXw1SJO4Q

hidapi/README.txt
https://github.com/signal11/hidapi
https://github.com/signal11/hidapi/blob/master/README.txt
git clone git://github.com/signal11/hidapi.git
http://www.signal11.us/oss/hidapi/
https://github.com/signal11/hidapi/downloads
http://www.signal11.us/oss/hidapi/hidapi/doxygen/html/group__API.html
http://brewformulas.org/Hidapi

USB HID API for Windows
http://www.microchip.com/forums/m492321.aspx

[6장 웹 프로그램과 애플릿] 1. 애플릿의 실행 원리
https://www.youtube.com/watch?v=dJVXw1SJO4Q

UIAutomator2와 DeviceFarm을 활용한 UI 테스트 자동화
by 유윤재
https://academy.realm.io/kr/posts/android-ui-test-automation/

쉘 스크립트를 활용한 배포 자동화
https://www.youtube.com/watch?v=U7tZnEiYJyE

1-7. AWS 원격 서버에 자바 소스 코드 배포 및 재배포
https://www.youtube.com/watch?v=--bUO7KNFJ4

[NDC 2016] 글로벌 원빌드 모바일 게임 론칭과 라이브 개발 | 넥슨 이희영
https://www.youtube.com/watch?v=sPt-7LAHv0c

Function|SOLIDWORKS Composer - 90초만에 커뮤니케이션 문서작성이 가능합니다
https://www.youtube.com/watch?v=gdnQq84B3mY

효율적인 데브옵스를 위한 AWS 개발 도구 활용하기 - 김필중 솔루션즈 아키텍트(AWS 코리아)
https://www.youtube.com/watch?v=XifpCK44zjQ

안드로이드 앱을 빠르고 지속적으로 전달하기
https://academy.realm.io/kr/posts/continuous-delivery-for-android/

지속적인 전달을 위한 자동화 도구, fastlane: 데모와 함께 알아보기
by 구범모 May 11 2017
https://academy.realm.io/kr/posts/ios-fastlane-demos/

[세션]3. Git 기반의 애자일 개발 환경 구축 및 개발 프로세스 설명/고객과 소통하는 소프트웨어 유지보수 프로세스 구축 및 실천 방법
https://www.youtube.com/watch?v=Ioyr7mMC5Ek

빌드 이벤트

[C++] 빌드 이벤트 - 빌드 후 이벤트로 파일 복사하기 - 두번째 뇌 - Tistory
http://devhoma.tistory.com/12

Visual Studio에서 사용자 지정 빌드 이벤트 지정
https://msdn.microsoft.com/ko-kr/library/ms165412.aspx

빌드 전 이벤트/빌드 후 이벤트 명령줄 대화 상자
https://msdn.microsoft.com/ko-kr/library/42x5kfw4.aspx

[TIP] 빌드 이벤트 활용방법
1. 실전 빌드 이벤트 ( GAC 자동 등록하기 )
http://truepia.tistory.com/23

빌드 이벤트(전, 후), 빌드 종속성(빌드순서)
http://dlgnlfus.tistory.com/199

실전 빌드 이벤트
http://blog.powerumc.kr/62

VS 빌드 이벤트의 활용
http://egloos.zum.com/javawork/v/1812308

빌드 이벤트로 파일 복사할 때 주의할 점
https://andromedarabbit.net/be_careful_when_copying_files_as_a_build_event/

Visual Studio 에서 빌드 후 생성 파일 복사
http://xerror.tistory.com/49

Build Event 파일 복사하기( Post Build Event )
http://3dmpengines.tistory.com/1382

linking visual studio

Setting Linker Options
https://msdn.microsoft.com/en-us/library/wk97ab1b.aspx

LINK Command Files
https://msdn.microsoft.com/en-us/library/9xch38h8.aspx

link /dll @objlist.txt @liblist.txt @exports.txt

링커 옵션
https://msdn.microsoft.com/ko-kr/library/y0zzbyt4.aspx

/DELAYLOAD(가져오기 로드 지연)
https://msdn.microsoft.com/ko-kr/library/yx9zd12s.aspx

Compiling and Linking
https://msdn.microsoft.com/en-us/library/aa243604(v=vs.60).aspx

No Linker option in Visual Studio Project Properties
https://stackoverflow.com/questions/5234899/no-linker-option-in-visual-studio-project-properties

Linking dll in Visual Studio
https://stackoverflow.com/questions/7845886/linking-dll-in-visual-studio

#pragma comment(lib, "dll.lib")

What does the “Link Library Dependency” linker option actually do in Visual Studio 2010?
https://stackoverflow.com/questions/7683869/what-does-the-link-library-dependency-linker-option-actually-do-in-visual-stud

Linking on Android
https://developer.xamarin.com/guides/android/advanced_topics/linking/

C++ Programming/Compiler/Linker/Libraries/Configuring Visual Studio
https://en.wikibooks.org/wiki/C%2B%2B_Programming/Compiler/Linker/Libraries/Configuring_Visual_Studio

linking C++ and Fortran in Visual Studio 2010
https://software.intel.com/en-us/forums/intel-visual-fortran-compiler-for-windows/topic/520469

Add support for the Visual Studio 2017 linker #38584
https://github.com/rust-lang/rust/issues/38584

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

이용재@Facebook의 이미지

다시 확인해보니 VRPN 에서는 서브모듈들을 헤더만 인클루드 시켜서 사용한 것 같네요.

그렇지만 제 프로젝트에서는 앞서 말씀드린 형태의 의존 관계가 필요하기 때문에,
빌드이벤트 쪽을 좀 더 봐야 할 것 같습니다.

감사합니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.