개발/자격증 공부

정보처리기사 오답 정리(12. 서버 프로그램 구현)

잠수돌침대 2023. 1. 6. 18:00

1. 개발환경 구축

형상 통제

  • 형상 항목의 버전 관리를 위해 변경 여부와 변경 활동을 통제하는 활동
  • 형상통제는 형상 항목의 형상 관리를 위해 형상통제위원회(CCB)를 구성하며, 소프트웨어 변경의 요구, 평가, 승인이 이루어진다.

개발 도구의 분류

1. 빌드 도구

  • 작성한 코드의 빌드 및 배포를 수행하는 도구
  • 각각의 구성요소와 모듈에 대한 의존성 관리를 지원

2. 구현 도구

  • 코드의 작성과 디버깅, 수정 등과 같은 작업과 구현소프트웨어가 어떤 프로그래밍 언어로 개발되는지 선택
  • 프로그램을 개발할 때 가장 많이 사용되는 도구

3. 테스트 도구

  • 코드의 기능 검증과 전체의 품질을 높이기 위해 사용하는 도구
  • 코드의 테스트, 테스트에 대한 계획, 수행 및 분석 등의 작업 기능

4. 형상 관리 도구

  • 개발자들이 작성한 코드와 리소스 등 산출물에 대한 버전 관리를 위한 도구
  • 프로젝트 진행 시 필수로 포함되는 도구

서버의 종류

1. 웹 서버

  • HTTP를 이용한 요청/응답을 처리
  • 웹 상의 정적 콘텐츠(CSS, Javascript, Image)를 처리
  • Apache 웹 서버, IIS 웹 서버, Google Web Server 등이 존재

2. 웹 애플리케이션 서버

  • 동적 콘텐츠(Servlet, JSP)를 처리하기 위해 사용
  • Tomcat, Weblogic 등이 존재

3. 데이터베이스 서버

  • 데이터의 수집, 저장을 위한 용도로 사용
  • MySQL, Oracle, MS-SQL 등이 존재

4. 파일 서버

  • 물리 저장장치를 활용한 서버
  • 대용량 HDD, SSD 등의 장치가 존재

클라이언트 하드웨어 개발환경

1. 클라이언트 프로그램

  • 설치를 통해 사용자와 커뮤니케이션하는 프로그램
  • Visual Basic, C#, Delphi 등으로 개발되어 사용

2. 웹 브라우저

  • 웹 서비스 형태로 서버에서 웹 애플리케이션 응답 시 브라우저를 통해 사용자와 커뮤니케이션함
  • 일반적인 형태의 웹 사이트가 해당

3. 모바일 앱

  • 모바일 디바이스에 설치되어 활용되는 애플리케이션
  • App Store, Android Market 등을 통해 다운로드 가능

4. 모바일 웹

  • 웹 브라우저와 동일한 형태로 모바일상 웹 브라우저를 통해 서비스 제공
  • 모바일에 최적화되어 제공되는 웹사이트가 해당

2. 공통 모듈 구현

모듈

  • 모듈의 기능적 독립성은 소프트웨어를 구성하는 각 모듈의 기능이 독립됨을 의미함
  • 모듈이 하나의 기능만을 수행하고 다른 모듈과의 과도한 상호작용을 배제함으로 이루어진다.
  • 모듈 간결합도는 낮게, 응집도는 강하게 만드는 것이 좋음

1. 결합도

  • 모듈 내부가 아닌 외부의 모듈과의 연관도, 모듈 간의 상호의존성. 낮을수록 좋음

2. 응집도

  • 모듈의 독립성을 나타내는 개념. 높을수록 좋음

응집도 유형

1. 우연적 응집도

  • 모듈 내부의 각 구성요소들이 연관이 없을 경우

2. 논리적 응집도

  • 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우

3. 시간적 응집도

  • 연관된 기능이라기보다는 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리할 경우

4. 절차적 응집도

  • 모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성요소들이 그 기능을 순차적으로 수행할 경우

5. 통신적 응집도

  • 동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여 있을 경우

6. 순차적 응집도

  • 모듈 내에서 한 활동으로부터 나온 출력값을 다른 활동이 사용할 경우

7. 기능적 응집도

  • 모듈 내부의 모든 기능이 단일한 목적을 위해 수행되는 경우

위의 7가지 응집도는 아래로 내려갈수록 강해짐(좋아짐)

응집도 : 우논시절 통순기

결합도 유형

1. 내용 결합도

  • 다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우

2. 공통 결합도

  • 파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고 전역 변수를 갱신하는 식으로 상호작용하는 경우

3. 외부 결합도

  • 두 개의 모듈이 외부에서 도입된 데이터 포맷, 통신 프로토콜, 또는 디바이스 인터페이스를 공유할 경우

4. 제어 결합도

  • 단순 처리할 대상인 값만 전달되는 게 아니라 어떻게 처리를 해야 한다는 제어 요소가 전달되는 경우

5. 스탬프 결합도

  • 모듈 간의 인터페이스로 배열이나 객체, 구조 등이 전달되는 경우

6. 자료 결합도

  • 모듈 간의 인터페이스로 전달되는 파라미터를 통해서만 모듈 간의 상호작용이 일어나는 경우

위의 7가지 결합도는 아래로 내려갈수록 낮아짐(좋아짐)

결합도 : 내공 외제 스자

  • 팬 인(Fan in) : 어떤 모듈을 제어하는 모듈의 수
  • 팬 아웃(Fan Out) : 어떤 모듈에 의해 제어되는 모듈의 수

3. 서버 프로그램 구현

데이터베이스 객체 종류

1. DAO(Data Access Object)

  • 특정 타입의 데이터베이스에 추상 인터페이스를 제공하는 객체로 세부내용 노출 없이 데이터 조작

2. DTO(Data Transfer Object)

  • 프로세스 사이에서 데이터를 전송하는 객체로 데이터 저장/회수 외에 다른 기능이 없음
  • 간단한 엔티티를 의미하는 작은 객체 기반 클래스

3. VO(Value Object)

  • DTO와 달리 고정 클래스를 가짐

4. 배치 프로그램 구현

배치 프로그램

  • 사용자와의 상호작용 없이 일련의 작업들을 작업 단위로 묶어 정기적으로 반복 수행하거나 정해진 규칙에 따라 일괄 처리하는 방법
  • 대량건의 데이터를 특정 시간에 일괄적으로 처리하는 것이 핵심임