Certificate/정보처리기사

[velog] 정처기 실기 요약 [8] 서버프로그램 구현

Walker_ 2024. 3. 14. 17:39

https://velog.io/@dlsdk2526/%EC%A0%95%EC%B2%98%EA%B8%B0-%EC%8B%A4%EA%B8%B0-%EC%9A%94%EC%95%BD-8-%EC%84%9C%EB%B2%84%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8-%EA%B5%AC%ED%98%84

 

정처기 실기 요약 [8] 서버프로그램 구현

개발 도구(빌구테형)빌드 도구구현 도구테스트 도구형상 관리 도구서버 하드웨어 개발 환경웹 서버 : 정적 콘텐츠(CSS, Javascript, Image)처리 / Apache 웹 서버웹 애플리케이션 서버 : 동적 콘텐츠(Servle

velog.io

 

좋은 공부자료를 공유해주시는 분들 감사합니다.


 

개발 도구 (빌구테형)

 - 빌드 도구, 구현 도구, 테스트 도구, 형상 관리 도구

 

서버 하드웨어 개발 환경

 - 웹 서버 : 정적 콘텐츠 처리 / Apache 웹 서버

 - 웹 애플리케이션 서버 : 동적 콘텐츠 처리 / Tomcat
 - 데이터베이스 서버 : MySQL, Oracle

 - 파일 서버 : HDD, SDD

 

소프트웨어 개발 환경

 - 운영체제

 - 미들웨어 : 컴퓨터와 컴퓨터 간의 연결을 쉽고 안전하게 할 수 있게

 - DBMS

 

형상 관리

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

 - 절차 // 약술형

  - 형상 식별 > 형상 통제 > 형상 감사 > 형상 기록

 

소프트웨어 형상 관리 도구

 - 공유 폴더 방식  : 매일 개발이 완료된 파일은 약속된 위치의 공유 폴더에 복사

  - RCS : 소스 파일의 수정을 한 사람만으로 제한

  - SCCS

 - 클라이언트 / 서버 방식

  - CVS : 다수 인원 동시에 운영체제 접근 가능

  - SVN : 하나의 서버에서 소스를 쉽고 유용하게 관리할 수 있게 해줌

  - Bitkeeper : SVN과 비슷, 대규모 프로젝트에서 빠른 속도 내도록 개발된 형상 관리 도구

 - 분산 저장소 방식 : 로컬/원격 저장소로 분리되어 분산 저장

  - Git : commit, push

 

모듈

 - 하나의 완전한 기능을 수행할 수 있는 독립된 실체

 

모듈화

 - 소프트웨어의 성능을 향상시키거나 프로그램을 효율적으로 관리할 수 있도록 시스템을 분해하고 추상화하는 기법

 - 루틴 : 소프트웨어에서 특정 동작을 수행하는 일련의 코드로 기능을 가진 명령들의 모임

 

응집도

 - 모듈 내부 구성요소간 연관 정도 (낮음[나쁜 품짐]) -> 높음[높은 품질])

 - 우연적 : 모듈 내부의 각 구성 요소가 연관이 없을 경우

 - 논리적 : 유사한 성격, 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우

 - 시간적 : 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리할 경우

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

 - 통신적 : 동일한 입출력을 사용하여 다른 기능을 수행하는 활동들이 모여있는 경우

 - 순차적 : 한 활동으로부터 나온 출력 값을 다른 활동이 사용할 경우

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

 

결합도

 - 모듈 내부가 아닌 외부 모듈과의 연관도 또는 모듈 간의 상호 의존성 ( 높음[나쁜 품질] -> 낮음[높은 품질] )

 - 내용, 공통, 외부, 제어, 스탬프, 자료

 

공통 모듈 구현 절차

 - DTO/VO > SQL > DAO > Service > Controller > View

 - DAO : 특정 타입의 데이터베이스에 추상 인터페이스를 제공하는 객체

 - DTO : 프로세스 사이에서 데이터를 전송하는 객체

 - VO : 간단한 엔티티를 의미하는 작은 객체 가변 클래스인 DTO와 달리 고정 클래스를 가지는 객체

 

팬인 / 팬아웃

 - 시스템 복잡도를 최적화하기 위해서는 팬인은 높게, 팬아웃은 낮게

 

배치 프로그램

 - 일련의 작업들을 정기적으로 반복 수행하거나 정해진 규칙에 따라 일괄 처리하는 방법

 - 이벤트 배치 : 사전에 정의해 둔 조건 충족 시

 - 온디맨드 배치 : 사용자의 요구가 있을 때 마다

 - 정기 배치 : 정해진 시점

 

배치 스케줄러

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

 - 스프링 배치 : 스프링의 3대 요소를 모두 사용할 수 있는 대용량 처리를 제공

 - 쿼츠 스케줄러

 

Cron 표현식

 - 리눅스/유닉스 : 분시일 월요연

 - 쿼츠 : 초분시일 월요연