반응형
1 개발환경 구축
1 개념
개발환경 구성 시 구현될 시스템 요구사항의 명확한 이해 필요
개발 도구와 서버 선정, 개발 도구의 사용 편의성과 성능, 라이선스 확인
2 분류
- 구현 도구: 코드 작성과 디버깅, 수정을 지원하는 도구
- Eclipse, IntelliJ, Sprint Tool Suite, NetBeans, Visual Studio
- 테스트 도구: 코드의 기능 검증과 전체 품질을 높이기 위해 사용하는 도구
- xUnit, PMD, Findbugs, Cppcheck, Sonar
- 형상관리 도구: 버전 관리를 위한 도구
- CVS, SVN, Git
- 빌드 도구: 작성한 코드의 빌드 및 배포를 수행하는 도구, 의존성 관리 지원
- Maven, Gradle
3 구성요소
1 하드웨어
웹 클라이언트 --요청--> 웹 서버 --처리 위임--> 웹 애플리케이션 서버 --결과 반환--> 웹 서버 --응답--> 웹 클라이언트
- 서버 하드웨어 개발 환경: 웹 서버, 웹 애플리케이션 서버, 데이터베이스 서버, 파일 서버로 구분
- 웹 서버: 정적 콘텐츠(CSS, Javascript, Image) 처리
- Apache 웹 서버, IIS 웹 서버, Google Web Server, Nginx
- 웹 애플리케이션 서버: 동적 콘텐츠(Servlet, JSP)를
- Tomcat, Weblogic, Jeus, Resin
- 데이터베이스 서버: 데이터의 수집, 저장 용도로 사용
- MySql, Oracle, MS-SQL, DB2
- 파일 서버: 물리 저장장치를 활용한 서버
- HDD, SSD
- 웹 서버: 정적 콘텐츠(CSS, Javascript, Image) 처리
- 클라이언트 하드웨어 개발 환경
- 클라이언트 프로그램: 사용자와 커뮤니케이션
- 웹 브라우저: 웹 사이트
- 모바일 앱: 모바일 디바이스에 설치되어 활용되는 애플리케이션
- 모바일 웹: 모바일에 최적화되어 제공되는 웹사이트
2 소프트웨어
- 운영체제: 서버의 하드웨어를 사용자 과넞ㅁ에서 편리하고 유용하게 사용하기 위한 소프트웨어
- 미들웨어: 컴퓨터 간 연결을 쉽고 안전하게 할 수 있도록 관리하는 소프트웨어
- DBMS: 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성하고, 관리하는 소프트웨어
3 형상 관리
소프트웨어 개발을 위한 전체 과정에서 발생하는 모든 항목의 변경 사항을 관리
절차
- 형상 식별: 형상 관리 대상 정의 및 식별
- 형상 통제: 통제 지원, 베이스라인 관리
- 형상 감사: 베이스라인 무결성 평가
- 형상 기록: 보고서 작성
목적
- 제품의 무결성과 변경에 대한 추적성 확보
- 프로젝트 변경사항 처리 메커니즘 제공
4 절차
- 통합 개발환경 설치
- 형상 관리 도구 설치
- 빌드 도구 설치
2 공통 모듈 구현
1 공통 모듈 구현
1 개념
기능을 분할하고 추상화하여 성능을 향상시키고, 유지보수를 효과적으로 하기위한 공통 컴포넌트 구현 기법
2 모듈
1 개념
독립된 하나의 스프트웨어 또는 하드웨어 단위
2 특징
- 독립성
- 재사용성
- 결합도 감소, 응집도 증가
3 모듈화
모듈로 분해하는 설계 및 구현 기법
- 루틴: 특정 동작을 수행
- 메인 루틴: 프로그램의 주요 부분
- 서브 루틴: 메인 루틴에 의해 필요할 때마다 호출되는 루틴
3 응집도
1 개념
모듈의 독립성, 하나의 모듈은 하나의 기능 수행
2 유형
- 우연적 응집도
- 논리적 응집도
- 시간적 응집도
- 절차적 응집도
- 통신적 응집도
- 순차적 응집도
- 기능적 응집도
4 결합도
1 개념
외부 모듈과의 연관도
2 유형
- 내용 결합도
- 공통 결합도
- 외부 결합도
- 제어 결합도
- 스템프 결합도
- 자료 결합도
5 절차
- DTO/VO
- SQL
- DAO
- Service
- Controller
- 화면 구현
- DTO(Data Transfer Object): 프로세스 사이에서 데이터를 전송하는 객체
- VO(Value Object): 고정 클래스 소유
- DAO(Data Access Object): 특정 타입의 데이터베이스에 추상 인터페이스 제공
6 팬인 및 팬아웃
1 개념
모듈을 계층적으로 분석하기 위해 활용
구분 | 팬인 | 팬아웃 |
---|---|---|
개념 | 어떤 모듈에서 호출하는 모듈 수 | 어떤 모듈에서 호출되는 모듈 수 |
모듈 숫자 계산 | 모듈이 들어오면 팬인 | 모듈이 나가면 팬아웃 |
고려사항 | 팬인 증가 -> 재사용 증가, 관리 비용 및 테스트 비용 증가, 단일 장애 발생 가능 | 팬아웃 증가 -> 불필요한 모듈 호출, 단순화 여부 검토 필요 |
2 공통 모듈 테스트
1 개념
통합 개발 환경을 활용하여 공통 모듈에 대한 디버깅 수행
화이트 박스 기법 활용
JUnit 활용
2 종류
- 화이트박스 테스트: 응용 프로그램의 내부 구조와 동작 검사
- 메서드 기반 테스트: 외부에 공개된 메서드 기반 테스트
- 화면 기반 테스트: 화면단위로 단위 모듈을 개발 하여 테스트
- 테스트 드라이버: 하위 모듈은 있지만 상위 모듈이 없는 경우 사용
- 테스트 스텁: 상위 모듈은 있지만 하위 모듈이 없는 경우 사용
3 구현
- JUnit 생성
- JUnit 코드 작성
- JUnit 실행
- JUnit 결과 확인
주요 어노테이션
- @Test: 테스트 메서드 선언
- @Before: @Test 실행 전 실행되는 코드
- @After: @Test 실행 후 실행되는 코드
- @BeforeClass: @Test 메서드보다 먼저 한 번 수행되어야할 경우
- @AfterClass: 마지막에 수행되는 경우
- @Ignore: 테스트에서 제외할 메서드
assert 메서드
- assertEquals(a, b); - 같은 값
- assertEquals(a, b, c); - 오차 범위
- assertSame(a, b); - 같은 객체
- assertTure(a);
- assertNotNull(a);
- assertArrayEquals(a, b);
3 서버 프로그램 구현
1 개념
서비스 제공에 필요한 업무 프로그램 구현
2 절차
- DTO, VO 구현: 화면에서 전달받은 회원정보로 데이터베이스에 저장하는 객체 구현
- SQL문 구현
- VO에서 정의한 객체 정보에 맞춰 정보가 저장될 테이블 정보 생성
- 회원 이름 검색 및 입력을 위한 SQL문 작성
- DAO 구현
- 서비스 클래스 구현
- 컨트롤러 클래스 구현
- 입출력 검증 로직 구현: 회원가입 성공/실패 시 다른 메시지 출력
4 배치 프로그램 구현
1 배치 프로그램
1 개념
사용자와의 상호작용 없이 일련의 작업들을 작업 단위로 묶어 정기적으로 반복 수행하거나 일괄 처리
2 필수 요소
- 이벤트 배치: 사전에 정의해 둔 조건 충족 시 자동으로 실행
- 온디맨드 배치: 사용자의 명시적 요구가 있을 때마다 실행
- 정기 배치: 정해진 시점에 정기적으로 실행
3 설계
- 배치 프로그램 관리대장 확인: 구현해야 할 배치 프로그램 기능 확인
- 배치 설계서 확인: 프로그램 관리 대장의 ID와 일치하는 배치 설계서 확인
2 배치 스케줄러
1 개념
일괄 처리를 위해 주기적으로 발생하거나 반복적으로 발생하는 작업을 지원하는 도구
2 종류
- 스프링 배치: 스프링 프레임워크의 3대 요소를 모두 사용할 수 있는 대용량 처리 스케줄러
- 쿼츠 스케줄러: 작업과 트리거를 분리하여 유연성을 제공하는 오픈 소스 기반 스케줄러
3 Corn 표현식
배치 수행 시간 설정
순서
- 초
- 분
- 시간
- 일
- 월
- 요일
- 연도(생략 가능)
특수 문자 의미
- *: 모든 수
- ?: 해당 항목 미사용
- -: 기간 설정
- ,: 특정 기간 설정
- /: 시작 시간과 반복 간격 설정
- L: 마지막 기간에 동작
- W: 가장 가까운 평일에 동작
- #: 주, 요일 설정
반응형
'자격증(IT) > 정보처리기사' 카테고리의 다른 글
2020 정보처리기사 실기 6. UI 설계 (0) | 2020.11.25 |
---|---|
2020 정보처리기사 실기 5. 인터페이스 구현 (0) | 2020.11.25 |
2020 정보처리기사 실기 3. 통합 구현 (0) | 2020.11.13 |
2020 정보처리기사 실기 2. 데이터 입출력 구현 (0) | 2020.11.13 |
2020 정보처리기사 실기 1. 요구사항 확인 (0) | 2020.11.13 |