Post


Jenkins 설정 시 SVN 유저 ID를 설정하니 'Unable to access the repository' 에러가 떴다.

에러가 떠서인지 빌드를 해도


Checking out a fresh workspace because there's no workspace at C:\Program Files (x86)\Jenkins\workspace\Example

Cleaning local Directory .

ERROR: Subversion checkout has been canceled

Build was aborted

Finished: ABORTED


이런식으로 에러가 났다.

알고보니 내가 SVN 유저 ID를 착각해 없는 ID를 넣은거였다;;;

제대로 넣어주니 빌드 성공


Finished: SUCCESS

Post

#pragma message(내용)

출력창에 내용을 출력할 수 있는 전처리기 명령문



Post

VirtualBox 호스트 게스트 연결


virtualbox 설정 때문에 요즘 포스팅을 많이 못했다

처음에 어댑터 2개 나눈걸 이해못해서 ip변경까지 하고....
무턱대고 남이한걸 따라하는 것보다는 각 네트워크 설정을 이해하는 것이 도움이 되었다,

상황

호스트에서 게스트 Jenkins로 접속하고싶다.


네트워크 설정



어댐터1은 NAT으로 설정한다.

어댐터2는 호스트 전용 어댑터로 설정한다.

NAT은 게스트가 내부에서 인터넷을 사용할 수 있도록 설정한 것이다.

호스트 전용 어댑터는 말그대로 호스트와 게스트 간의 연결을 위한 설정이다.


저장하고 게스트 OS를 실행시킨다.

그리고 cmd에 ipconfig를 치면 이더넷이 2개 나올 것이다.

이더넷 어댑터 이더넷은 첫번째로 설정한 NAT 설정이고

이더넷 어댑터 이더넷2는 두번째로 설정한 호스트 전용 어댑터이다.


호스트에서 이더넷 어댑터 이더넷2의 IPv4 주소로 ping을 보낸다.

정상적으로 ping이 잘 간다.


( Window10에선 핑을 막는다고 하던데, 게스트가 Win10이고 안된다면

cmd창을 켜서 netsh advfirewall firewall add rule name="ICMP Allow" protocol=icmpv4:8,any dir=in action=allow 명령어를 쳐본다)





호스트에서 게스트 Jenkins로 접속이 잘된다.


Post

1

VisualSVN 을 다운로드 받고 설치한다. (딱히 별다른 설정 안함)

다운로드 링크 : https://www.visualsvn.com/visualsvn/download/

 

2

Repository를 생성.

 

 

VisualSVN 실행 후 Create New Repository를 클릭한다.

그리고 Regular FSFS repository를 선택.

Repository 이름을 설정합니다. ( 나는 SVNTest )

Empty Repository 선택(trunk, branches, tags 폴더 생성x)

All Subversion users habe Read / Write access 선택(다른 유저도 접근 허용)

3

유저를 생성합니다.

 

4

Repository에 유저를 추가합니다

5.

그 후 다른 컴퓨터에서 내 저장소에 접근 가능하도록 주소 설정을 해야합니다.

Properties 메뉴를 누릅니다.

 

6.

Server name을 내부 ip로 설정하고 허용할 IP를 설정합니다.

저의 svn 주소는 https://내부ip/svn/ 입니다.(/svn 는 뺄 수도 있습니다)

 

7.

CheckOut할 때는 자신이 만든 Repository 명이 포함되어야 합니다.

최종 svn 주소는  https://내부ip/svn/Repository 입니다.

 

 

8.

다른 컴퓨터에서 svn에 접근하여 데이터 내려받기가 잘 됩니다.

 

 

 

 

 

 

Post

젠킨스 다운로드 주소

http://jenkins-ci.org/

 

윈도우 버전을 다운로드 받은 후 설치한다

(별다른 설정은 없다)

다 설치하면 http://localhost:8080/ 로 접속한다.

 

그런데 젠킨스 메인화면이 아니라 Unlock Jenkins 라고 뜬다

 

Unlock Jenkins

To ensure Jenkins is securely set up by the administrator, a password has been written to the log (not sure where to find it?) and this file on the server:

C:\Program Files (x86)\Jenkins\secrets\initialAdminPassword

Please copy the password from either location and paste it below.

 

위에 적혀져 있는대로

C:\Program Files (x86)\Jenkins\secrets 폴더에서 \initialAdminPassword 파일에 적힌 비밀번호를

