일지
-
자료구조...10일지 2020. 10. 6. 09:21
연결 자료구조 메모리에 연속적으로 저장되어 연결되는 것이 아니라 각 원소가 가진 포인터를 통해 다음 원소를 가리키는 것으로 연결된다. 순차 자료구조의 삽입과 삭제에 추가 연산이 필요하고 메모리 사용에 비효율적이라는 문제를 개선한 방법이다. 노드 자료구조에서는 연결 자료구조의 표현을 위한 데이터와 다음 원소를 가리키는 포인터의 묶음으로 이루어진 구조를 노드라고 한다. 데이터를 저장하는 부분을 데이터 필드(Data Field), 포인터 부분을 링크 필드(Link Field)라고 한다. 다음의 순차 자료구조로 표현된 데이터를 연결 자료구조로 표현하면 다음과 같이 표현된다. - 순차 자료구조 표현 인덱스 0 1 2 3 데이터 10 20 30 40 - 연결 자료구조 표현 ※ 연결 자료구조는 인덱스를 저장하는 것이..
-
젠킨스...3일지 2020. 10. 3. 13:17
젠킨스 잠금 해제 젠킨스 설치 이후 최초 젠킨스 페이지 접속 시 초기 비밀번호를 이용해 잠금을 해제해야 한다. 초기 비밀번호는 젠킨스 설치 위치의 로그 파일에서 확인할 수 있다. 젠킨스 설치 시 기본 설치 위치 32 bit - C:\Program Files (x86)\Jenkins 64 bit - C:\Program Files\Jenkins 로그 파일에서 찾아야 하는 내용 ************************************************************* ************************************************************* ************************************************************* Je..
-
젠킨스...2일지 2020. 10. 2. 16:22
젠킨스 설치 젠킨스는 다음과 같은 여러 방법을 통해 설치 및 실행이 가능하다. 서블릿 컨테이너 톰캣, 요나, 제타 등 스탠드얼론 애플리케이션 윈도우, 우분트, 레드햇, 페도라 리버스 프록시 서버 Nginx 도커 - 윈도우에 스탠드얼론 젠킨스 설치 자바 설치 자바 사이트에서 최신 버전의 자바 JRE를 다운로드하여 설치한다. 이후 커맨드 창에서 다음 명령을 실행해 자바가 잘 설치됐는지 확인한다. java -version 이후 환경변수 설정을 위해 다음 명령을 실행해 자바 설치 경로를 확인한 뒤 복사해둔다. where java 커맨드 창을 관리자 권한으로 다음 명령을 실행해 환경변수에 추가한다. setx -m JAVA_HOME "복사해둔 경로" 젠킨스 설치 젠킨스 사이트에서 최신 안정 버전 젠킨스를 다운로드 ..
-
젠킨스...1일지 2020. 10. 1. 14:14
젠킨스란? 소프트웨어 개발 시 지속적 통합(Continuous Integration, 이후 CI) 서비스를 제공하는 툴이다. 젠킨스는 소프트웨어의 빌드, 테스트, 배포와 관련된 모든 종류의 작업을 자동화하는 데 사용할 수 있는 독립형 오픈소스 자동화 서버입니다. - Jenkins User Documentation 중 CI란? 개발자들이 작업한 내용(Commit)을 하나의 브랜치로 통합(Merge)하고 빌드하는 개발 방식을 말한다. 지속적인 통합은 초기에 그리고 자주 통합해서 "통합의 지옥"의 함정을 피하는 것을 내포하고 있다. 지속적인 통합은 재작업을 줄여서 비용과 시간을 줄이는데 초점이 맞추어져 있다. - 위키백과.지속적 통합 중 CI의 구성 요소 버전 관리 시스템 코드의 이력을 관리하는 툴로 SVN,..
-
자료구조...9일지 2020. 10. 1. 12:58
ArrayList 기능 메소드 구현 자료구조를 효율적으로 사용할 수 있는 기능을 추가한다. ArrayList.cpp /// /// ArrayList에 지정한 값이 존재하는지 확인한다. /// /// ArrayList에서 찾을 값 /// 값의 존재 여부 bool ArrayList::Contains(int value) { return IndexOf(value) != -1; } /// /// ArryList을 앞에서 부터 지정한 값을 검사해 인덱스를 반환한다. /// /// ArrayList에서 잦을 값 /// 값의 인덱스(없으면 -1) int ArrayList::IndexOf(int value) { for (int i = 0; i < m_count; i++) { if (m_items[i] == value) ..
-
자료구조...8일지 2020. 9. 30. 14:43
ArrayList 데이터 삭제 메소드 구현 데이터 삭제의 경우 공간을 축소하는 동작은 하지 않는다. 즉, 기존에 공간(Capacity)이 5인 ArrayList에 삽입 동작을 통해 공간이 10으로 증가했을 때, 다시 데이터를 삭제한다고 해서 공간을 5로 줄이는 동작은 하지 않는다. ArrayList.cpp /// /// ArrayList에서 가장 먼저 발견되는 값을 제거한다. /// /// 제거할 값 void ArrayList::Remove(int value) { // 저장된 값에서 지정된 값의 인덱스를 찾아 제거한다. for (int i = 0; i < m_count; i++) { if (m_items[i] == value) { MoveToLeft(i); return; } } } /// /// Arra..
-
자료구조...7일지 2020. 9. 28. 08:36
ArrayList 데이터 삽입 메소드 구현 기본적으로 ArrayList는 데이터를 삽입할 수 있는 공간(Capacity)이 정해져 있다. 그렇기에 기본적으로 데이터를 삽입하면 빈 공간에 데이터를 삽입하는 형태가 된다. - 원본 데이터 인덱스 0 1 2 3 4 데이터 10 20 30 40 - 데이터 삽입 시 빈 공간 있는 경우 인덱스 0 1 2 3 4 데이터 10 20 30 40 50 데이터 삽입 메소드가 호출되었는데 빈 공간이 없는 경우에는 데이터를 저장할 공간을 두배로 늘리고 기존 데이터를 옮긴 후 데이터를 삽입하게 된다. - 삽입 시도 시 데이터 부족한 경우 인덱스 0 1 2 3 4 5 6 7 8 9 데이터 10 20 30 40 50 new! new! new! new! new! 인덱스 0 1 2 3 ..
-
자료구조...6일지 2020. 9. 27. 17:38
ArrayList.cpp 생성자, 속성 구현 생성자를 구현했으며 기타 함수의 바디도 만들었다. 데이터를 테스트 하기 위한 PrintInfo 메서드를 추가했다. ArrayList.h #pragma once #include #include class ArrayList { public: #pragma region 생성자 ArrayList(size_t capacity = 10); ArrayList(const ArrayList& other); #pragma endregion #pragma region 속성 // ... #pragma endregion #pragma region 메소드 // ... #pragma endregion private: #pragma region 변수 // ... #pragma endreg..