https://ss-o.tistory.com/110#google_vignette
위 글 참고
현재 내가 보려고 만든 markdown노트를 그대로 올렸더니 조금 깨짐 현상이 있어서 수정중
개발 환경 구축
개발 도구 분류
- 구현 도구: 코드 작성과 디버깅 및 수정 작업
- 테스트 도구: 코드의 기능과 품질 향상(xUnit, PMD, Findbugs, Cppcheck, Sonar)
- 형상관리 도구: 코드와 산출물에 대한 버전 관리
- 빌드 도구: 코드의 빌드와 배포 수행(Gradle, Maven, Ant)
서버 하드웨어 개발 환경
| Client | Web Server | WAS | DB |
|---|---|---|---|
| Client 하드웨어 개발 환경 | 웹상의 정적 콘텐츠 HTTP를 이용한 요청/응답 |
동적 콘텐츠 | 데이터 수집 및 관리 |
소프트웨어 개발 환경
| 운영체제 | 미들웨어 | DBMS |
|---|---|---|
| 하드웨어와 사용자 인터페이스 | 컴퓨터와 컴퓨터를 연결 쉽고 안전하게 프로그램 사용 |
사용자 DB 사이 위치 |
- JVM: 시스템 메모리를 관리하고 자바 기반 Application을 위해 실행 환경 제공
형상 관리(SCM: Software Configuration Management)
- 소프트웨어 개발 과정에서 ==소프트웨어의 변경 사항을 관리하기 위해 개발된 일련의 활동==
- 소프트웨어 변경의 원인을 알아내고 제어하며 적절히 변경되고 있는지 확인하여 해당 담당자에게 통보
- 형상 관리는 소프트웨어 ==개발의 전 단계에 적용==되는 활동이며 유지보수 단계에서도 수행
- 형상 관리는 소프트웨어 개발의 전체 비용을 줄이고 개발 과정의 여러 방해 요인이 최소화되도록 보증하는 것을 목적으로 함
형상 관리 기능의 종류
- 형상 식별: 형상 관리 대상에 이름과 관리 번호를 부여하고 ==계층(tree) 구조==로 구분하여 수정 및 추척이 용이하도록 함
- 버전 제어: 소프트웨어 업그레이드나 유지 보수 과정에서 생성된 다른 버전의 형상 항목을 관리하고 이를 위해 ==특정 절차와 도구를 결합==하는 작업
- 형상 통제(변경 관리): 식별된 형상 항목에 대한 변경 요구를 검토하여 ==현재의 기준선(baseline)이 잘 반영될 수 있도록 조정==하는 작업
- 형상 감사: ==기준선의 무결성을 평가==하기 위해 확인, 검증, 검열 과정을 통해 공식적으로 승인하는 작업
- 형상 기록(상태 보고): 형상의 식별, 통제, 감사 작업의 결과를 기록 관리하고 보고서를 작성하는 작업
(단답형) - 베이스라인: 개발 과정의 각 단계에서 나온 산출물들의 변화를 통제하는 시점
공통 모듈 구현
- 모듈: 하나의 소프트웨어 또는 하드웨어 단위
- 소프트웨어 설계에서 기능 단위로 분해하여 추상화되어 재사용 및 공유가 가능한 단위
- 모듈화: ==모듈을 통해 소프트웨어의 성능을 향상시키고 디버깅, 수정, 통합을 용이하게 하는 설계 기법==
- 모듈화 기법: 루틴: 메인 루틴, 서브루틴
공통 모듈
- 기능을 분할하고 추상화하여 성능 향상 및 유지 보수를 효과적으로 하기 위한 공통 컴포넌트 구현 기법
- 공통 모듈 구현 비용
- 모듈 개수 증가 -> 통합 비용 증가
- 모듈 개수 감소 -> 개발 비용 증가
==결합도와 응집도==
- 결합도: 상호의존의 정도, 결합도가 약해야 품직이 상승
- 내공외제스자(>>>)
- 내용(content, 직접 참조/다른 모듈에서 사용) < 공통(common, 공유되는 공통 데이터 영역을 여러 모듈이 사용) < 외부(external, 외부의 다른 모듈에서 참조) < 제어(control, 다른 모듈에서 흐름을 제어) < 스탬프(stamp, 동일한 자료구조를 조회) < 자료(data, 매개 변수 데이터/완전 분리된 데이터)
- 응집도: 정보은닉, 응집도가 강할수록 품질이 좋음
- 기순교절시논우(>>>)
- 기능(단일 문제) > 순차(나온 출력 데이터를 그 다음 활동의 입력 데이터로 사용) > 교환(통신, 동일한 입출력을 사용하여 서로 다른 기능을 수행) > 절차(다수의 기능을 순차적으로 수행) > 시간(특정 시간에 처리되는 것이 모인 모듈) > 논리(유사한 성격) > 우연(서로 관련 없는 요소)
공동 모듈 구현 절차
DTO/VO -> SQL -> DAO -> Service -> Controller -> View
- DTO(Data Transfer Object): 프로세스 사이에서 데이터 전송
- VO(Value Object): 고정 클래스가 가지는 Object
- DAO(Data Access Object): 특정 타입의 DB의 추상 인터페이스를 제공하는 객체
MVC(Model View Controller) 패턴
| 생성 패턴 | 구조 패턴 | 행위 패턴 |
|---|---|---|
| 객체의 생성과 관련된 패턴 | 클래스나 객체들을 조합하여 더 큰 구조로 만들 수 있게 해주는 패턴 |
클래스나 객체들이 서로 상호작용하는 방법이나 책임 분배 방법을 정의하는패턴 |
| - 추상 팩토리 - 빌더 - 팩토리 메소드 - 프로토타입 - 싱글톤 |
- 어댑터 - 브리지 - 컴포지트 - 데코레이터 - 퍼싸드 - 플라이웨이트 -프록시 |
- 커맨드 - 인터프리터 - 반복자 - 중재자 - 메멘토 - 옵저버 - 전략 - 템플릿 메소드 - 방문자 |
- 추상 팩토리(Abstract Factory)
- 동일한 주제의 다른 팩토리를 묶어줌
- 구체적인 클래스에 의존하지 않고 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공하는 패턴
- 팩토리 메소드(Factory Method)
- 생성할 객체의 클래스를 국한하지 않고 객체를 생성
- 객체 생성 처리를 서브 클래스로 분리해 처리하도록 캡슐화하는 패턴
- 싱글톤(Singleton)
- 한 클래스에 한 객체만 존재하도록 제한
- 전역 변수를 사용하지 않고 객체를 하나만 생성하도록 하며 생성된 객체를 어디에서든지 참조할 수 있도록 하는 패턴
- 컴포지트(Composite)
- 0개, 1개 혹은 그 이상의 객체를 묶어 하나의 객체로 이용할 수 있음
- 여러 개의 객체들로 구성된 복합 객체와 단일 객체를 클라이언트에서 구별 없이 다루게 해주는 패턴
- 퍼싸드(Facade)
- 많은 분량의 코드에 접근할 수 있는 단순한 인터페이스를 제공
- 프록시(Proxy)
- 접근 조절, 비용 절감, 복잡도 감솔르 위해 접근이 힘든 객체에 대한 대역(대리)를 제공함
- 커맨드(Command)
- 위의 명령어를 각각 구현하는 것보다는 위 그림처럼 하나의 추상 클래스에 메서드를 하나 만들고 각 명령이 들어오면 그에 맞는 서브 클래스가 선택되어 실행되는 것
- 실행될 기능을 캡슐화함으로써 주어진 여러 기능을 실행할 수 있는 재사용성이 높은 클래스를 설계하는 패턴
- 옵저버(Observer)
- 어떤 클래스에 변화가 일어났을 때 이를 감지하여 다른 클래스에 통보해주는 것
- 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에게 연락이 가고 자동으로 내용이 갱신되는 패턴
- 템플릿 메소드(Template Method)
- 상위 클래스에서는 추상적으로 표현하고 그 구체적인 내용은 하위 클래스에서 결정되는 디자인 패턴
- 어떤 작업을 처리하는 일부분을 서브 클래스로 캡슐화해 전체 일을 수행하는 구조는 바꾸지 않으면서 특정 단계에서 수행하는 내역을 바꾸는 패턴
팬 인 팬 아웃
- 소프트웨어의 구성 요소인 모듈을 계층적으로 분석하기 위해서 팬 인, 팬 아웃 활용
- 팬 인: 해당 모듈로 들어가는 모듈의 수(제어하는 수)
- 팬 아웃: 해당 모듈에서 나가는 모듈의 수(제어되는 수)
공통 모듈 테스트: 화이트 박스 테스트 // IDE 도구를 활용하여 디버깅 진행
- 화이트박스 검사: 내부 구조와 동작을 검사
- 블랙박스: 내부코드를 보지 않고 입력값에 목표 결과값이 나오는지 등을 확인(요구사항 확인)
배치 프로그램
사용자와 상호작용 없이 일련의 작업을 작업 단위로 묶어 정기적으로 반복 수행하는 일괄 처리 방법
배치 스케쥴러: 일괄처리를 위해 주기적으로 발생시키는 작업 지원 도구
스프링 배치: 대용량 처리를 제공하는 스케쥴러
쿼츠 스케쥴링: 플러그인을 통해 유연성을 제공하는 오픈 소스 기반 스케쥴러
Cron 표현식: 스케쥴러를 실행시키기 위해 작업이 실행되는 주기를 설정하는 표현식
유형: 이벤트 배치, 온디멘드 배치, 정기 배치
- 온디멘드 배치: 사용자의 명시적 요구가 있을 때마다 실행하는 방법
- 정기 배치: 정해진 시점에 실행하는 배치
배치 프로그램이 가지는 필수 요소
- 배치 프로그램: 컴퓨터 프로그램 흐름에 따라 순차적으로 자료를 처리하는 방식
- 업무의 효율성과 비효율적인 시스템의 과부하를 줄이기 위해 사용
- 대용량 데이터: 대용량 데이터를 처리할 수 있어야 함
- 자동화: 심각한 오류 상황 외에는 사용자의 개입 없이 동작해야 함
- 견고성: 유효하지 않은 데이터의 경우도 처리해서 비정상적인 동작 중단이 발생하지 않아야 함
- 안정성: 어떤 문제가 생겼는지 언제 발생했는지 등을 추적할 수 있어야 함
'정보처리기사' 카테고리의 다른 글
| [정보처리기사 실기] 데이터 입출력 구현 (0) | 2026.07.17 |
|---|---|
| [정보처리기사] 정보처리기사 필기 후기 및 실기 시험 준비 (0) | 2026.07.06 |