시스템 연동 설계

1️⃣ 시스템 코드 설계

코드(Code)란?

  • 데이터를 목적에 따라 분류하고 쉽게 식별할 수 있도록 만든 숫자 또는 문자 체계

코드의 역할

  • 식별 → 각 데이터의 성격 구분
  • 분류 → 특정 기준으로 그룹화
  • 배열 → 의미를 부여하여 정렬
  • 기타 기능 → 표준화, 간소화, 연상, 암호화, 오류 검출

코드 유형

코드 유형
설명
예시
순차(Sequence) 코드
순서대로 일련번호 부여
001, 002, 003…
블록(Block) 코드
항목을 그룹으로 나눈 후, 각 블록 내에서 번호 부여
경재(01) → 01-01, 01-02…
10진(Decimal) 코드
10개의 항목까지 구분 가능 (도서 분류식 코드)
경제(100), 컴퓨터(200)
그룹 분류 코드
대분류-중분류-소분류 형태
G102 (10대 골드 회원)
연상(Mnemonic) 코드
의미를 쉽게 연상 가능하게 구성
LED-C-32 (32인치 LED 커브드 모니터)
표의 숫자 코드
실제 수치 데이터를 포함
20-10-120 (가로 20cm, 세로 10cm, 높이 120cm)
합성(Combined) 코드
둘 이상의 코드 조합
212-01, 212-02…

2️⃣ 시스템 연동

시스템 연동이란?

  • 서버와 네트워크를 활용하여 서로 다른 기능을 수행하는 시스템을 연결하는 것
  • 목적에 따라 데이터 연동, 인터페이스 연동, 웹 서비스 연동으로 구분

연동 방식

연동 유형
설명
데이터 연동
데이터베이스 공유를 통해 시스템 연결
인터페이스 연동
API, RMI(Remote Method Invocation) 사용하여 연동
웹 서비스 연동
SOAP, UDDI, WSDL 같은 표준 기술을 활용한 연동

웹 서비스 연동 주요 기술

기술
설명
SOAP
이기종 시스템 간 XML 기반 데이터 교환
UDDI
웹 서비스 검색을 위한 XML 기반 통합 레지스트리
WSDL
웹 서비스를 기술하기 위한 XML 기반 표준 언어

3️⃣ 소프트웨어 아키텍처

시스템 아키텍처란?

  • 시스템 전체의 논리적 구조 및 구성 방식
  • 시스템 간 관계 및 동작 원리를 표현

소프트웨어 아키텍처란?

  • 소프트웨어의 기본 구조를 정의하여 설계 및 구현을 위한 틀 제공
  • 구성 요소(모듈, 컴포넌트)의 상호 관계 정의

계층화(Layered) 패턴

  • 시스템을 논리적 계층(레이어)으로 나누어 설계하는 방식
  • 유지보수 및 확장 용이
  • 일반적인 웹 애플리케이션 개발에서 활용
  • n-Tier 패턴 및 SOA(서비스 지향 아키텍처) 패턴 포함

1️⃣n-Tier 아키텍처란?

  • 시스템을 논리적으로 여러 계층으로 분리하여 설계하는 방식
  • 데이터, 애플리케이션, 클라이언트 등을 계층별로 나눠 관리
계층
설명
1-Tier
클라이언트, 애플리케이션, 데이터 계층을 하나로 구성
2-Tier
클라이언트 + 애플리케이션 계층과 데이터 계층을 분리
3-Tier
클라이언트, 애플리케이션, 데이터 계층을 모두 독립적으로 구성

2️⃣ SOA(Service-Oriented Architecture)란?

  • 서비스 중심으로 시스템을 구성하는 아키텍처
  • 각 기능을 독립적인 서비스로 제공하여 유연한 확장 가능
계층
설명
표현(Presentation)
UI 및 사용자 인터페이스
프로세스(Process)
비즈니스 로직 처리
서비스(Service)
독립적인 서비스 관리
비즈니스(Business)
업무 규칙 적용
영속(Persistency)
데이터 저장 및 관리

클라이언트/서버 (Client/Server) 패턴

  • 하나의 서버가 여러 클라이언트에게 서비스를 제공하는 방식
  • 은행 시스템, 이메일, 온라인 예약 등에 사용

마스터/슬레이브 (Master/Slave) 패턴

  • 마스터가 작업을 분리하고, 슬레이브가 요청한 작업을 처리
  • 마스터는 최종 결과를 정리하고, 슬레이브는 마스터와 데이터 동기화
  • 데이터베이스 복제, 병렬 컴퓨팅 시스템에서 활용

