Ⅳ. 서버프로그램 구현 - 알고가기!!
- 개발 도구의 분류 ( Tip. 빌 구 테 형 )
- 빌드 도구 : 작성한 코드의 빌드 및 배포 수행 / 각 구성요소와 모듈에 대한 의존성 관리 지원.
- 구현 도구 : 개발 코드작성, 디버깅, 수정 등 작업 지원 도구.
- 테스트 도구 : 코드의 기능 검증, 전체 품질을 높이기 위한 도구.
- 형상관리 도구 : 코드와 리소스 등 산출물에 대한 버전관리 도구.
- 델파이 기법
- 전문가의 경험적 지식을 통한 문제해결을 위한 기법.
- 브레인 스토밍
- 소속된 인원들이 자발적으로 자연스럽게 제시된 아이디어 목록을 통해서 연계 요구사항 도출하는 기법.
- 체크리스트
- 시스템 운영환경, 성능, 보안, 데이터 발생 주기 등 점검을 통해 요구사항을 도출하는 기법.
- 개체정의서
- 데이터베이스 개념모델링 단계에서 도출한 개체의 타입과 관련 속성, 식별자 등의 정보를 개괄적으로 명세화한 정의서.
- WAS [Web Application Server]
- 사용자 요청 스레드를 처리하고, 데이터 베이스에 접속하여 SQL 쿼리문에 대한 결과 값을 반환하는 역할을 수행하는 서버.
- 테이블 정의서
- 논리 및 물리 모델링 과정에서 작성하는 설계 산출물로 테이블을 구성하는 칼럼들의 특성, 인덱스(Index), 업무 규칙을 문서화한 것.
- 연계시스템
- 송신 시스템과 수신 시스템으로 구성할 수 있으며 연계 방식에 따라 중계 서버를 둘 수 있다
- 인터페이스 정의서
- 송신시스템과 수신 시스템 간의 인터페이스 방식, 주기 등을 기록한 현황을 작성.
- 연계 데이터 표준화
- 인터페이스 시스템 사이에서 교환되는 데이터는 규격화된 표준 형식을 정의하여 사용하는 규칙.
- 인터페이스 데이터 표준 ( Tip. 공 개 종 )
- 인터페이스 데이터 공개부 / 인터페이스 데이터 개별부 / 인터페이스 데이터 종료부
- JVM [Java Virtual Machine]
- 시스템 메모리를 관리하면서 자바 기반 애플리케이션을 위해 이식 가능한 실행 환경을 제공하는 소프트웨어.
- 컨테이너 [Container]
- JSP와 서블릿을 실행시킬 수 있는 소프트웨어.
- 연계솔루션(EAI)
- 실제 송수신 처리와 진행 현황을 모니터링 및 통제하는 서버
- 웹 서비스 방식의 유형
- SOAP (Simple Object Access Protocol) : HTTP, HTTPS, SMTP 등을 사용하여 XML 기반의 메시지를 네트워크 상태에서 교환하는 프로토콜.
- WSDL (Web Service Description Language) : 웹서비스명, 제공위치, 메시지포맷, 프로토콜 정보 등 웹서비스에 대한 상세정보를 기술한 파일로 XML 형식.
- UDDI (Universal Description, Discovery And Integration) : 웹서비스 정비인 WSDL을 등록/검색하기 위한 저장소.
- 소켓통신
- 연결을 생성하여 포트를 할당하고, 클라이언트의 요청을 연결하여 통신하는 기법.
- 형상관리 절차 ( Tip. 식 통 감 기 )
- 형상 식별 : 형상관리 대상 정의 및 식별
- 형상 통제 : 변경요구 관리, 변경제어, 형상관리 등 통제
- 형상 감사 : 소프트웨어 베이스라인 무결성 평가 / 요구사항 일치 검토
- 형상 기록 : 각종 형상 및 변경 수행결과 기록 / 형상결과 보고서 작성
- 브랜치 [Branch]
- 여러 개발자들이 동시에 다양한 작업을 할 수 있게 만들어 주는 기능.
- 각자 독립적인 작업영역(저장소) 안에서 마음대로 소스 코드를 변경 할 수 있는 기능.
빌드 도구 : 작성한 코드의 빌드 및 배포 수행 / 각 구성요소와 모듈에 대한 의존성 관리 지원.
구현 도구 : 개발 코드작성, 디버깅, 수정 등 작업 지원 도구.
테스트 도구 : 코드의 기능 검증, 전체 품질을 높이기 위한 도구.
- 형상관리 도구
- 코드와 리소스 등 산출물에 대한 버전관리 도구.
- 개발자들이 작성한 코드와 리소스등 산출물에 대한 버전관리를 위해 사용되는 도구.
- 형상관리도구는 소프트웨어 프로젝트에서 나오는 결과물을 관리하는 소프트웨어이다.
- 웹서버
- HTTP를 이용한 요청/응답을 처리
- 웹 상의 정적 콘텐츠 처리
- 웹 어플리케이션 서버 [WAS]
- 동적 콘텐츠를 처리
- 데이터베이스 서버
- 데이터의 수집, 저장을 위한 용도
- 파일서버
- 물리 저장장치를 활용한 서버
- 클라이언트 프로그램
- 설치를 통해 사용자와 커뮤니케이션하는 프로그램
- 웹 브라우저
- 웹 서비스의 형태로 서버에서 웹 애플리케이션을 응답시 브라우저를 통해서 사용자와 커뮤니케이션
- 모바일 앱
- 모바일 디바이스에 설치되어 활용되는 애플리케이션
- 모바일 웹
- 웹 브라우저와 동일한 형태로 모바일상 웹 브라우저를 통해 서비스 제공
- 운영체제
- 서버의 하드웨어를 사용자 관점에서 편리하고 유용하게 사용하기 위한 소프트웨어
- 미들웨어
- 웹 서비스는 WEB, WAS 서버를 설치하여 사용자 요구사항에 적합한 서비스 제공
- 주로 자바 기반 환경에서 JVM 을 설치하여 컨테이너로의 기능을 주로 이용
- DBMS
- 데이터의 저장 및 활용을 위함
- 공통모듈 [Common Module]
- 특정 기능을 처리할 수 있는 실행코드
- 자체적으로 컴파일이 가능하고 다른 프로그램에서 재사용이 가능
- 응집도 유형 ( Tip. 우 논 시 절 통 순 기 )
- 우연적 응집도 : 모듈 내부 각 구성요소 연관 없음.
- 논리적 응집도 : 유사한 성격, 특정 현태로 분류.
- 시간적 응집도 : 특정 시간에 처리 되어야 하는 활동들.
- 절차적 응집도 : 모듈안 구성요소들이 기능을 순차적으로 수행.
- 통신적 응집도 : 동일한 입력 ∙ 출력을 사용하여 다른 기능을 수행하는 활동이 모임.
- 순차적 응집도 : 모듈내 한 활동의 출력값을 다른 활동이 사용.
- 기능적 응집도 - 모듈내 모든 기능이 단일 목적으로 수행.
- 웹서비스 방식
- 네트워크에 분산된 서비스 정보를 서비스 형태로 개방하여 표준화된 방식으로 공유하는 기술
- REST
- HTTP URI를 통해 자원을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 생성, 조회, 갱신, 삭제 등의 명령을 적용하는 것.
- 결합도 유형 ( Tip. 내 공 외 제 스 자 )
- 내용 결합도 : 다른 모듈의 변수나 기능을 사용.
- 공통 결합도 : 전역변수를 갱신하는 식으로 상호 작용.
- 외부 결합도 : 두개의 모듈이 외부에서 도입된 데이터 포맷, 통신프로토콜, 인터페이스 를 공유.
- 제어 결합도 : 처리할 대상인 값만이 아닌 어떻게 처리할지 제어요소가 전달되는 경우.
- 스탬프 결합도 : 모듈간 인터페이스로, 배열, 객체, 구조 등이 전달.
- 자료 결합도 : 모듈간 인터페이스 파라미터를 통해서만 상호작용.
- DAO [Data Access Object]
- 특정 타입의 데이터베이스에 추상 인터페이스를 제공하는 객체
- DTO [Data Transfer Object]
- 프로세스 사이에서 데이터를 전송하는 객체로 데이터 저장•회수 외에 다른 기능이 없는 객체
- VO [Value Object]
- 간단한 엔티티를 의미하는 작은 객체 가변클래스인 DTO와 달리 고정클래스를 가지는 객체
- 서비스 [Service]
- 사용자의 요청을 처리하는 기능을 제공하기 위한 로직을 구현하고 DAO 클래스를 통해서 DB연동을 처리하는 기능을 수행
- 화이트 박스 [Whitebox] 기법
- 프로그램의 로직을 이해하고, 내부 구조와 동작을 검사하는 소프트웨어 테스트 방식
- 공통모듈 테스트 종류 ( Tip. 화 메 화 드 스 )
- 화이트박스 테스트 : 응용프로그램 내부 구조와 동작을 검사하는 SW 테스트 방식
- 메서드 기반 테스트 : 외부에 공개된 메서드 가반의 테스트
- 화면 기반 테스트 : 화면에 직접 입력하여 테스트 수행
- 테스트 드라이버 / 테스트 스텁
- 테스트 드라이버 : 하위모듈은 있으나 상위 모듈이 없는경우 수행
- 테스트 스텁 : 상위모듈은 있지만 하위모듈은 없는경우 수행
- 메서드 [Method]
- 메서드는 클래스에서 정의된 여러 종류의 변수들을 사용하여 정해진 기능들을 싱행 할 수 있도록 코드를 선언한 것.
- JUnit
- 자바 프로그래밍 언어용 단위 테스트 도구
- 어노테이션 [Annotation]
- 자바코드에 주석을 달아 특별한 의미를 부여한 메타데이터의 일종
- 보통 @ 기호를 앞에 붙여 사용
- 결합도
- 모듈 내부가 아닌 외부의 모듈과의 연관도 또는 모듈 간의 상호 의존성
- 소프트웨어 구조에서 모듈간의 관련성을 측정하는 척도
- 우연적 응집도
- 모듈 내부의 각 구성요소들이 연관이 없을 경우
- 논리적 응집도
- 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우
- 시간적 응집도
- 연관된 기능이라기보다는 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리 할 경우
- 절차적 응집도
- 모듈이 다수의 관련 기능을 가질때 모듈안의 구성요소들이 그 기능을 순차적으로 수행할 경우
- 통신적 응집도
- 동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여 있을 경우
- 순차적 응집도
- 모듈 내에서 한 활동으로부터 나온 출력값을 다른 활동이 사용할 경우
- 기능적 응집도
- 모듈 내부의 모든 기능이 단일한 목적을 위해 수행되는 경우
- 내용 결합도
- 다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우
- 공통 결합도
- 파라미터가 아닌 모듈 밖에 선언되어 있는 전역변수를 참조하고 전역 변수를 갱신하는 식으로 상호작용하는 경우
- 외부 결합도
- 두 개의 모듈이 외부에서 도입된 데이터 포맷, 통신 프로토콜, 또는 디바이스 인터페이스를 공유할 경우
- 제어 결합도
- 단순 처리할 대상인 값만 전달되는게 아니라 어떻게 처리를 해야 한다는 제어 요소가 전달되는 경우
- 스탬프 결합도
- 모듈 간의 인터페이스로 배열이나 객체, 구조 등이 전달되는 경우
- 자료 결합도
- 모듈간의 인터페이스로 전달되는 파라미터를 통해서만 모듈 간의 상호작용이 일어나는 경우
- MVC패턴
- Model(모델) : 애플리케이션이 무엇을 할 것인지 정의 / 내부 비지니스 로직을 처리 하기 위한 역할
- Controller(컨트롤러) : 모델이 어떻게 처리할지를 알려주는 역할 / 뷰에 명령을 보내어 화면 요청 결과를 전달
- View(뷰) : 화면에 무엇인가를 보여주기 위한 역할
- 화이트 박스 테스트 [Whitebox Test]
- 응용프로그램 내부구조와 동작을 검사하는 소프트웨어 테스트 방식
- 메서드 기반 테스트
- 공통 모듈의 외부에 공개된 메서드 기반의 테스트
- 메서드에 서로 다른 파라미터 값을 호출하면서 다양한 테스트를 수행
- 화면 기반 테스트
- 사용자용 화면이 있는 경우, 각각의 화면단위로 단위 모듈을 개발 후에 화면에 직접 데이터를 입력하여 테스트 수행
- 화면기반테스트는 화면과 연게된 서비스, 비지니스 컴포넌트 및 공통 컴포넌트를 한꺼번에 단위 테스트에 참여
- 장점 : 사용자 시나리오에 기반한 공통모듈 테스트가 가능
- 테스트 드라이버[Driver] / 테스트 스텁 [Stub]
- 기능을 테스트할 수 있는 화면 또는 하위 모듈이 구현되지 않은 경우 테스트 드라이버, 테스트 스텁을 통해 테스트 수행
- 테스트 드라이버 : 하위모듈은 있지만 상위 모듈은 없는 경우 사용
- 테스트 스텁 : 상위 모듈은 있지만 하위 모듈이 없는 경우 사용
- Fan-In (팬인)
- 어떤 모듈을 제어(호출)하는 모듈의 수
- Fan-In이 높으면 재사용 측면에서 설계가 잘되었지만, 단일 장애점 발생 가능
- Fan-In이 높으면 관리 비용 및 테스트 비용 증가
- Fan-Out (팬아웃)
- 어떤 모듈에 의해 제어(호출)되는 모듈의 수
- Fan-Out이 높을 경우 불필요한 모듈 호출 여부 검토 필요
- Fan-Out이 높을 경우는 단순화 여부 검토 필요
- 루틴 [Routine]
- 소프트웨어에서 특정 동작을 수행하는 일련의 코드로서 기능을 가진 명령어의 모임
- 백엔드 [Back-End]
- 사용자와 만나지 않고 프론트엔드와 연동하여 핵심 로직을 처리하는 영역
- 서버프로그램 구현 절차 ( Tip. 디 스 다 써 콘 )
- DTO/VO
- SQL문
- DAO
- Service
- Controller
- API
- 송신 시스템의 DB에서 데이터를 읽어서 제공하는 애플리케이션 프로그래밍 인터페이스 프로그램
- 연계테스트
- 송신 시스템과 수신시스템을 연계하였을 경우 데이터의 정합성과 데이터 전송 여부에 대한 테스트
- DAO [Data Access Object]
- 특정 타입의 데이터베이스에 추상 인터페이스를 제공하는 객체로 세부 내용 노출 없이 데이터 조작
- DTO [Data Transfer Object]
- 프로세스 사이에서 데이터를 전송하는 객체로 데이터 저장, 회수 외에 다른 기능 없음
- VO [Value Object]
- 간단한 엔티티를 의미하는 작은 객체 가변 클래스인 DTO와 달리 고정 클래스를 가짐
- ORM [Object Relation Mapping]
- 객체지향 언어인 자바의 관계형 DB 프로그래밍을 좀 더 쉽게 할 수 있게 도와주는 개발 프레임 워크.
- 배치프로그램 유형 ( Tip. 이 온 정 )
- 이벤트 배치 : 지정된 조건 충족시 실행
- 온디맨드 배치 : 사용자의 명시적 요구 발생시 실행
- 정기 배치 : 정해진 시점에 정기적으로 실행
- Cron 표현식 - ( Tip. 초 분 일 시 월 요 연 )
- 초, 분, 일, 시간, 월, 요일, 연도
- EAI
- 기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션들 간의 정보 전달, 연계, 통합을 가능하게 해 주는 솔루션
- ESB
- 기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션들 간을 하나의 시스템으로 관리, 운영 할 수 있도록 서비스 중심의 통합을 지향하는 아키텍처 또는 기술
- 느슨한결합
- 특정 서비스를 변경하더라도 연결된 다른 서비스에는 영향을 주지 않는 유연한 구조
- 배치프로그램
- 사용자와의 상호작용 없이 일련의 작업들을 작업 단위로 묶어 정기적으로 반복 수행하거나 정해진 규칙에 따라 일괄 처리하는 방법.
- 스프링배치 [Spring Batch]
- 스프링 프레임워크의 DI, AOP, 서비스 추상화 등 스프링 프레임워크의 3대 요소를 모두 사용할 수 잇는 대용량 처리를 제공하는 스케줄러
- 쿼츠 스케줄러[Quartz Scheduler]
- 스프링 프레임워크에 플러그인되어 수행하는 작업과 실행 스케줄을 정의하는 트리거를 분리하여 유연성을 제공하는 오픈소스 기반 스케줄러
- 형상관리 개념
- 소프트웨어 개발을 위한 전체 과정에서 발생하는 모든 항목의 변경사항을 관리하기 위한 활동.
- 미들웨어 [Middle Ware]
- 컴퓨터와 컴퓨터간의 연결을 쉽고 안전하게 할 수 있또록 해주고 이에 대한 관리를 도와주는 소프트웨어
- 자바 기반환경에서 JVM을 설치하여 컨테이너로의 기능을 주로 이용
- 소프트웨어 형상관리 베이스라인 개념
- 개발과정의 각 단계의 산출물을 검토, 평가, 조정, 처리등 변화를 통제하는 시점의 기준
- 정보처리기사 필기 합격 후 실기대비 정리 및 책없이 간단히 보기위해 작성하였습니다.
- 2020년 수제비 정보처리기사 책 기반으로 정리 하였습니다.
- 저작권 관련 문제가 있다면 hojunbbaek@gmail.com 으로 메일 주시면 바로 삭제 조치 하도록 하겠습니다.
[정보처리기사 실기] Ⅳ. 기사실기 요약 / 정리 / 단답 / Tip / 알고가기!! (feat.수제비)