전자정부 표준 프레임워크_3(개발환경 테스트구조, 형상관리 및 CI서버)

bitna's study note·2022년 11월 22일

스프링

목록 보기
47/54

11월 22일

1.개발환경 테스트 구조

(1)테스트란?
테스트 대상에 임의값을 넣었을때 그 결과가 성공 혹은 실패로 결과를 내서 실패 하실 에러를 잡아내는 행위이다.

(2)테스트 도구
소프트웨어를 개발하는 중심에는 개발자가 있고 개발자가 코드를 효율적으로 작성하고 품질을 높일수 있도록 도와주는것이 '개발환경'인데 특히 '테스트도구'는 개발자가 코드의 품질을 높일 수 있도록 도와주는 도구 이다.
테스트도구에는 JUnit Test, Mock, DB Test Framework을 통해 TestCase 작성을 지원하고,
테스트수행에는 Test Coverage 분석과 Test Annotation, Test Reporting등의 기능을 제공함.

(3)테스트코드 작성법

개발자가 개발코드를 작성할때 개발코드를 대상으로 테스트 케이스를 작성 할 수 가 있는데, 그거는 Unit Test Framework가 제공함. 또한 Mock Test를 위하여 Mock Framework 도 제공함.
DAO와 DB에 걸쳐진 퍼시스던트 레이어를 테스트 할수 있는 DB Test Framework를 제공하여 DB의 연결 또는 데이터 초기화,트렌잭션 처리등 DB관련 데스트를 위한 DB Test Framework를 제공함.

테스트 수행에는 작성한 테스트 코드를 수행하여 성공 및 실패를 알려줌.

(4)Unit Test
Unit Test란 개발한 코드중에 테스트 하고자 작성한 테스트코드로써
주로 특정 메서드를 테스트 하기 위함인데, 그메소드가 잘돌아가는지 그결과가 기대값과 일치하는지 확인하는 형태 이다.
Unit Test는 서로 독립적으로 수행 되어야 한다.

(5)Mock
Mock 객체는 Unit Test의 독립성을 높여주기 위해 사용하며,
테스트가 필요한 코드와 관련이 있는 객체를 흉내내어 마치 진짜 객체가 있는것처럼 Unit Test를 수행할수 있도록 도와주는 객체

*Mock 필요할때
진짜 객체가 아직 안 만들어 졌을때 사용.


1단계: 객체를 설명하기위한 인터페이스를 사용을 함.
2단계: 제품코드에 맞게 1단계 인터페이스를 구현
3단계: 테스트케이스를 Mock객체의 인터페이스를 구현하면 됨.

(6)DB Test
DB Test는 DAO와 DB 모두를 통틀어 Persistence layer를 테스트 하는 것을 말하며, 테스트DB와 테스트 데이터를 준비하여 실제로 DB를 이용한 단위테스트를 수행 함.

(7)Test Automation
작성된 다수의 TestCase를 자동으로 수행하여 소스 단위의 품질을 높이고자 함.

2.형상관리

형상관리란 소스코드를 문서화 하고 변경을 통한 소스 버젼관리 절차에 따라 관리하고 코드의 회복과 백업을 효율적으로 하기위한 통제환경을 의미 합니다.

-소스 및 데이터에 대한 변경 사항을 관리.
-버젼을 관리하고 배포도구를 통해 변경사항을 배포한다.
-또한 일정 주기에 백업도구를 통해 백업을 수행한다.

(1)SVN(Subversion)
-오픈소스 기반의 소스버젼 관리도구이다.
-SVN은 저장소의 개념인 Repository개념이 존재하는데,모든 프로젝트의 프로그램 소스들과 소스에 대한 변경사항이 저장되는 물리적인 공간임.

(2)Revisions
소스 파일 등을 수정하여 커밋하게 되면 일정한 규칙에 의해 숫자가 증가하는데 이걸 Revisions 라고 한다. Repository 저장된 각각의 파일 버전이라고 할수 있고,
파일별로 번호가 매겨지는게 아니라 변경이 발생할때 마다 전체 리비젼 번호가 계속 바뀜

그래서 Revisions을 보고 프로젝트 진행사항을 볼수 있음.

(3)소스공유도 가능함.

(4)Checkout
저장소에서 전체 소스의 최종 리비젼 버젼으로 개인 로컬영역으로 받아오는 것

(5)Update
최종버젼을 내려 받고 이후 다른사람에 의해 소스가 변경되어 리비젼이 변경된 경우 다시 최신버젼의 소스를 가져오는 것

(6)Commit
소스 코드를 받아서 수정한뒤 다시 Repository에 변경된 소스코드를 갱신 하는 것
커밋을 하면 전체 리비젼의 숫자가1씩 증가한다.

(7)History 조회
SVN에 저장된 시점부터 과거에 모든 리비젼(갱신) 내역을 조회 할수 있다.

(8)충돌
본인이 올린 소스와 타인이 올린소스가 충돌이 일어나게 됨.

3.CI(Continuous Integration)서버

여러명으로 구성된 팀이 작업한 것을 자주 통합 하는것을 말함.
application 개발자의 개발 루틴은 coding->Build->Test->Deploy(최종결과물을 특정장소에 저장하는걸 Deployment:배포)로 진행 되는데
여기서 Build->Test->Deploy 이 과정을 자동으로 해주는 프로그램은 CI서버라고 한다.

profile
좋은개발자가 되기위한 삽질기록 노트

0개의 댓글