Yeon DevLog

certificate

[정보처리기사 필기] 서버 프로그램 구현

devYeON_ 2021. 12. 11. 23:39

1. 개발환경 구축

  • 하드웨어 환경
    - Client : 사용자와의 인터페이스 역할
    - Server : 클라이언트와 통신해 서비스를 제공
    ① File Server : 서비스 제공을 목적으로 유지하는 파일들을 저장하는 서버
    ② Web Server : Client로 직접 요청을 받아 처리하는 서버 → 정적 파일
         💡 Web Server의 기능 ? HTTP/HTTPS 지원 , 통신기록 , 가상 호스팅 , 정적 파일 관리 , 인증


    ③ WAS : 동적 서비스를 제공하기 위해 웹 서버로부터 요청받아 인터페이스 역할 수행
    ④ DB Server : DB와 DBMS를 운영하는 서버
  • 소프트웨어 환경
    - Client + System SW + Develop SW
    - Develop SW : 요구사항 관리 도구, 설계/모델링 도구, 구현 도구, 빌드 도구, 테스트 도구, 형상관리 도구
      💡 개발언어 기준 ? 적정성, 효율성, 이식성, 친밀성, 범용성

2. Module ✨✨

📘 모듈화를 통해 분리된 시스템의 각 기능들

  • 특징
    - 단독 컴파일 기능, 재사용 가능
    - 기능적 독립성 : SW를 구성하는 각 모듈의 기능이 서로 독립됨을 의미
    💡 기능적 독립성 ? 결합도는 약하게, 응집도는 강하게, 모듈의 크기는 작게!!
  • 결합도
    - 모듈 간에 상호 의존하는 정도 또는 두 모듈 사이의 연관관계를 의미 (왼쪽으로 갈수록 BEST!)
    자료 결합도 스탬프 결합도 제어 결합도 외부 결합도 공통 결합도 내용 결합도
  • 응집도
    - 정보은닉의 개념 확장, 모듈의 내부 요소들의 서로 관련된 정도 (왼쪽으로 갈수록 BEST!)
    기능적 응집도 순차적 응집도 교환 적응 집도 절차적 응집도 시간적 응집도 논리적 응집도 우연적 응집도

3. 공통모듈 ✨✨✨

📘 여러 프로그램에서 공통적으로 사용할 수 있는 모듈

  • 명세 기법
    - 정확성 : 해당 기능이 필요하다는 것을 알 수 있도록 작성
    - 명확성 : 기능을 이해할 때 중의적으로 해석되지 않도록 작성
    - 완전성 : 시스템 구현을 위해 필요한 모든 것을 기술
    - 일관성 : 공통기능들 간 상호 충돌이 발생하지 않도록 작성
    - 추적성 : 기능에 대한 것을 파악할 수 있도록 작성

  • 재사용 : 외부 모듈과의 결합도는 낮고, 응집도는 높아야 한다
    - 규모에 따른 분류
    ① 함수와 객체 : 클래스나 메소드 단위의 소스코드를 재사용
    ② 컴포넌트 : 자체 수정 없이 인터페이스를 통해 통신하는 방식으로 재사용
    ③ 애플리케이션 : 공통된 기능들을 제공하는 애플리케이션을 공유하는 방식으로 재사용

4. DBMS 접속

📘 웹 응용 시스템 ( Web Server, WAS..)을 통해 접근

  • 접속 기술
    - JDBC : Java언어로 DB에 접속
    - ODBC : DB에 접근하기 위한 표준 개방형 API
    - MyBatis : JDBC코드를 단순화 해 사용할 수 있는 SQL Mapping기반 오픈소스 프레임워크

      정적 SQL 동적 SQL
    SQL 구성 Cursor를 통한 정적 처리 문자열 변수에 담아 동적 처리
    개발 패턴 Cursor의 범위 안에서 반복문을 활용해 SQL 작성 NVL 함수 없이 로직을 통해 SQL 작성
    실행 속도 빠름 느림
    사전검사 가능 불가능

5. 서버 개발

  • 프레임워크 : 대부분 MVC패턴을 기반으로 개발 ✨✨✨
    - 특성
    ① 모듈화 : 캡슐화를 통해 모듈화 가능
    ② 재사용성 : 재사용 가능한 모듈 제공
    ③ 확장성 : 다형성을 통한 인터페이스 확장
    ④ 제어의 역흐름 : 객체들의 제어권한을 프레임워크에 넘김으로써 생산성 향상

    - 종류
    ① Spring : Java 기반 프레임워크
    ② Node.js : Java Script 기반 프레임워크
    ③ Django : Python 기반 프레임워크
    ④ Codeigniter : PHP 기반 프레임워크
    ⑤ Ruby on Rails : Ruby 기반 프레임워크
  • 과정
    DTO/VO 구현
    SQL 구현
    DAO 구현
    Service 구현
    Controller 구현

6. 배치 프로그램 ( Batch Program) ✨✨

📘 사용자와의 상호작용 없이 여러 작업들을 미리 정해진 일련의 순서에 따라 일괄적으로 처리되는 것

  • 수행 주기 : 정기 배치 / 이벤트성 배치 / On-Demand배치
  • 필수요소 : 대용량 데이터, 자동화, 견고성, 안전성/신뢰성, 성능
  • 배치 스케줄러 : 일괄처리 작업이 설정된 주기에 맞춰 자동으로 수행되도록 지원해주는 도구
    Spring Batch Qurtz Cron
    Job Scheduler -e
    Job Launcher Job -l
    Step Job Detail -r
    Job Repository Trigger  

🌼🌼🌼2020 개정 후 정보처리기사 필기 5장 요약본입니다🌼🌼🌼