ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 소프트웨어 설계 · 인터페이스 · UI · 패키징 · 신기술 정리하기 ☺️
    기타 2026. 7. 14. 00:05

    결합도/응집도, 웹 서비스(SOAP/REST/WSDL/UDDI), EAI, UI 설계 원칙, SW 아키텍처 패턴, 제품 패키징(DRM/버전관리), 신기술 용어까지 한 번에 정리한다.


    1. 결합도 (Coupling) — 낮을수록 좋음

    모듈 간 상호 의존하는 정도. 낮을수록 독립성이 높아 좋은 설계.

    암기: 내공외제스자 (강 → 약)

    순위 결합도 설명
    1 (가장 강함) 내용 (Content) 한 모듈이 다른 모듈의 내부 기능·데이터를 직접 참조·수정
    2 공통 (Common) 전역 변수를 여러 모듈이 공유
    3 외부 (External) 외부에서 선언한 변수를 다른 모듈에서 참조
    4 제어 (Control) 제어 요소(flag, if 조건 등)를 다른 모듈에 전달
    5 스탬프 (Stamp) 배열·구조체 등 자료구조를 매개변수로 전달
    6 (가장 약함) 자료 (Data) 단순 데이터 요소(값)만 매개변수로 전달

    2. 응집도 (Cohesion) — 높을수록 좋음

    모듈 내부 요소들이 서로 연관된 정도. 높을수록 단일 목적에 집중되어 좋은 설계.

    암기: 기순교절시논우 (강 → 약)

    순위 응집도 설명
    1 (가장 강함) 기능적 (Functional) 내부 요소들이 단일 기능을 위해 협력
    2 순차적 (Sequential) 이전 활동의 출력이 다음 활동의 입력으로 사용
    3 교환적 (Communication) 동일 입출력을 사용해 서로 다른 기능 수행
    4 절차적 (Procedural) 구성요소들이 순차적으로 기능 수행
    5 시간적 (Temporal) 특정 시간대에 처리되는 기능들을 모음 (초기화 등)
    6 논리적 (Logical) 유사한 성격의 기능들을 하나의 모듈로 구성
    7 (가장 약함) 우연적 (Coincidental) 서로 관련 없는 요소들이 모임

    핵심 원칙: 결합도는 낮게(내→자), 응집도는 높게(우→기). "응집도를 높이고 결합도를 낮춘다."


    3. 소프트웨어 아키텍처 패턴

    시스템 구조를 설계하는 재사용 가능한 패턴.

    패턴 설명 예시
    레이어 (Layered) 시스템을 계층으로 구분. 각 계층은 인접 계층과만 통신 OSI 7계층, MVC
    클라이언트-서버 서버 하나 + 다수 클라이언트 웹 서비스
    파이프-필터 데이터가 필터(처리)를 거쳐 파이프(전달)로 흐름 컴파일러, Unix 파이프
    MVC Model(데이터) / View(UI) / Controller(제어) 웹 프레임워크
    마스터-슬레이브 마스터가 슬레이브에게 작업 분배 후 결과 취합 병렬 처리
    브로커 컴포넌트 간 통신을 중간 브로커가 중계 미들웨어, 메시지 큐
    이벤트 버스 이벤트 발행자·구독자·채널·버스로 구성 이벤트 드리븐 아키텍처
    블랙보드 공유 데이터(블랙보드)에 여러 컴포넌트가 협력 AI, 음성 인식

    MVC 패턴 상세

    구성 역할 특징
    Model 데이터와 비즈니스 로직 담당 데이터 가공·저장·조회
    View 사용자 인터페이스 담당 모델의 데이터를 화면에 표시. 데이터 저장 X
    Controller 사용자 요청을 받아 Model 업데이트, View 반환 Model과 View 모두 알고 있어야 함

    4. 소프트웨어 아키텍처 설계 기본 원리

    원리 설명
    모듈화 기능을 모듈 단위로 나눠 수정·재사용·유지관리 용이하게
    추상화 전체적·포괄적 개념을 먼저 설계 후 세분화
    단계적 분해 상위 개념에서 하위 개념으로 구체화 (Top-Down)
    정보 은닉 모듈 내부 구현을 외부에서 접근·변경 못하도록 숨김

    5. EAI (Enterprise Application Integration)

    기업 내 다양한 애플리케이션과 플랫폼을 연계·통합하는 솔루션.

    구축 유형 4가지 — 기출 단골

    유형 설명 특징
    Point-to-Point 애플리케이션 간 직접 1:1 연결 구현 단순하지만 연결 수 많아지면 복잡도 폭증
    Hub & Spoke 중앙 허브를 통해 데이터 전송 (중앙 집중) 허브 장애 시 전체 마비. 확장성 낮음
    Message Bus 미들웨어(버스)를 통해 처리 확장성 높음. 느슨한 결합
    Hybrid Hub & Spoke + Message Bus 혼합 데이터 병목 최소화

    6. 웹 서비스 (Web Service)

    네트워크에 분산된 정보를 표준화된 방식으로 공유하는 기술. SOA(서비스 지향 아키텍처) 구현.

    핵심 3요소 — 기출 단골

    기술 풀네임 역할
    UDDI Universal Description Discovery Integration 웹 서비스 정보(WSDL)를 등록·검색하는 저장소(레지스트리)
    WSDL Web Service Description Language 웹 서비스의 이름·위치·메시지 포맷·프로토콜을 XML로 기술
    SOAP Simple Object Access Protocol HTTP/HTTPS/SMTP를 통해 XML 기반 메시지를 교환하는 프로토콜

    흐름:

    서비스 요청자 ──WSDL 요청──► UDDI(레지스트리)
    서비스 요청자 ◄─WSDL 응답── UDDI
    서비스 요청자 ──SOAP 메시지──► 서비스 제공자

    REST vs SOAP

    구분 REST SOAP
    메시지 형식 JSON, XML 등 자유 XML만 사용
    프로토콜 HTTP HTTP, HTTPS, SMTP 등
    상태 무상태(Stateless) 상태 유지 가능
    속도 빠름 느림
    표준 아키텍처 스타일 프로토콜 표준
    사용 대부분의 현대 API 금융·기업 레거시 시스템

    7. 연계 방식 — 직접 vs 간접

    방식 종류 설명
    직접 연계 DB Link 네트워크상의 다른 DB에 직접 접속
      DB Connection Pool WAS에서 DB 연결 풀 생성
      JDBC Java에서 DB 드라이버로 직접 연결
      API / Open API DB와 연결해 데이터를 제공하는 인터페이스
    간접 연계 EAI 미들웨어 기반 기업 통합 솔루션
      Web Service/ESB WSDL·SOAP 기반 시스템 연계
      Socket 포트 할당 후 클라이언트 요청 연결

    8. UI 설계

    UI 기본 원칙 — 기출 단골

    암기: 직유학유

    원칙 설명
    직관성 누구나 쉽게 이해하고 사용할 수 있어야 함
    유효성 사용자의 목적을 정확하고 완벽하게 달성해야 함
    학습성 누구나 쉽게 배우고 익힐 수 있어야 함
    유연성 사용자의 요구사항을 최대한 수용하고 실수를 최소화해야 함

    UI 설계 도구

    도구 설명
    와이어프레임 UI 요소의 개략적인 레이아웃 뼈대. 가장 단순한 형태
    목업 (Mockup) 와이어프레임보다 실제 화면에 유사한 정적 모형
    스토리보드 와이어프레임 + 콘텐츠 설명 + 페이지 이동 흐름 추가한 문서
    프로토타입 실제 구현된 것처럼 테스트 가능한 동적 모형
    유스케이스 사용자가 목표 달성을 위해 수행할 내용 기술

    정적 vs 동적: 목업은 정적(클릭 불가), 프로토타입은 동적(실제 작동처럼 인터랙션 가능)


    9. HIPO (Hierarchy Input Process Output)

    시스템 분석·설계 단계에서 사용되는 하향식 기법의 문서화 도구. 기능 중심.

    차트 종류:

    차트 설명
    가시적 도표 (Visual Table of Contents) 시스템의 전체 기능 계층 구조를 트리 형태로 표현
    총체적 도표 (Overview Diagram) 각 기능의 입력·처리·출력을 전반적으로 표현
    세부적 도표 (Detail Diagram) 각 기능의 입력·처리·출력을 상세하게 표현

    10. 객체지향 설계 원칙 (SOLID)

    원칙 영문 설명
    단일 책임 SRP (Single Responsibility) 클래스는 하나의 책임만 가져야 함
    개방-폐쇄 OCP (Open-Closed) 확장에는 열려있고, 수정에는 닫혀있어야 함
    리스코프 치환 LSP (Liskov Substitution) 자식 클래스는 부모 클래스를 대체할 수 있어야 함
    인터페이스 분리 ISP (Interface Segregation) 사용하지 않는 인터페이스에 의존하지 말아야 함
    의존 역전 DIP (Dependency Inversion) 구체 클래스보다 인터페이스·추상 클래스에 의존

    11. 럼바우 객체지향 분석 (순서 중요)

    그래픽 표기법을 이용해 소프트웨어 구성요소를 모델링하는 기법.

    객체 모델링 → 동적 모델링 → 기능 모델링
    단계 모델링 결과물
    1 객체 모델링 (Object) 객체와 관계 정의. 가장 중요하고 선행. 객체 다이어그램
    2 동적 모델링 (Dynamic) 시간 흐름에 따른 객체 행위. 상태 다이어그램
    3 기능 모델링 (Functional) 프로세스의 자료 흐름 표현. DFD (자료 흐름도)

    12. 제품 소프트웨어 패키징

    DRM (Digital Rights Management)

    디지털 콘텐츠의 생성부터 사용자까지 유통 과정 전반에 걸쳐 저작권을 보호하는 기술.

    기술적 요구사항:

    • 지속적 보호 / 이용 편리성 / 유연성 / 통합의 용이성

    DRM 구성 요소:

    구성요소 설명
    콘텐츠 제공자 저작권자, 원본 콘텐츠 제공
    콘텐츠 분배자 암호화된 콘텐츠 배포
    패키저 콘텐츠를 DRM 형식으로 패키징
    보안 컨테이너 콘텐츠를 보호하는 보안 래퍼
    DRM 컨트롤러 권한 제어
    클리어링 하우스 라이선스 발급·관리

    버전 관리 도구

    도구 방식 특징
    RCS 로컬 파일 수정을 한 사람만 가능. 잠금 처리
    CVS 중앙 집중형 여러 개발자 협력 가능. GNU 라이선스
    SVN 중앙 집중형 CVS 개선. 아파치 최상위 프로젝트. 롤백 가능
    Git 분산형 로컬 저장소 관리 후 Push. 리눅스 커널 개발에 사용
    Bitkeeper 분산형 SVN과 유사하나 대규모·고속

    중앙 집중형 vs 분산형:

    • 중앙 집중형 (CVS, SVN): 서버에 단일 저장소. 오프라인 작업 불가
    • 분산형 (Git): 로컬에도 전체 이력 보유. 오프라인 작업 가능. 브랜치 관리 유연

    빌드 자동화 도구

    처리 절차:

    종속성 다운로드 → 컴파일 → 패키징 → 테스트 → 배포
    도구 설명
    Maven Java 기반. pom.xml로 의존성 관리
    Gradle Groovy/Kotlin 기반. Maven보다 빠름. Android 표준
    Ant Java 기반. 유연하지만 의존성 관리 없음
    Jenkins CI/CD 자동화 서버. 빌드·테스트·배포 파이프라인

    13. 소프트웨어 관련 신기술 용어

    SW 신기술

    용어 설명
    블록체인 P2P 네트워크를 이용해 거래 정보를 분산 저장하는 기술
    매시업 (Mashup) 웹에서 제공하는 정보·서비스를 조합해 새로운 SW·DB를 만드는 기술
    SOA 서비스 지향 아키텍처. 인프라를 서비스 단위·컴포넌트 중심으로 구축
    디지털 트윈 현실 사물을 소프트웨어로 가상화해 시뮬레이션
    그레이웨어 사용자 입장에서 유용할 수도 악의적일 수도 있는 소프트웨어
    SaaS 소프트웨어를 서비스로 제공. 필요한 기능만 구독 사용
    시맨틱 웹 컴퓨터가 정보를 이해·가공해 새로운 정보를 만들어내는 웹
    Vaporware (증발품) 배포 계획은 발표됐으나 실제로 배포되지 않는 소프트웨어
    양자 암호키 분배 양자 통신을 위해 비밀키를 분배·관리

    HW 신기술

    용어 설명
    엣지 컴퓨팅 데이터 소스 근처에서 처리. 클라우드까지 보내지 않고 현장 처리
    RAID 여러 디스크를 묶어 성능·안정성 향상
    인터럽트 실행 중 예기치 못한 상황 발생 시 현재 작업 중단 후 처리

    RAID 종류:

    RAID 방식 특징
    RAID 0 스트라이핑 성능 ↑, 데이터 보호 없음
    RAID 1 미러링 데이터 복제. 용량 절반 사용
    RAID 5 스트라이핑 + 패리티 HDD 3개 이상. 패리티로 1개 장애 복구
    RAID 6 이중 패리티 HDD 4개 이상. 2개 장애까지 복구
    RAID 10 RAID 0 + RAID 1 결합 스트라이핑 + 미러링 동시

    DB 신기술

    용어 설명
    데이터 마이닝 대규모 데이터에서 자동으로 통계적 규칙·패턴을 찾아내는 것
    OLAP 다차원 데이터를 분석·집계하는 시스템. 의사결정 지원
    NoSQL 비관계형 DB. 유연한 스키마, 대용량·분산 처리에 적합
    샤딩 (Sharding) DB를 수평 분할해 여러 서버에 분산 저장
    맵리듀스 구글이 개발한 빅데이터 분산 처리 프레임워크
    트리거 (Trigger) DB 테이블에 이벤트(INSERT/UPDATE/DELETE) 발생 시 자동 실행 프로그램

    14. 클린 코드 (Clean Code)

    가독성이 높고 유지보수가 쉬운 코드를 작성하는 원칙.

    원칙 설명
    가독성 이해하기 쉬운 이름과 구조
    단순성 최소 단위로 분리, 한 함수는 한 가지만
    의존성 배제 코드 간 의존도 최소화
    중복성 최소화 DRY(Don't Repeat Yourself) 원칙
    추상화 상세 구현을 숨기고 인터페이스만 노출

    클린 코드 vs 리팩토링:

    • 클린 코드: 처음부터 잘 짜는 것
    • 리팩토링: 기존 코드의 구조를 개선하는 것 (기능 변경 없음)

    빠른 암기 정리

    결합도 (낮을수록 좋음, 내→자)
      내공외제스자 : 내용/공통/외부/제어/스탬프/자료
    
    응집도 (높을수록 좋음, 기→우)
      기순교절시논우 : 기능/순차/교환/절차/시간/논리/우연
    
    SW 아키텍처 패턴
      레이어     : 계층 구분, 인접 계층만 통신
      파이프필터  : 데이터가 필터→파이프로 흐름
      MVC        : Model(데이터)/View(UI)/Controller(제어)
      브로커     : 중간 브로커가 통신 중계
    
    MVC        : Model은 데이터·로직 / View는 화면만 / Controller는 중계
    SOLID      : 단일책임/개방폐쇄/리스코프/인터페이스분리/의존역전
    
    EAI 구축유형: Point-to-Point / Hub&Spoke / Message Bus / Hybrid
    웹서비스 3요소: UDDI(등록·검색) / WSDL(XML 기술) / SOAP(XML 메시지 교환)
    REST vs SOAP: REST(JSON,빠름) / SOAP(XML,표준,느림)
    
    UI 원칙    : 직유학유 (직관성/유효성/학습성/유연성)
    UI 도구    : 와이어프레임(뼈대) → 목업(정적) → 스토리보드(흐름) → 프로토타입(동적)
    
    럼바우 순서 : 객체모델링 → 동적모델링 → 기능모델링
               결과물: 객체다이어그램 / 상태다이어그램 / DFD
    
    HIPO       : 하향식, 기능 중심. 가시적/총체적/세부적 도표
    DRM        : 디지털 콘텐츠 저작권 보호 기술
    버전관리   : RCS(로컬) / CVS·SVN(중앙집중) / Git·Bitkeeper(분산)
    Git        : 분산형, 로컬 저장소, Push로 중앙 반영
    빌드도구   : Maven/Gradle/Ant(빌드) / Jenkins(CI/CD)
    빌드절차   : 종속성 다운로드 → 컴파일 → 패키징 → 테스트 → 배포
    
    RAID 0     : 스트라이핑, 성능↑, 보호 없음
    RAID 1     : 미러링, 용량 절반
    RAID 5     : 스트라이핑+패리티, HDD 3개↑, 1개 장애 복구
    RAID 6     : 이중패리티, HDD 4개↑, 2개 장애 복구
    RAID 10    : RAID 0+1 결합
    
    블록체인   : P2P 분산 저장
    디지털 트윈: 현실 사물 가상화
    데이터마이닝: 대용량 데이터에서 패턴 발견
    OLAP       : 다차원 데이터 분석·집계
    샤딩       : DB 수평 분할·분산
    맵리듀스   : 구글 빅데이터 분산 처리 프레임워크
    트리거     : DB 이벤트 발생 시 자동 실행 프로그램
Designed by Tistory.