파이프-필터 (Pipe-Filter) 패턴

  • 데이터를 단계별로 처리하는 시스템
  • 데이터를 입력 → 필터에서 가공 → 파이프를 통해 다음 단계로 전달
  • 스트리밍 서비스, 데이터 처리 시스템에서 사용

브로커 (Broker) 패턴

  • 클라이언트 요청을 중개하는 서버(브로커)를 두어 적절한 서버에 연결
  • 서버가 직접 통신하는 것이 아니라 중앙 브로커가 적절한 서버를 선택
  • 분산 시스템, 원격 서비스 실행에 사용

피어-투-피어 (Peer-to-Peer) 패턴

  • 서버 없이 각 노드(peer)가 서로 데이터를 주고받는 방식
  • 각 노드는 클라이언트이면서 동시에 서버 역할을 수행
  • 파일 공유 네트워크, 블록체인 시스템에서 활용

이벤트-버스 (Event-Bus) 패턴

  • 데이터를 특정 채널(이벤트 버스)에 전달하면, 구독한 리스너가 해당 데이터를 수신
  • 메시징 시스템, 알림 서비스에서 사용

MVC (Model-View-Controller) 패턴

  • 웹 애플리케이션에서 데이터 처리(Model), UI(View), 로직 처리(Controller)를 분리
  • UI 변경이 업무 로직에 영향을 주지 않도록 설계

블랙보드 (Blackboard) 패턴

  • 정해진 해결 방법 없이 여러 알고리즘이 협력하여 문제 해결
  • 음성 인식, 차량 인식, 신호 해석 등에 사용

인터프리터 (Interpreter) 패턴

  • 특정 언어로 작성된 명령어를 해석하여 실행하는 방식
  • SQL, 통신 프로토콜 해석, 스크립트 언어에서 사용

3️⃣ 미들웨어 (Middleware) 솔루션

미들웨어란?

  • 서로 다른 시스템을 연결해주는 중간 소프트웨어
미들웨어 유형
설명
DBMS
클라이언트와 데이터베이스 연결
RPC
원격 프로시저 호출을 위한 미들웨어
MOM
메시지 기반 데이터 동기화
TP-Monitor
온라인 트랜잭션 관리 (예: 은행, 예약 시스템)
ORB
분산 객체 시스템을 위한 미들웨어
WAS
HTTP 요청을 처리하고, 데이터베이스와 연동하여 동적 데이터를 제공

4️⃣ 웹 서버와 웹 애플리케이션 서버

웹 서버(Web Server)란?

  • 정적인 콘텐츠 (HTML, 이미지, JavaScript 등) 제공
  • 웹 브라우저(클라이언트) 요청을 처리

웹 서버 vs WAS

구분
역할
웹 서버
정적인 콘텐츠 처리 (HTML, 이미지 등)
WAS
동적인 콘텐츠 처리 (DB 연동, 로직 실행)
구성 방식
클라이언트 → 웹 서버 → WAS → DB

5️⃣연동 오류 예측 및 대응

오류 유형

오류 유형
설명
예시
생략(Omission) 오류
한 자리가 빠진 경우
A02-2H → A02-2
필사(Transcription) 오류
잘못된 문자 입력
A02-2H → A02-4H
전위(Transposition) 오류
문자 순서가 바뀜
A02-2H → A02-H2
이중(Double) 전위 오류
여러 개의 전위 오류 발생
A02-2H → A02-H2
추가(Addition) 오류
불필요한 문자 추가
A02-2H → A022-2H
임의(Random) 오류
여러 오류가 조합됨
A02-2H → A02-H24

오류 대응 방법

1️⃣ 이중화 (Redundancy)

  • 장애 발생 시에도 서비스가 지속되도록 시스템을 복제
  • Active-Active: 모든 시스템이 동시에 서비스 제공
  • Active-Standby: 하나의 시스템이 예비로 대기

2️⃣ 재해 복구 시스템 (DRS, Disaster Recovery System)

복구 유형
설명
RTO(복구 시간)
Mirror Site
완전 동일한 시스템 유지
즉시
Hot Site
동일한 시스템 유지하지만 대기 상태
수 시간
Warm Site
중요한 데이터만 백업
수 일
Cold Site
최소한의 환경만 제공
수 개월

3️⃣ 복구 목표 시간(RTO) & 복구 목표 시점(RPO)

  • RTO (Recovery Time Objective): 서비스 중단 후 최대 허용 중단 시간
  • RPO (Recovery Point Objective): 허용 가능한 데이터 손실량

4️⃣ 업무 영향 분석 (BIA, Business Impact Analysis)

  • 서비스 장애 발생 시, 영향을 분석하고 복구 우선순위를 정하는 과정

총정리

1️⃣ 시스템 코드 설계

코드란?

  • 데이터를 분류하고 식별하기 위해 만든 숫자 또는 문자 체계