Administrator password 칸에 입력하면 된다,

그 후 플러그인 설치 선택 창이 나온다.

나는 svn 쓸거라서 suggeste 를 선택했다.

(일단 기본으로 해보고 안되면 다시 설치)

 

 

그 다음 계정 정보 입력창( Create First Admin User )이 나온다.

알맞게 다 입력하면 Jenkins 메인화면이 나온다.

 

 

 

 

Post

VirtualBox 복사 붙여넣기

맨처음 VirtualBox를 깔면 호스트 <-> 게스트 간의 복사,붙여넣기가 되지 않는다.

 

 

 

 

 

 

해당 게스트 설정을 위와 같이 하면 복사, 붙여넣기가 잘 된다.

 

 

그런데 그전에 게스트 확장 CD 이미지 삽입을 해야한다.

일단 게스트 메뉴에서 장치 - 게스트 확장 CD 이미지 삽입을 누른다.

( 간혹 해상도 조절 모드가 되어서 상단 메뉴가 안보일 때가 있다.

그럴 땐 ctrl+alt+c 를 누르면 해상도 조절 모드에서 빠져나온다)

 

 



그리고 내 PC를 누르면 CD 드라이브(D)가 있다.

D드라이브 선택 후 vBoxWindwosAdditions 를 더블클릭해서 설치한다

(별다른 특별한 설정읎 없다. 그냥 next를 누르면된다)

 

설치 후 다시 시작된다.

그리고 양방향 복사 붙여넣기를 하면 아주 잘 된다.

 

 

 

Post

    public uint dwIndex

    {

        get

        {

            // 나중에 데이터 변환해야함..

            return dwIndex;

        }


        set

        {

            dwIndex = value;

        }

    }


dwIndex라는 필드에 값을 넣으니 스택오버플로우 에러가 났다.


StackOverflowException: The requested operation caused a stack overflow.

MsgText.set_dwIndex (UInt32 value) (at Assets/1_Scripte/Data/MsgText.cs:17)

MsgText.set_dwIndex (UInt32 value) (at Assets/1_Scripte/Data/MsgText.cs:17)

MsgText.set_dwIndex (UInt32 value) (at Assets/1_Scripte/Data/MsgText.cs:17)

MsgText.set_dwIndex (UInt32 value) (at Assets/1_Scripte/Data/MsgText.cs:17)

...


확인해보니 dwIndex는 선언된 변수가 아니라 자기가 가지고 있는 속성? 이고

그 속성에 값을 넣어주므로 계속 set이 호출된다는 것이다.

dwIndex = value;

=> 어? dwIndex 속성에 값을 넣어주네? set 프로퍼티 호출!

dwIndex = value;

=> 어? dwIndex 속성에 값을 넣어주네? set 프로퍼티 호출!

무한반복..

그래서 아래와 같이
필드를 선언하고, 그에 따른 프로퍼티 속성을 선언했다.
그리고 값을 넣어줄 때 속성을 넣어주니 더이상 스택 오버 플로우가 일어나지 않았다!

private uint dwIndex

public uint INDEX

{

get

      {

          // 나중에 데이터 변환해야함..

          return dwIndex;

      }


      set

      {

          dwIndex = value;

      }

}



'이전게시판 > C#' 카테고리의 다른 글

StreamReader 한글깨짐 오류  (0) 2018.08.10
배열보다 리스트가 좋은 이유  (0) 2017.04.30
C# var, 무명메서드, 람다식, LINQ 예제  (0) 2016.02.18

Post


StreamReader 한글깨짐 오류


유니티에서 csv 데이터를 읽는데 유독 한글만 깨졌다.

해결방법은 다음과 같다.


1. using System.Text; 포함

2. StreamReader reader = new StreamReader(Path, Encoding.Default);

StreamReader 생성 시 Encoding.Default 인자를 2번째로 인자로 넣어주기


Post

버츄얼박스 메뉴 

파일 - 환경설정 -입력

호스트 키 조합을 Ctrl + Alt

하고 나서 호스트 키 + C 하면 스케일 모드로 전환된다고 뜬다.

전환 누르면 virtualBox 화면 크기를 마음대로 조정할 수 있다

Post

구글 프로토콜 버퍼 C++ Window 예제 (Google Protocol buffer)
 
