본문 바로가기
일지/취준일기

2025_03_05 취준일기 29일차

by 알케니브 2025. 3. 5.

오늘 들은 강의

1. 소프트웨어 구축

1-4. 요구사항 분석 정리

  • 현행 시스템 분석(운영체제, 네트워크, DBMS)
  • CPND
  • ⭐⭐미들웨어: 양쪽 시스템을 연결하여 데이터를 주고받을 수 있도록 중간에서 매개 역할을 하는 소프트웨어
    • 원격 프로시저 호출 (Remote Procedure Call)
    • 메시지 지향 미들웨어 (Message Oriented Middleware
    • ORB(Object Request Broker): 다형성, 오버로딩
    • DB 접속 미들웨어
    • TP 모니터 (Transaction processing Monitor)
    • WAS (Web Application Server)
    • ESB (Enterprise Service Bus)
  • ⭐⭐⭐요구사항 개발 프로세스: 도출 → 분석 → 명세(정형 명세 기법, 비정형 명세 기법) → 확인
  • HIPO
    • 가시적 도표
    • 총체적 도표
    • 세부적 도표
  • 구조적 분석 도구
    • DFD
    • DD
    • Mini-Specification(소단위 명세서)
    • ERD, Entity Relationship Diagram (개체 관계도)
    • STD, State Transition Diagram(상태 전이도)
  • 객체지향 분석 방법론 ⭐⭐⭐
    • 럼바우⭐⭐⭐
      • 객체 모델링: 객체 다이어그램
      • 동적 모델링: 상태 다이어그램
      • 기능 모델링: DFD
    • 부치(Booch) 방법: 미시적 및 거시적 개발 프로세스
    • Jacobson 방법: Use Case
    • Coad와 Yourdon 방법: E-R 다이어그램
    • Wirfs-Brock 방법: 분석과 설계의 구분 없음

1-5. 소프트웨어 설계의 기본원칙

  • 소프트웨어 설계
    • 상위 설계: 아키텍처 설계 , 데이터 설계 , 인터페이스 설계
    • 하위 설계: 모듈 설계 , 자료구조 설계 , 알고리즘 설계
  • 소프트웨어 설계의 원리
    • 분할과 정복
    • 추상화: 과정 추상화, 데이터 추상화, 제어 추상화
  • 단계적 분해
  • 모듈화
  • 정보은닉: 캡슐화와 밀접하게 연관됨
  • ⭐⭐⭐결합도와 응집도: 좋은 설계는 결합도는 낮추고, 응집도를 높여 모듈 간의 독립성과 기능의 집중성을 유지함
  • 설계 모델링 유형
    • 구조 모델링: 시스템의 정적 구조를 표현함
    • 행위 모델링: UML 동적 다이어그램을 사용함
  • 소프트웨어 설계 유형
    • 아키텍처 설계
    • 데이터베이스 설계
    • 서브시스템 설계
    • 컴포넌트 설계
    • 자료구조와 알고리즘 설계
    • ⭐⭐⭐협약에 의한 설계
      • 선행 조건: 컴포넌트 오퍼레이션 사용 전에 반드시 참이 되어야 하는 조건
      • 결과 조건: 오퍼레이션 사용 후 만족해야 하는 조건
      • 불변 조건: 오퍼레이션이 실행되는 동안 항상 만족해야 하는 조건

1-6. 소프트웨어 아키텍쳐

  •  아키텍처 프레임워크 구성요서
    • 아키텍쳐 명세서(Architecture Description)
    • 이해관계자(Stakeholder)
    • 관심사(Concerns)
    • 관점(Viewpoint)
    • 뷰(View)
  • 4+1 뷰
    • 논리뷰
    • 구현뷰
    • 프로세스 뷰
    • 배치뷰
    • 유즈케이스 뷰
  • 아키텍처 패턴 종류⭐⭐⭐
    1. 계층화 패턴
      • 정의: 소프트웨어를 여러 계층으로 구분하여 각 계층이 하위 계층의 기능을 사용하는 구조
      • 적용: OSI 7계층, TCP/IP 4계층 등 네트워크 프로토콜 스택에서 널리 사용됨
    2. 클라이언트-서버 패턴
      • 정의: 서버가 여러 클라이언트에 서비스를 제공하는 구조
      • 적용: 대부분의 웹 애플리케이션과 데이터베이스 시스템에서 사용됨
    3. 마스터-슬레이브 패턴
      • 정의: 마스터 컴포넌트가 작업을 여러 슬레이브에 분산시키고, 슬레이브의 처리 결과를 종합하는 구조
      • 적용: 병렬 컴퓨팅, 고성능 컴퓨팅 환경에서 사용됨
    4. 파이프 필터 패턴⭐⭐
      • 정의: 데이터 스트림 처리 시스템에서 각 단계의 처리를 필터 컴포넌트가 수행하고 파이프를 통해 결과를 전달하는 구조
      • 적용: Unix 쉘 스크립트 및 데이터 스트림 처리 시스템에서 사용됨
    5. 브로커 패턴
      • 정의: 분산 시스템에서 컴포넌트 간 통신을 중재하는 브로커 컴포넌트를 사용하는 구조
      • 기능: 브로커는 서비스 요청을 수신하고, 적절한 서비스 제공자에게 전달함
    6. 피어 투 피어 패턴
      • 정의⭐⭐: 모든 컴포넌트(피어)가 서버와 클라이언트 역할을 동시에 수행하는 구조 
      • 적용: 파일 공유 시스템 등에서 사용됨
    7. 이벤트 버스 패턴
      • 정의: 이벤트 버스를 통해 메시지를 발행하고 리스너가 이를 구독하는 구조
      • 사용 예: 알림 시스템, 메시징 시스템 등에서 사용됨
    8. 모델-뷰-컨트롤러 패턴
      • 정의: 모델(데이터 처리), 뷰(사용자 인터페이스), 컨트롤러(입력 처리)로 구성됨
      • 적용: 웹 애플리케이션, GUI 기반 애플리케이션 등에서 널리 사용됨
    9. 블랙보드 패턴
      • 정의: 여러 컴포넌트가 공유하는 중앙 정보 저장소(블랙보드)를 통해 협업하는 구조
      • 적용:  복잡하고 명확한 해결 전략이 정의됮 않은 문제 해결에 사용됨
    10. 인터프리터 패턴
      • 정의: 특정 프로그래밍 언어의 해석과 실행을 위한 컴포넌트 설계에 사용됨
      • 목적: 언어의 문법을 정의하고 이를 해석하여 실행함

 

7. 프로그래밍 언어

2. 입출력함수&연산자 31~47

3.제어문 01~28

'일지 > 취준일기' 카테고리의 다른 글

2025_03_10 취준일기 31일차  (0) 2025.03.10
2025_03_07 취준일기 30일차  (0) 2025.03.07
2025_03_04 취준일기 28일차  (0) 2025.03.04
2025_02_19 취준일기 27일차  (0) 2025.02.19
2025_02_03 취준일기 26일차  (0) 2025.02.03