1. TDD에 관한 조사 A. 테스트 주도 개발이란? 테스트 주도 개발(test-driven development, TDD)은 소프트웨어 개발 방법론 중의 하나로, 선 개발 후 테스트 방식이 아닌 선 테스트 후 개발 방식의 프로그래밍 방법을 말한다. 다시 말해 먼저 자동화된 테스트 코드를 작성한 후 테스트를 통과하기 위한 코드를 개발하는 방식의 개발 방식을 말한다.[1] TDD에서는 제품의 기능 구현을 위한 코드와 별개로, 해당 기능이 정상적으로 움직이는지 검증하기 위한 테스트 코드를 작성한다. 이를 통해 테스트가 실패할 경우, 테스트를 통과하기 위한 최소한으로 코드를 개선한다. 최종적으로 테스트에 성공한 코드를 리팩토링 하는 과정을 거친다.[2]TDD를 잘 사용하면, 전체 코드를 완성하기 전에 기능 단..
IPFS란? IPFS는 파일, 웹 사이트, 응용 프로그램 및 데이터를 저장하고 액세스하기 위한 분산 시스템이다. 먼저, 땅돼지 연구를 하고 있다고 가정보자. 우선, 땅돼지의 위키백과 페이지를 방문하는 것으로 시작한다. https://en.wikipedia.org/wiki/Aardvark Aardvark - Wikipedia Medium-sized, burrowing, nocturnal mammal native to Africa The aardvark ( ARD-vark; Orycteropus afer) is a medium-sized, burrowing, nocturnal mammal native to Africa.[2][3] It is the only living species of the order ..
brew unistall mysql을 통해서 Mysql을 지우고 다시 깔았지만, 비밀번호는 그대로 남아있어서 사용이 불가능했었다. 우선 실행중인 상태의 Mysql 서버를 종료시켜준다. mysql.server stop 다음 비밀번호 없이 mysql에 접속하기 위하여, 아래 명령어를 입력해준다. mysqld_safe --skip-grant-tables 다음 root유저로 Mysql에 접속하여 준다. mysql -u root 다음 mysql db를 사용하도록 설정한다. use mysql; 다음 비밀번호를 null로 초기화 시켜준다. UPDATE user SET authentication_string=null WHERE User='root'; 다음 권한을 업데이트해준다. FLUSH PRIVILEGES; 다음 e..
RDB를 너무 오랫만에 사용하다보니 비밀번호와 세팅을 모두 까먹어버렸다. 찾는거 보다 지우고 다시 까는 것이 빠를 것 같아서, mysql을 재설치 해보려고 한다. M1 mac에 설치할 예정이다. 당연히 맥북을 사용하면, brew를 통해서 mysql을 설치해준다. brew instll mysql 정말 간단하게 설치 되는 것을 확인 할 수 있다. 다음으로 설치가 잘 되었는지를 확인하기 위해서, mysql을 실행시켜보자. mysql.server start 성공적으로 잘 실행되는 것을 확인할 수 있다.
MDE를 활용한 사례 중, Lockheed Martin의 항공 소프트웨어 사례를 분석해보면, F-16을 개발하기 위해서 OMG의 MDA를 활용하여, 여러 플랫폼에 사용이 가능하고 생산성과 품질을 높이는 소프트웨어 개발을 하였다. 이때, 사용한 툴은 Kennedy Carter’s iCCG, UML, MDA(OMG)를 사용했다. F-16은 다음과 같은 소프트 웨어 아키텍처를 가지고 있었다.[1] 이때, Application Software가 전체 소프트웨어의 80~90%를 차지하고 있었고, 아래 Hardware, Software Execution Platform, Application Software Interface는 자주 변경되는 부분이였다. 따라서, 하위의 Application Software Inte..
위의 그림은 소프트웨어 품질 생명주기를 나타낸 그림이다. 소프트웨어 제품 품질을 달성하기 위해 소프트웨어 제품을 평가하는 것은 소프트웨어 개발 생명주기의 한 과정이다. 소프트웨어 제품 품질은 내부 속성을 측정함으로써, 혹은 외부 속성에 의해 평가될 수 있으며, 그 목적은 특정한 사용용도에서 요구한 효과를 내도록 하는 것이다. 프로세스 품질 개선은 제품 품질의 개선을 가져오고, 제품 품질은 사용 품질의 개선을 가져온다. 그러므로, 프로세스를 평가하고 개선하는 것이 중요하다. 따라서, 적절한 품질 평가 프로세스는 개발 동안에 품질측정하는데 필요하다. ISO/IEC 9126의 이 부분은 품질과 관련된 문제점에 대한 점검표를 제시한다. ISO/IEC 9126은 총 4개의 부분으로 나누어져 있으며 ISO/IEC ..
i. 테스트를 위한 함수 작성하기 ii. 스위트 선언 iii. 테스트 레지스터리를 초기화 iv. 테스트 레지스터리에 스위트를 추가 v. 스위트에 테스트 추가 vi. 적절한 인터페이스 선택후 실행 테스트 vii. 테스트 레지스터 정리 테스트 진행할 코드 두 값을 더하는 add함수의 테스트를 진행해보자. int add(int a,int b){ return a+b } 1. 테스트를 위한 함수 작성하기-간단하게 더하기 함수를 작성하였다 CU_ASSERT_EQUAL([함수(,)], [예측값])를 이용하여 함수와 예측값을 넣어준다. void testAdd(void){ CU_ASSERT_EQUAL(add(1,1),2); } 2. 스위트 선언하기 CU_Psuite를 통해서 스위트를 선언해준다. CU_pSuite sui..
"가장 기본적인 실행 단위"는 C언어에서 함수(Function)에 해당한다.Unit Test Automation은 두가지로 구분된다. Blackbox Testing과Whitebox Testing으로 나뉜다. Black box testing 블랙박스 검사는 소프트웨어 검사 방법 중 하나로 어떤 소프트웨어를 내부 구조나 작동 원리를 모르는 상태에서 소프트웨어의 동작을 검사하는 방법을 이르는 말이다. 주로 올바른 입력과 올바르지 않은 입력을 일일이 다 동원하여 올바른 출력을 판별하는 방식으로 검사가 이루 어지기 때문에 검사의 진행에 있어 대상이 되는 소프트웨어의 코드나 내부 구조 및 개발 노하우에 대한 정보는 기본적으로 필요로 하지 않는다. 필요한 것은 특징, 요구 사항, 검사를 위해 공개된 설계도 등 대외적..
CMMI는 소프트웨어와 시스템 공학의 역량 성숙도를 평가하는 모델이다. CMMi와 유사한 국내의 평가모델로는 SP인증이 있다. 소프트웨어 프로세스 품질인증(SP인증)은 소프트웨어산업진흥법 제23조에 근거하여 국내 소프트웨어 기업의 소프트웨어 사업 수행능력을 강화하고 소프트웨어 사업의 부실방지를 목적으로 기업의 소프트웨어 개발단계별 작업절차 및 산출물 관리 역량 등을 분석하여 소프트웨어 개발 프로세스 역량 수준을 평가 및 인증하는 제도이다. SP인증은 대기업에 비해 상대적으로 열악한 환경에 처해있는 중소기업의 소프트웨어 품질개선 활동을 지원하고자 만들어진 제도로 CMMI를 참조하여 개발되었으나, 중소기업에서 보다 수월하게 활용할 수 있도록 내용을 축약하였다.[1] 과학기술정보통신부에서 정책을 지원, 관리,..
Requirements의 구분 -FR(Functional Requirement) : Statements of services the system should provide -NFR(Non Functional Requirement)(Quality) : 전체 시스템이 나왔을 때 판별이 가능하다. Quality가 대표적이며, 이외에는 Safetym Security, Reliablility등이 있다. NFR이 FR보다 중요한 경우가 존재한다. NFR은 전체 시스템의 아키텍처 디자인에 영향을 끼치며, NFR을 정의하는 과정에서 많은 FR들이 생겨난다. -User Requirements(User로 부터 도출되고 User-Level에서 정해진다, High-Level) : 다양한 Stackholder가 관여한다. 대체..