코드 유형

코드 유형
설명
순차 코드
순서대로 번호 부여 (001, 002, …)
블록 코드
항목을 그룹으로 나누고 그룹 내에서 번호 부여
10진 코드
10개의 항목으로 구분 (도서 분류법)
그룹 분류 코드
대분류-중분류-소분류 형태
연상 코드
의미를 쉽게 연상할 수 있도록 구성
표의 숫자 코드
실제 수치 데이터를 포함
합성 코드
여러 코드를 조합하여 구성

2️⃣ 시스템 연동

연동 방식

연동 방식
설명
데이터 연동
데이터베이스 공유를 통해 연결
인터페이스 연동
API, RMI 등을 이용한 연동
웹 서비스 연동
SOAP, UDDI, WSDL 활용

웹 서비스 연동 기술

기술
설명
SOAP
XML 기반 데이터 교환
UDDI
웹 서비스 검색을 위한 레지스트리
WSDL
웹 서비스 정의를 위한 표준 언어

3️⃣ 소프트웨어 아키텍처

아키텍처 개념

  • 시스템 전체의 구조와 구성 요소 간 관계를 정의하는 설계 방식

주요 아키텍처 패턴

패턴
설명
n-Tier
클라이언트, 애플리케이션, 데이터 계층을 분리
SOA
서비스 중심으로 시스템을 구성
클라이언트/서버
서버가 여러 클라이언트에 서비스 제공
마스터/슬레이브
마스터가 작업을 분배하고 슬레이브가 실행
파이프-필터
데이터가 단계별로 처리됨
브로커
중앙 브로커가 요청을 적절한 서버에 전달
P2P
각 노드가 서버와 클라이언트 역할을 수행
이벤트-버스
특정 채널에 데이터를 전송하고 구독자가 수신
MVC
Model(데이터) - View(화면) - Controller(로직) 분리
블랙보드
여러 알고리즘이 협력하여 문제 해결
인터프리터
특정 언어를 해석하여 실행

4️⃣ 미들웨어 & 웹 서버

미들웨어란?

  • 서로 다른 시스템을 연결해주는 중간 소프트웨어

미들웨어 유형

유형
설명
DBMS
데이터베이스 연결을 위한 미들웨어
RPC
원격 프로시저 호출을 위한 미들웨어
MOM
메시지 기반 데이터 동기화
TP-Monitor
온라인 트랜잭션 관리
ORB
분산 객체 시스템을 위한 미들웨어
WAS
HTTP 요청을 처리하고 DB 연동 수행

웹 서버 vs WAS

구분
역할
웹 서버
정적인 콘텐츠 처리 (HTML, 이미지)
WAS
동적인 콘텐츠 처리 (DB 연동, 로직 실행)

5️⃣ 연동 오류 예측 & 대응

오류 유형

오류 유형
설명
생략 오류
한 자리가 빠짐
필사 오류
잘못된 문자 입력
전위 오류
문자 순서가 바뀜
이중 전위 오류
여러 개의 전위 오류 발생
추가 오류
불필요한 문자 추가
임의 오류
여러 오류가 조합됨

오류 대응 방법

대응 방식
설명
이중화
장애 발생 시에도 서비스가 지속되도록 시스템 복제
재해 복구 시스템 (DRS)
복구를 위한 백업 시스템 구축
복구 목표 시간 (RTO)
서비스 중단 후 허용 가능한 복구 시간
복구 목표 시점 (RPO)
데이터 손실을 허용할 수 있는 시점
업무 영향 분석 (BIA)
장애 발생 시 영향을 분석하고 복구 우선순위 결정

재해 복구 사이트 유형

유형
설명
복구 시간 (RTO)
Mirror Site
동일한 시스템을 실시간 복제
즉시
Hot Site
대기 상태의 동일한 시스템
수 시간
Warm Site
일부 데이터만 백업
수 일
Cold Site
최소한의 환경만 유지
수 개월

🎯 최종 요약

시스템 코드 설계 → 데이터를 관리하기 위해 코드 체계 설계

시스템 연동 → 데이터 연동, API 연동, 웹 서비스 연동 활용

소프트웨어 아키텍처 → n-Tier, SOA, 클라이언트/서버 등 다양한 패턴 활용

미들웨어 & 웹 서버 → DB 연결, 원격 프로시저, 트랜잭션 관리 등

연동 오류 예측 & 대응 → 오류 유형을 파악하고 복구 시스템 구축

'정처기' 카테고리의 다른 글

자료 구조  (0) 2025.02.14
인터페이스 설계  (0) 2025.02.13
공통 모듈 설계  (0) 2025.02.12
UI 설계  (0) 2025.02.11
UI 요구사항  (0) 2025.02.11