반응형

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
  • 클라이언트 하드웨어 개발 환경
    • 클라이언트 프로그램: 사용자와 커뮤니케이션
    • 웹 브라우저: 웹 사이트
    • 모바일 앱: 모바일 디바이스에 설치되어 활용되는 애플리케이션
    • 모바일 웹: 모바일에 최적화되어 제공되는 웹사이트

2 소프트웨어

  • 운영체제: 서버의 하드웨어를 사용자 과넞ㅁ에서 편리하고 유용하게 사용하기 위한 소프트웨어
  • 미들웨어: 컴퓨터 간 연결을 쉽고 안전하게 할 수 있도록 관리하는 소프트웨어
  • DBMS: 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성하고, 관리하는 소프트웨어

3 형상 관리

소프트웨어 개발을 위한 전체 과정에서 발생하는 모든 항목의 변경 사항을 관리

절차

  1. 형상 식별: 형상 관리 대상 정의 및 식별
  2. 형상 통제: 통제 지원, 베이스라인 관리
  3. 형상 감사: 베이스라인 무결성 평가
  4. 형상 기록: 보고서 작성

목적

  • 제품의 무결성과 변경에 대한 추적성 확보
  • 프로젝트 변경사항 처리 메커니즘 제공

4 절차

  1. 통합 개발환경 설치
  2. 형상 관리 도구 설치
  3. 빌드 도구 설치

2 공통 모듈 구현

1 공통 모듈 구현

1 개념

기능을 분할하고 추상화하여 성능을 향상시키고, 유지보수를 효과적으로 하기위한 공통 컴포넌트 구현 기법

2 모듈

1 개념

독립된 하나의 스프트웨어 또는 하드웨어 단위

2 특징

  • 독립성
  • 재사용성
  • 결합도 감소, 응집도 증가

3 모듈화

모듈로 분해하는 설계 및 구현 기법

  • 루틴: 특정 동작을 수행
  • 메인 루틴: 프로그램의 주요 부분
  • 서브 루틴: 메인 루틴에 의해 필요할 때마다 호출되는 루틴

3 응집도

1 개념

모듈의 독립성, 하나의 모듈은 하나의 기능 수행

2 유형

  1. 우연적 응집도
  2. 논리적 응집도
  3. 시간적 응집도
  4. 절차적 응집도
  5. 통신적 응집도
  6. 순차적 응집도
  7. 기능적 응집도

4 결합도

1 개념

외부 모듈과의 연관도

2 유형

  1. 내용 결합도
  2. 공통 결합도
  3. 외부 결합도
  4. 제어 결합도
  5. 스템프 결합도
  6. 자료 결합도

5 절차

  1. DTO/VO
  2. SQL
  3. DAO
  4. Service
  5. Controller
  6. 화면 구현
  • DTO(Data Transfer Object): 프로세스 사이에서 데이터를 전송하는 객체
  • VO(Value Object): 고정 클래스 소유
  • DAO(Data Access Object): 특정 타입의 데이터베이스에 추상 인터페이스 제공

6 팬인 및 팬아웃

1 개념

모듈을 계층적으로 분석하기 위해 활용

구분 팬인 팬아웃
개념 어떤 모듈에서 호출하는 모듈 수 어떤 모듈에서 호출되는 모듈 수
모듈 숫자 계산 모듈이 들어오면 팬인 모듈이 나가면 팬아웃
고려사항 팬인 증가 -> 재사용 증가, 관리 비용 및 테스트 비용 증가, 단일 장애 발생 가능 팬아웃 증가 -> 불필요한 모듈 호출, 단순화 여부 검토 필요

2 공통 모듈 테스트

1 개념

통합 개발 환경을 활용하여 공통 모듈에 대한 디버깅 수행

화이트 박스 기법 활용

JUnit 활용

2 종류

  • 화이트박스 테스트: 응용 프로그램의 내부 구조와 동작 검사
  • 메서드 기반 테스트: 외부에 공개된 메서드 기반 테스트
  • 화면 기반 테스트: 화면단위로 단위 모듈을 개발 하여 테스트
  • 테스트 드라이버: 하위 모듈은 있지만 상위 모듈이 없는 경우 사용
  • 테스트 스텁: 상위 모듈은 있지만 하위 모듈이 없는 경우 사용

3 구현

  1. JUnit 생성
  2. JUnit 코드 작성
  3. JUnit 실행
  4. 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 절차

  1. DTO, VO 구현: 화면에서 전달받은 회원정보로 데이터베이스에 저장하는 객체 구현
  2. SQL문 구현
    1. VO에서 정의한 객체 정보에 맞춰 정보가 저장될 테이블 정보 생성
    2. 회원 이름 검색 및 입력을 위한 SQL문 작성
  3. DAO 구현
  4. 서비스 클래스 구현
  5. 컨트롤러 클래스 구현
  6. 입출력 검증 로직 구현: 회원가입 성공/실패 시 다른 메시지 출력

4 배치 프로그램 구현

1 배치 프로그램

1 개념

사용자와의 상호작용 없이 일련의 작업들을 작업 단위로 묶어 정기적으로 반복 수행하거나 일괄 처리

2 필수 요소

  • 이벤트 배치: 사전에 정의해 둔 조건 충족 시 자동으로 실행
  • 온디맨드 배치: 사용자의 명시적 요구가 있을 때마다 실행
  • 정기 배치: 정해진 시점에 정기적으로 실행

3 설계

  1. 배치 프로그램 관리대장 확인: 구현해야 할 배치 프로그램 기능 확인
  2. 배치 설계서 확인: 프로그램 관리 대장의 ID와 일치하는 배치 설계서 확인

2 배치 스케줄러

1 개념

일괄 처리를 위해 주기적으로 발생하거나 반복적으로 발생하는 작업을 지원하는 도구

2 종류

  • 스프링 배치: 스프링 프레임워크의 3대 요소를 모두 사용할 수 있는 대용량 처리 스케줄러
  • 쿼츠 스케줄러: 작업과 트리거를 분리하여 유연성을 제공하는 오픈 소스 기반 스케줄러

3 Corn 표현식

배치 수행 시간 설정

순서

  1. 시간
  2. 요일
  3. 연도(생략 가능)

특수 문자 의미

  • *: 모든 수
  • ?: 해당 항목 미사용
  • -: 기간 설정
  • ,: 특정 기간 설정
  • /: 시작 시간과 반복 간격 설정
  • L: 마지막 기간에 동작
  • W: 가장 가까운 평일에 동작
  • #: 주, 요일 설정
반응형

+ Recent posts