개인 스터디/정리

[정보처리기사 실기] 17. 개발 환경 구축~18. 모듈 구현

you__me 2025. 5. 8. 15:57

 

17. 개발 환경 구축

 

1. 개발 환경 구축

  • 개발 환경 구축 : 개발 환경 구성 시 구현될 시스템 요구사항의 명확한 이해와, 개발 도구 및 서버 선정
  • 개발 도구 분류
    • 빌드 도구 : 작성한 코드의 빌드 및 배포 수행
    • 구현 도구 : 코드의 작성, 디버깅, 수정 등과 같은 작업
    • 테스트 도구 : 코드의 기능 검증과 전체의 품질을 높이기 위해 사용
    • 형상 관리 도구 : 개발자들이 작성한 코드와 리소스 등 산출물에 대한 버전 관리
  • 개발 환경 구성요소
    • 서버 하드웨어 개발 환경
      • Web Server : HTTP 또는 HTTPS를 통해 웹 브라우저에서 요청하는 정적 콘텐츠를 처리 -> Apache 웹 서버, Google Web Server, Nginx 등
      • WAS : 서버 계층에서 애플리케이션이 동작할 수 있는 환경을 제공하고 동적 콘텐츠를 처리 -> Tomcat, Jeus, Resin, Gunicorn 등
      • DB : 데이터의 수집, 저장 -> MySQL, Oracle, Ms-SQL, DB2 등
      • File Server : 파일을 저장하고 관리, 대용량 HDD, SSD등의 장치 존재
    • 클라이언트 하드웨어 개발 환경
      • 클라이언트 프로그램 : 설치를 통해 사용자와 커뮤니케이션. Visual Basic, C#, Delphi 등으로 개발
      • 웹 브라우저 : 웹 서비스 형태로 사용자와 커뮤니케이션
      • 모바일 앱 : 모바일 디바이스에 설치되어 활용
      • 모바일 웹 : 웹 브라우저와 동일한 형태로 모바일 상의 웹 브라우저를 통해 서비스 제공
    • 소프트웨어 개발 환경
      • 운영체제 : 프로젝트의 성격에 따른 운영체제 사용
      • 미들웨어 : 컴퓨터 간의 연결을 쉽고 안전하게 관리. JAVA 기반 환경에서 JVM을 설치해 컨테이너로의 기능을 이용
      • DBMS : 데이터의 저장 및 활용을 위해 DBMS를 설치
  • 형상 관리 : 소프트웨어 개발 과정에서 발생하는 모든 항목의 변경 사항을 관리
  • 형상 관리 목적 : 제품의 무결성과 변경에 대한 추적성 확보
  • 형상 관리 절차
    • 형상 식별 : 형상 관리 대상을 정의 및 식별, ID와 관리번호를 부여
    • 형상 통제 : 변경요구 관리, 변경제어, 현상 관리 등의 통제를 지원
    • 형상 감사 : 소프트웨어 베이스라인의 무결성을 평가
    • 형상 기록 : 소프트웨어 형상 및 변경관리에 대한 수행결과를 기록
  • 베이스라인 : 개발 과정 산출물의 변화를 통제하는 기준이 되는 시점
  • 소프트웨어 형상 관리 도구 유형
    • 공유 폴더 방식(RCS, SCCS) : 개발이 완료된 파일을 약속된 위치의 공유 폴더에 복사
    • 클라이언트/서버 방식(CVS, SVM) : 중앙에 버전 관리 시스템을 항시 동작
    • 분산 저장소 방식(Git) : 로컬 저장소와 원격 저장소로 분리되어 분산 저장
  • 소프트웨어 형상 관리 도구별 특징
    • RCS : 소스 파일의 수정을 한 사람만으로 제한하여 수정을 동시에 할 수 없도록 파일 잠금 방식으로 형상 관리 도구
    • CVS : 중앙 집중형 식별 저장소를 두고 클라이언트가 접속해 버전 관리 실행
    • CVS 주요 기능
      • 변경 사항 동기화 : 명령어를 이용한 서버 저장소와 클라이언트의 변경 사항 전송 기능 제공
      • 파일 단위 관리 : diff를 통해 파일 내용 비교 및 관리
    • SVN : 중앙 집중형 클라이언트-서버 장식으로 CVS의 단점 보완
    • SVN 주요 기능
      • CVS 기능 제공
      • 바이너리 파일 관리 : 실행파일과 같은 바이너리 파일도 지원
      • 롤백 기능 지원
    • Git : 리누스 토발즈가 리눅스 커널의 개발을 위해 만든 형상 관리 시스템
    • Git 주요 기능
      • 로컬/원격 현상 관리 : 로컬 저장소와 원격 저장소로 분리되어 분산 저장
      • 롤백 기능 지원
  • 백업 : 데이터를 복제하여 안전하게 보관하는 기법
  • 백업 유형
    • 전체 백업 : 백업받고자 하는 데이터 전체에 대해 백업
    • 차등 백업 : 마지막 전체 백업 이후 변경된 모든 데이터를 백업
    • 증분 백업 : 정해진 시간을 기준으로 그 이후에 변경된 파일만을 백업

 


