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 연결, 원격 프로시저, 트랜잭션 관리 등
✔ 연동 오류 예측 & 대응 → 오류 유형을 파악하고 복구 시스템 구축