info8995 님의 블로그

서버프로그램 구현 본문

TIL(Today I Learned)/정처기 실기

서버프로그램 구현

info8995 2025. 3. 27. 17:31

✅ 서버 종류 및 역할

  • 웹 서버
    • 클라이언트로부터 직접 요청을 받아 처리
    • HTML, CSS, 이미지 등의 저용량 정적 파일 제공
  • 웹 애플리케이션 서버(WAS)
    • 동적 서비스 제공
    • 웹 서버와 DB 서버, 파일 서버 간의 인터페이스 역할 수행
  • 데이터베이스 서버
    • 데이터베이스와 이를 운영하는 DBMS 관리
  • 파일 서버
    • 대용량 또는 데이터베이스에 넣기엔 비효율적인 파일 저장 및 관리

✅ 소프트웨어 환경

  • 시스템 소프트웨어
    • 운영체제(OS), 웹서버/WAS 운영용 서버 프로그램, DBMS 등
  • 개발 소프트웨어
    • 요구사항 관리 도구: 요구사항 수집, 분석, 추적 지원
    • 설계/모델링 도구: UML 기반 설계 및 모델링 지원
    • 구현 도구: 프로그래밍 언어, IDE 등
    • 빌드 도구: 컴파일, 배포, 라이브러리 관리
    • 테스트 도구: 요구사항 검증 테스트
    • 형상 관리 도구: 버전 및 변경 이력 관리

✅ 웹 서버의 주요 기능

  • HTTP/HTTPS 프로토콜 지원
  • 요청/응답 통신 기록(로그)
  • 정적 파일(html, css, 이미지 등) 관리
  • 네트워크 트래픽을 제한하는 대역폭 제한
  • 가상 호스팅(여러 도메인 운영)
  • 사용자 인증 기능

✅ 개발 언어 선정 기준

기준 내용
적정성 개발 목적에 부합
효율성 효율적인 코드 구현 가능
이식성 다양한 환경에서 사용 가능
친밀성 개발자 이해도 및 활용도 높음
범용성 다양한 분야에서 활용 사례 존재

✅ 소프트웨어 아키텍처와 설계 개념

  • 아키텍처: 시스템의 구성 요소와 관계를 구조화한 것
  • 모듈화: 기능을 모듈 단위로 분리하여 유지보수 용이성 확보
  • 추상화: 복잡한 내용을 간단하게 표현 (과정/데이터/제어 추상화)
  • 단계적 분해: 상위 개념 → 하위 개념으로 점차 구체화 (Wirth 제안)
  • 정보은닉: 내부 정보 보호, 모듈 간 독립성 확보

✅ 상위 설계 vs 하위 설계

  • 상위 설계 (아키텍처 설계)
    • 전체 시스템 구조 설계
    • 구조, DB, 인터페이스 등 포함
  • 하위 설계 (상세 설계)
    • 컴포넌트, 자료 구조, 알고리즘 설계

✅ 아키텍처 패턴 종류

  • 레이어 패턴: 계층 기반 구조 (예: OSI 7계층)
  • 클라이언트-서버 패턴: 서버-클라이언트로 구성된 구조
  • 파이프-필터 패턴: 데이터 스트림을 필터 단위로 처리
  • MVC 패턴: 모델-뷰-컨트롤러 구조, 대화형 앱에 적합

✅ 객체 지향 프로그래밍(OOP)

  • 구성 요소: 객체, 클래스, 메시지
  • 특징
    • 캡슐화: 내부 구현 은닉
    • 상속: 부모 클래스의 속성/연산을 자식이 물려받음
    • 다형성: 동일 메시지에 대해 객체별로 다르게 반응
    • 연관성: 객체 간 참조 관계

✅ 객체 지향 분석 및 설계

  • 분석 방법론
    • 럼바우: 객체, 동적, 기능 모델
    • 부치: 거시/미시적 프로세스
    • Jacobson: 유스케이스 기반
    • Coad & Yourdon: E-R 다이어그램 사용
    • Wirfs-Brock: 분석과 설계를 구분 없이 연속 진행
  • SOLID 원칙
    • SRP: 단일 책임 원칙
    • OCP: 개방-폐쇄 원칙
    • LSP: 리스코프 치환 원칙
    • ISP: 인터페이스 분리 원칙
    • DIP: 의존 역전 원칙

✅ 모듈의 독립성

  • 결합도 (Coupling)
    → 낮을수록 좋음
    순서: 내용 > 공통 > 외부 > 제어 > 스탬프 > 자료
  • 응집도 (Cohesion)
    → 높을수록 좋음
    순서: 기능 > 순차 > 통신 > 절차 > 시간 > 논리 > 우연

 

※ 본 내용은 starrykss님의 Tistory 글을 참고하여 정리한 것입니다.

'TIL(Today I Learned) > 정처기 실기' 카테고리의 다른 글

정처기 실기 코딩문  (0) 2025.05.20
서버프로그램 구현2  (0) 2025.03.28
정처기 통합구현  (0) 2025.03.26
데이터 입출력 구현2  (0) 2025.03.25
데이터 입출력 구현1  (0) 2025.03.24