18. 모듈 구현

 

1. 모듈 구현

  • 재사용(Reuse) : 개발 시간 및 비용 절감을 위해 검증된 기능을 파악하고 재구성하여 시스템에 응용하기 위한 최적화 작업
  • 재사용 종류
    • 재공학 : 기존 소프트웨어의 기능을 개선하거나 새로운 소프트웨어로 재활용
    • 재개발 : 기존 시스템 내용을 참조하여 완전히 새로운 시스템을 개발
  • 모듈 : 그 자체로 하나의 완전한 기능을 수행할 수 있는 독립된 실체
  • 모듈 특징 : 독립성이 높을 수록 영향을 미치지 않고, 오류 발생 시에도 쉽게 해결. 결합도는 약하게, 응집도는 강하게 개발
  • 모듈화 : 소프트웨어의 성능을 향상시키거나 복잡한 시스템의 관리가 용이하도록 모듈로 분해
  • 모듈화 기법
    • 루틴 : 소프트웨어에서 특정 동작을 구행하는 일련의 코드
    • 메인 루틴 : 프로그램의 주요 부분으로, 전체의 개략적인 동작 절차를 표시
    • 서브 루틴 : 메인 루틴에 의해 필요할 때마다 호출되는 루틴
  • 응집도 : 모듈 내부 구성요소 간 연관 정도
  • 응집도 유형(낮은 -> 높은)
    • 우연적 응집도 : 모듈 내부의 각 구성요소가 연관이 없음
    • 논리적 응집도 : 유사한 겅격을 갖는 처리 요소들이 한 모듈에서 처리
    • 시간적 응집도 : 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리
    • 절차적 응집도 : 모듈 안의 구성요소들이 기능을 순차적으로 수행
    • 통신적(교환적) 응집도 : 동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동이 모임
    • 순차적 응집도 : 모듈 내에서 한 활동의 출력값을 다른 활동의 입력값으로 사용
    • 기능적 응집도 : 모듈 내부의 모든 기능이 단일한 목적을 위해 수행
  • 결합도 : 외부의 모듈과의 연관도 또는 모듈 간의 상호의존성
  • 결합도 유형(높은 -> 낮은)
    • 내용 결합도 : 다른 모듈 내부의 변수나 기능을 또 다른 모듈에서 사용
    • 공통 결합도 : 모듈 밖에 선언되어 있는 전역 변수를 참조 및 갱신
    • 외부 결합도 : 외부 모듈에서 선언한 데이터를 외부의 다른 모듈에서 참조
    • 제어 결합도 : 다른 모듈의 내부 논리 조직을 제어하기 위한 목적으로 제어 신호를 이용하여 통신
    • 스탬프 결합도 : 모듈 간의 인터페이스로 배열, 객체, 구조 등이 전달
    • 자료 결합도 : 모듈 간의 인터페이스로 전달되는 파라미터를 통해서만 상호작용이 일어남
  • 팬인 및 팬아웃 : 모듈을 계층적으로 분석하기 위한 개념. 팬인은 높게, 팬아웃은 낮게 설계해 복잡도를 최적화
    • 팬인(Fan-In) : 모듈을 제어하는 모듈의 수로, 자신을 기준으로 들어오는 수
    • 팬아웃(Fan-Out) : 모듈에 의해 제어되는 모듈의 수로, 모듈 자신을 기준으로 나가는 수

 

2. 모듈 테스트

  • 모듈 테스트 : IDE 도구를 활용해 개별 공통 모듈에 대한 디버깅을 수행, 화이트박스 기법 활용
  • 화이트박스 기법 : 프로그램의 로직을 이해하고, 내부 구조와 동작을 검사하는 소프트웨어 테스트 방식
  • 모듈 테스트 종류(jUnit 종류)
    • jUnit : 자바 프로그래밍 언어용 단위 테스트 도구
    • CppUnit : jUnit을 C++로 구현한 단위 테스트 도구
    • HttpUnit : Java 기반의 웹 애플리케이션 단위 테스트 도구

 


# 회고

 

개인적으로 중요하게 생각하는 개발 환경 구성요소가 나옴.

미들웨어에 WAS와 WebServer가 포함된다고 볼 수 있다.

 

그리고 시험에 엄청 많이 나오는 응집도와 결합도가 나왔다....응집도 <우논시절통순기> 결합도<내공외제스자> 외우기..