일지
-
젠킨스...18일지 2020. 11. 3. 21:49
CI 브랜치 전략 브랜치를 나누어 테스트가 완료된 코드와 개발 중인 코드를 분리할 수 있다. 브랜치의 종류와 역할은 다음과 같다. 마스터 브랜치 모든 테스트를 통과 후 배포가 완료된 브랜치 통합 브랜치 개발이 완료된 기능을 통합 후 테스트하기 위한 브랜치 기능 브랜치 마스터 브랜치 혹은 통합 브랜치에서 분화된 기능의 개발을 위한 브랜치 CI 파이프라인 지속적으로 빌드, 테스트, 정적 코드 분석 및 빌드 결과물을 바이너리 저장소에 업로드하는 것을 자동화하는 것을 목적으로 한다. 각각에 필요한 도구는 다음과 같다. 빌드 도구 Ant, Maven, Gradle ... 테스트 도구 JUnit, Selenium, Pywinauto ... CI 도구 Jenkins, Bamboo, TeamCity ... 버전 관리 ..
-
JUNGOL...18일지 2020. 11. 3. 20:24
Language_Code/반복제어문3/형성평가1 문제 정수 20 개를 입력받아서 그 합과 평균을 출력하되 0 이 입력되면 20개 입력이 끝나지 않았더라도 그 때까지 입력된 합과 평균을 출력하는 프로그램을 작성하시오. 평균은 소수부분은 버리고 정수만 출력한다.(0이 입력된 경우 0을 제외한 합과 평균을 구한다.) 입력 예 5 9 6 8 4 3 0 출력 예 35 5 FormativeLoop301.h #include FormativeLoop301.cpp void FormativeLoop301::Code() { int var; int sum{ 0 }, count{ 0 }; do { std::cin >> var; if (var == 0) { break; } sum += var; count++; } while (c..
-
인터프리터...10일지 2020. 11. 2. 21:17
토큰 추출 단어를 추출하고 해당 단어를 표현할 수 있도록 토큰에 정보를 저장한다. 이때 실제 값으로 저장할 변수 외에 텍스트로 입력된 값을 저장해 둘 변수를 따로 두면 오류 메시지 등에 사용할 수 있다. 가령 "1 + 3"이라는 문자가 들어왔을 때 이를 토큰으로 추출하면 다음과 같이 표현할 수 있다. 1 + 3 종류 Number Plus Number 텍스트 '1' '+' '3' 값 1 0 3 토큰 추출 시 여러 정보를 추출하게 되며 그 종류와 추출 방법은 다음과 같다. 식별자 문자열이 문자로 시작된 경우 문자열의 끝 혹은 공백이 나타날 때까지 문자를 읽은 뒤 해당 문자들이 예약어에 존재하는지 확인 후 존재하면 해당 예약어로 아니면 식별자로 저장한다. 수치 상수 문자열이 숫자로 시작된 경우 숫자가 아닌 문..
-
자료구조...28일지 2020. 11. 2. 20:52
기능 메서드 구현 자료구조를 효율적으로 사용하기 위한 기능 메서드를 구현한다. SinglyCircularLinkedList.cpp /// /// 지정한 값을 포함한 노드가 존재하는지 확인한다. /// /// 찾을 값 /// 값의 존재 여부 bool SinglyCircularLinkedList::Contains(int value) { if (m_head != nullptr) { SinglyCircularLinkedListNode* curNode{ m_head }; do { if (curNode->m_data == value) { return true; } curNode = curNode->m_next; } while (curNode != m_head); } return false; } /// /// 지정한..
-
젠킨스...17일지 2020. 11. 2. 20:43
소나큐브란? 소나큐브는 코드가 커밋될 때마다 해당 코드에 대해 코드 분석을 수행하며 이를 통해 코드의 품질을 유지할 수 있도록 도움을 준다. 다음과 같은 설정을 할 수 있다. 아키텍처 및 디자인 중복 단위 테스트 복잡성 잠재적 버그 코딩 규칙 주석 아티팩토리란? CI는 빌드와 패키징이 빈번하게 일어나기 때문에 버전 관리 시스템과 같이 바이너리 코드를 관리해야 하며 아티팩토리는 젠킨스와 결합해 다음과 같은 기능을 제공한다. 빌드 추적 의존성 배포 히스토리 더보기 참고문헌 초보를 위한 젠킨스 2 활용 가이드 2/e니킬 파타니아(Nikhil Pathania) 상세보기
-
JUNGOL...17일지 2020. 11. 1. 16:49
Language_Code/반복제어문3/자가진단1 문제 자연수 n을 입력받고 1부터 홀수를 차례대로 더해나가면서 합이 n 이상이면 그 때까지 더해진 홀수의 개수와 그 합을 출력하는 프로그램을 작성하시오. 입력 예 100 출력 예 10 100 BasicLoop301.h #include BasicLoop301.cpp void BasicLoop301::Code() { int n; std::cin >> n; int sum{ 0 }, count{ 0 }, num{ 1 }; for (int num = 1; sum < n; num += 2) { sum += num; count++; } std::cout
-
자료구조...27일지 2020. 11. 1. 16:26
데이터 삭제 메서드 구현 데이터 삭제 연산에 필요한 메서드들을 구현한다. SinglyCircularLinkedList.cpp /// /// SinglyCircularLinkedList에서 가장 처음 일치한 지정된 값을 포함한 노드를 제거한다. /// /// 제거할 값 bool SinglyCircularLinkedList::Remove(int value) { if (m_head != nullptr) { SinglyCircularLinkedListNode* curNode{ m_head }; do { if (curNode->m_data == value) { Remove(curNode); return true; } curNode = curNode->m_next; } while (curNode != m_head)..
-
자료구조...26일지 2020. 10. 31. 12:25
데이터 삽입 메서드 구현 데이터 삽입 연산에 필요한 메서드들을 구현한다. SinglyCircularLinkedList.cpp /// /// SinglyCircularLinkedList의 시작 위치에 지정한 값이 포함된 새 노드를 추가한다. /// /// 추가할 값 void SinglyCircularLinkedList::Add(int value) { SinglyCircularLinkedListNode* newNode{ PopNode(value) }; Add(newNode); } /// /// SinglyCircularLinkedList의 시작 위치에 지정한 노드를 추가한다. /// /// 추가할 새 노드 void SinglyCircularLinkedList::Add(SinglyCircularLinkedLi..