구글 프로토콜 버퍼 프로젝트 다운로드 url : https://github.com/google/protobuf/releases/tag/v2.6.1
c++ 튜토리얼 url : https://developers.google.com/protocol-buffers/docs/cpptutorial
 
이 글은 아래 구글 프로토콜 버퍼 유튜브 강의를 정리한 내용입니다. 
 
구글 프로토콜 버퍼 : 구글에서 만든 데이터 직렬화 라이브러리.
 
1. Window용 구글 프로토콜 버퍼 프로젝트 다운로드
아래 사이트에서 Protocol Buffers v2.6.1 Source code(zip) 다운로드 후 압축풀기
 
 
2. protoc.exe 파일 만들기
protobuf-2.6.1\vsprojects\protobuf.sln 을 실행한다.
(이 때 gtest, gtest_main은 컨버터 실패로 사용할 수 없음 떠도 안쓰니까 괜찮다)
libprotobuf, libprotoc 프로젝트 속성 - C/C++ - 전처리기 정의
_SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS 를 추가한다
libprotobuf, libprotoc, protoc 프로젝트를 빌드한다.(빌드성공)
 
빌드 후 프로젝트 Debug 폴더에 들어가면 protoc.exe 실행파일이 생성되어있다.
이제 폴더를 새로 만들고 새폴더 안에 넣는다.
(D드라이브에 만들었고 폴더 이름은 protobufapply이다.
위치는 D:\protobufapply)
 
3. proto 파일 만들고 h, cc 파일 생성
텍스트 파일을 생성한다. 이름은 addressbook.proto
그리고 proto 파일에 아래와 같이 입력한다.
syntax = "proto2";
 
package tutorial;
 
message Person {
  required string name = 1;
  required int32 id = 2;
  optional string email = 3;
 
  enum PhoneType {
    MOBILE = 0;
    HOME = 1;
    WORK = 2;
  }
 
  message PhoneNumber {
    required string number = 1;
    optional PhoneType type = 2 [default = HOME];
  }
 
  repeated PhoneNumber phones = 4;
}
 
message AddressBook {
  repeated Person people = 1;
}
 
 
그리고 cmd 창을 열고 다음 명령어 실행한다.
그러면 addressbook.pb.h, addressbook.pb.cc 파일이 생성되어있다.
protoc -I=. --cpp_out=. addressbook.proto
( 다음과 같이 사용하라고 적혀있다 protoc -I=$SRC_DIR --cpp_out=$DST_DIR $SRC_DIR/addressbook.proto )
 
4. 직렬화 샘플 프로젝트 생성
protobufapply 폴더안에 ProjectProto 폴더 생성한다.
그리고 ProjectProto 안에 새 vs 프로젝트를 생성한다.
(콘솔응용프로그램이고 EmptyProject, Precompiled header, Security Development 전부 체크 해제)
vs 프로젝트 폴더안에 addressbook.pb.cc , addressbook.pb.h 파일을 넣어준다.
프로젝트 소스파일에서도 넣어준다.
 
protobuf-2.6.1\vsprojects\protobuf.sln 솔루션 폴더에서 Debug 폴더 안에 있는 libprotobuf.lib 라이브러리를 복사해서
프로젝트 솔루션창에 붙여넣는다.
( 내 솔루션 폴더 위치 : D:\protobuf-2.6.1\protobuf-2.6.1\vsprojects\Debug )
 
그리고 
D:\protobuf-2.6.1\protobuf-2.6.1\src 위치를 복사 한 다음 
프로젝트 속성 - 구성속성 - VC++ 디렉터리 - 포함디렉터리에 
src 위치를 붙여넣는다.
그리고 빌드.
 
성공이라면 아무것도 없는 Main 함수 대신 
듀토리얼 페이지에 있는 샘플코드 Writing A Message 를 붙여넣는다.
빌드 성공이라면
프로젝트 속성 - 구성속성 - 디버깅 - 명령인수에 D:\protobufapply\myPhonebook.bin 입력.
 

프로젝트 실행 후 알맞은 데이터를 입력한다.

그리고 모든 입력을 마쳤다면 leave blank to finish 메시지가 보일 때 엔터를 눌러 빠져나온다.
그리고 D:\protobufapply 폴더로 가면 myPhonebook.bin 파일이 생성되어있다.
 
 
 
 
▲ top