Coffee Chat Brewing AI Knowledge

eng kor

네트워크 4: 통합 구현

통합 구현

요구사항에 맞게 송/수신 모듈과 중계 모듈 간의 연계를 구현하는 것입니다.

  • 송/수신 방식 및 모듈 구현 방법, 시스템 아키텍쳐 등에 따라 다르므로 요구사항과 환경에 적합하게 설계해야 합니다.
  • 구성: 송/수신 시스템 및 모듈, 중계 시스템, 연계 데이터, 네트워크

연계 매커니즘

연계 방식

  • 직접 연계 방식: 중간 매개체 없이 송/수신 시스템이 직접 연계하는 방식
    • DB Link, API/Open API, DB Connection, JDBC 등
  • 간접 연계 방식: 중간 매개체를 두고 송/수신 시스템이 연계하는 방식
    • 연계 솔루션, ESB, 소켓, 웹 서버 등

연계 서버와 송/수신 시스템

  • 연계 서버: 데이터 형식 변환, 송/수신 수행 등 관련 모든 처리 수행
  • 송신 시스템: 인터페이스 테이블이나 데이터를 형식에 맞게 생성 및 전송
  • 수신 시스템: 데이터 수신 및 DB 반영, 인터페이스 테이블이나 파일로 생성

연계 테스트

연계 시스템과 그 구성 요소가 정상적으로 작동하는지 확인하는 활동입니다.

  • 과정: 연계 테스트 케이스 작성 → 테스트 환경 구축 → 테스트 수행 → 테스트 수행 결과 검증

연계 데이터 보안

송신 시스템에서 수신 시스템으로 전송되는 연계 데이터는 보안에 취약할 수 있으므로 이에 신경써야 합니다. 보안 방식으로는:

  • 전송 구간 보안: 전송 중인 데이터나 패킷(packet)을 가로채지 못하게 암호화 기능이 있는 프로토콜을 사용
  • 데이터 보안: 송신 시스템에서 연계 데이터를 추출할 때, 수신 시스템에서 데이터를 DB에 반영할 때 데이터를 암호화/복호화 하는 것

XML JSON ?

네트워크 3: IP 주소와 서브네팅

IP 주소 (Internet Protocol Address)

인터넷에 연결된 모든 컴퓨터 자원을 구분하기 위한 고유한 주소.

IPv4 (Internet Protocol version 4)

  • 8비트씩 4부분, 총 32비트로 구성.
  • 네트워크 부분의 길이에 따라 A 클래스에서 E 클래스까지 총 5단계로 구분됨.

IPv6 (Internet Protocol version 6)

  • 16비트씩 8부분, 총 128비트로 구성.
  • 각 부분을 16진수로 표현하고 콜론(:)으로 구분함.
  • IPv4의 주소 부족 문제를 해결하기 위해 개발됨.
  • 인증성, 기밀성, 데이터 무결성이 지원되어 보안 문제를 해결할 수 있음.
  • 주소 체계:
    • 유니캐스트 (Unicast): 단일 송신자와 단일 수신자 간의 통신 (1:1 통신)
    • 멀티캐스트 (Multicast): 단일 송신자와 다중 수신자 간의 통신 (1:N 통신)
    • 애니캐스트 (Anycast): 단일 송신자와 가장 가까운 단일 수신자 간의 통신 (1:1 통신)

서브네팅 (Subnetting)

할당된 네트워크 주소를 다시 여러 개의 작은 네트워크로 나눠 사용하는 것.

  • 서브넷 마스크 (Subnet mask): 4Byte의 IP 주소 중 네트워크 주소와 호스트 주소를 구분하기 위한 비트. 이것을 변경해 네트워크 주소를 여러 개로 분할해 사용함.

도메인 네임 (Domain Name)

숫자로 된 IP 주소를 사람이 이해하기 쉬운 문자 형태로 표현한 것.

  • 구성: 호스트 컴퓨터명, 소속 기관명, 소속 기관 종류, 소속 국가명 순으로 구성. 갈수록 상위 도메인을 의미.
  • DNS (Domain Name System): 문자로 된 도메인 네임을 IP 주소로 변환하는 시스템.

네트워크 2: OSI 참조 모델과 프로토콜

프로토콜 (Protocol)

서로 다른 기기 간 데이터 교환을 원활히 수행할 수 있도록 표준화한 통신 규약.

  • 1965년 Tom Marill의 ‘프로토콜’ 정의: 컴퓨터가 메시지를 전달하고, 메시지가 잘 도착했는지 확인하며, 도착하지 않았을 경우 메시지를 재전송하는 일련의 방법을 ‘기술적 은어’라는 의미의 ‘프로토콜’로 정의한 바 있음.

프로토콜의 기본 요소

  • 구문 (Syntax): 전송하려는 데이터의 형식, 부호화, 신호 레벨을 규정.
  • 의미 (Semantics): 기기 간 효율적 정보 전송을 위한 협조 사항 및 오류 관리를 위한 제어 정보를 규정.
  • 시간 (Timing): 기기 간 통신 속도, 메시지의 순서 제어 등을 규정.

패킷 교환 방식 (Packet Switching)

메시지를 일정한 길이의 패킷으로 잘라서 전송하는 방식.

  • 가상 회선 방식: 기기 간 논리적인 가상 통신 회선을 미리 설정하여 송신지와 수신지 사이 연결을 확립한 후, 설정된 경로를 따라 패킷을 순서대로 운반하는 방식.
    • 제어 패킷에 의해 정보 전송 전 경로가 설정됨.
    • 모든 패킷은 발생 순서대로 전송됨, 즉 패킷의 송/수신 순서가 같음.
  • 데이터그램 방식: 연결 경로를 설정하지 않고, 인접 노드들의 트래픽(전송량) 상황을 감안해 각 패킷을 순서에 상관 없이 독립적으로 운반하는 방식.
    • 패킷마다 전송 경로가 다름. 패킷은 목적지의 주소를 완전히 가지고 있어야 함.
    • 패킷이 순서에 상관 없이 여러 경로를 통해 전송됨, 수신 측에서 순서를 재정리함.


OSI 참조 모델 (OSI 7계층)

다른 시스템 간 원활한 통신을 위해 ISO(국제표준화기구)에서 제안한 통신 규약 (Protocol).

osi osi

응용 계층 (Application Layer)

사용자/응용 프로그램이 OSI 환경에 접근할 수 있도록 서비스 제공.

표현 계층 (Presentation Layer)

서로 다른 데이터 표현 형태를 갖는 시스템 간 상호 접속을 위해 코드 변환, 데이터 암호화, 데이터 압축, 구문 검색 등의 기능 수행.

세션 계층 (Session Layer)

송/수신 측 간 관련성 유지 및 대화 제어 담당.

전송 계층 (Transport Layer)

종단 시스템 (end-to-end) 간 투명하고 균일한 데이터 전송 서비스 제공.

네트워크 계층 (Network Layer)

개방 시스템 간 네트워크 연결 관리 및 데이터 교환/중계 기능.

인접한 개방 시스템 간 효율적인 정보 전송을 위해 연결 설정과 유지 및 종료를 담당.

물리 계층 (Physical Layer)

장치 간 실제 접속과 절단 등 기계적, 전기적, 기능적, 절차적 특성에 관한 규칙을 정의.


TCP/IP (Transmission Control Protocol/Internet Protocol)

인터넷에 연결된 다른 기종의 컴퓨터 간 데이터를 주고 받을 수 있도록 하는 표준 프로토콜.

응용 계층

응용 프로그램 간 데이터 송/수신 제공. TELNET, FTP, SMTP, SNMP, DNS, HTTP 등

전송 계층

호스트들 간 신뢰성 있는 통신 제공. TCP, UDP, RTCP 등.

  • TCP (Transmission Control Protocol): 가상 회선 방식을 기반으로 하는 양방향 연결 서비스를 제공.
    • OSI 7계층 중 전송 계층에 해당.
    • 패킷의 다중화, 순서 제어, 오류 제어, 흐름 제어 기능을 제공.
  • UDP (User Datagram Protocol): 데이터 전송 전에 비연결형 서비스를 제공하는 프로토콜.
    • TCP에 비해 상대적으로 단순한 헤더 구조를 가짐. → 오버헤드가 적음, 흐름 제어나 순서 제어가 없음, 전송 속도가 빠름.
    • 실시간 전송에 유리, 신뢰성 보다는 속도가 중요한 네트워크에 사용.

인터넷 계층

데이터 전송을 위한 주소 지정, 경로 설정을 제공. IP, ICMP, IGMP, ARP, RARP 등.

  • IP (Internet Protocol): 데이터그램 방식을 기반으로 하는 비연결형 서비스를 제공.
    • OSI 7계층 중 네트워크 계층에 해당.
    • 패킷의 분해/조립, 주소 지정, 경로 선택 기능을 제공.
  • ICMP (Internet Contol Message Protocol; 인터넷 제어 메시지 프로토콜): IP와 조합하여 통신 중 발생하는 제어 메시지를 관리.
    • 오류 처리와 전송 경로 변경 등을 제어 메시지로 관리.
    • 헤더는 8Byte로 구성됨.
  • ARP (Address Resolution Protocol; 주소 분석 프로토콜): 호스트의 IP 주소를 연결된 네트워크 접속 장치의 물리적 주소(MAC Address)로 변환.
  • RARP (Reverse Address Resolution Protocol; 역순 주소 결정 프로토콜): MAC 주소를 IP 주소로 변환.

네트워크 액세스 계층

실제 데이터(프레임)를 송/수신함. Ethernet, IEEE 802, HDLC, X.25, RS-232C, ARQ, L2TP 등

  • L2TP (Layer 2 Tunneling Protocol): PPTP와 L2F의 장점을 결합하여 만들어진 터널링 프로토콜.
    • OSI 7계층 중 데이터 링크 계층에서 구현됨.
    • 자체적으로 암호화나 인증 기능이 없어 다른 보안 프로토콜과 함께 사용되는 경우가 많음.
    • PPTP (Point to Point Tunneling Protocol): PPP 패킷을 IP 패킷에 캡슐화하여 통과시키기 위한 터널링 프로토콜.
    • L2F (Layer 2 Forwarding): 인터넷을 통한 VPN 연결을 위해 개발된 터널링 프로토콜

네트워크 1: 네트워크와 관련 기술

네트워크 (Network)

두 대 이상의 컴퓨터를 연결하여 자원을 공유하는 것.

네트워크의 구성 형태 (Topology)

net_top

  • 성형 (Star; 중앙 집중형): 중앙 컴퓨터가 있고 이를 중심으로 단말 장치들이 연결되는 형태.
  • 링형 (Ring; 루프형): 컴퓨터와 단말 장치들을 서로 이웃하는 것끼리 연결시킨 형태. Point-to-point 방식.
  • 버스형 (Bus): 하나의 통신 회선에 여러 대의 단말 장치가 연결된 형태.
  • 계층형 (Tree; 분산형): 중앙 컴퓨터와 일정 범위의 단말 장치는 하나의 통신 회선으로 연결하고, 이웃하는 단말 장치는 일정 구역 내의 중간 단말 장치로부터 다시 연결하는 형태.
  • 망형 (Mesh): 모든 지점의 컴퓨터와 단말 장치를 서로 연결한 형태. 노드의 연결성이 높음.
    • 노드 n개에 대해 n(n-1)/2개의 회선이 필요하고, 노드 당 n-1개의 포트가 필요함.

네트워크 분류

  • LAN (Local Area Network; 근거리 통신망): 회사, 학교 등에서 비교적 가까운 거리의 프린터, 저장장치 등과 같은 자원을 연결.
    • 사이트 간 거리가 짧아 데이터 전송 속도가 빠르고, 에러 발생률이 낮음.
    • 주로 버스형이나 링형 구조 사용.
  • WAN (Wide Area Network; 광대역 통신망): 국가-국가 혹은 대륙-대륙 등 멀리 떨어진 사이트를 연결하여 구성.
    • 사이트 간 거리가 멀어 통신 속도가 느리고, 에러 발생률이 높음.

NAT (Network Address Translation)

한 개의 정식 IP 주소에 대량의 가상 사설 IP 주소를 할당 및 연결하는 기능. 하나의 IP 주소로 외부에 접속할 수 있는 노드 수가 어느 시점에 1로 제한되는 문제가 있는데, IP 마스커레이드(Masquerade)를 이용해 해결 가능.

IEEE 802의 주요 표준 규격

IEEE 802는 LAN의 표준안임.

  • 802.1: 전체 구성, OSI 참조 모델과의 관계, 통신망 관리 등에 관한 규약.
  • 802.2: 논리 링크 제어 (LLC) 계층에 고나한 규약
  • 802.3: CSMA/CD 방식의 매체 접근 제어 (MAC) 계층에 관한 규약
  • 802.4: 토큰 버스 방식의 MAC 계층에 관한 규약
  • 802.5: 토큰 링 방식의 MAC 계층에 관한 규약
  • 802.6: 도시형 통신망 (MAN)에 관한 규약
  • 802.9: 종합 음성/데이터 네트워크에 관한 규약
  • 802.11: 무선 LAN에 관한 규약

IEEE 802.11의 주요 표준 규격

  • 802.11: 2.4GHz 대역 전파와 CSMA/CA 기술 사용, 최고 2Mbps의 전송 속도 지원.
  • 802.11a: 5GHz 대역 전파와 OFDM 기술 사용, 최고 54Mbps의 전송 속도 지원.
  • 802.11b: 802.11의 개선안, 초기 대역 전파와 기술을 사용해 5배 개선된 최고 11Mbps의 전송 속도 지원.
  • 802.11e: 802.11의 부가 기능 표준, QoS 기능 지원 위해 MAC 계층 부분을 수정함.
  • 802.11g: 2.4GHz 대역 전파를 사용해 최고 54Mbps의 전송 속도 지원 (802.11a와 동일 수준).
  • 802.11n: 2.4GHz와 5GHz 대역을 사용, 최고 600Mbps의 전송 속도 지원.


네트워크 경로 제어 (Rounting)

송/수신 측 간 전송 경로 중에서 최적의 패킷 교환 경로를 결정하는 기능.

  • 경로 제어표 (Routing table)를 참조해서 이뤄지고, 라우터 (Router)가 수행함.
  • 대표적 경로 제어 프로토콜: IGP, EGP, BGP

IGP (Interior Gateway Protocol)

하나의 자율 시스템 (AS) 내의 라우팅에 사용되는 프로토콜.

  • RIP (Routing Information Protocol; 거리 벡터 라우팅 프로토콜): 현재 가장 널리 사용되는 라우팅 프로토콜.
    • 최단 경로 탐색에 Bellman-Ford 알고리즘 사용.
    • 소규모 AS 내 효율적인 방법
  • OSPF (Open Shortest Path First protocol): RIP에서 기능을 개선한 인터넷 프로토콜.
    • 최단 경로 탐색에 Dijkstra 알고리즘 사용.
    • 대규모 네트워크에서 많이 사용.

EGP (Exterior Gateway Protocol)

AS 간 라우팅, 즉 게이트웨이 간 라우팅에 사용되는 프로토콜.

BFP (Border Gateway Protocol)

AS 간 라우팅 프로토콜. EGP의 단점을 보완. 초기에 라우터들이 연결될 때는 전체 라우팅 테이블을 교환, 이후에는 변화된 정보만을 교환함.


네트워크 흐름 제어 (Flow Control)

네트워크 내 원활한 흐름을 위해 송/수신 사이 전송되는 패킷의 양이나 속도를 규제하는 기능.

  • 정지-대기 (Stop-and-Wait): 수신 측의 확인 신호(ACK)를 받은 후 다음 패킷을 전송하는 방식.
    • 한 번에 하나의 패킷만을 전송.
  • 슬라이딩 윈도우 (Sliding Window): 수신 측의 확인 신호 없이도 송신 측에서 보낼 수 있는 패킷의 수를 미리 정해놓고, 그 수만큼 연속적으로 전송하는 방식.
    • 한 번에 여러 개의 패킷을 전송할 수 있어 효율적.
    • 보낼 수 있는 패킷의 최대치는 윈도우 크기 (Window size)를 의미함.

데이터베이스 4: 트랜잭션

트랜잭션 (Transaction)

DB의 상태를 변환하는 논리적 기능을 수행하기 위한 작업의 단위 혹은 일련의 연산들.

  • DB 시스템에서 병행제어 및 회복 작업 시 처리되는 작업의 논리적 단위.
  • 사용자가 시스템에 서비스 요구 시 시스템이 응답하기 위한 상태 변환 과정의 작업 단위.

트랜잭션의 특성

  • Atomicity (원자성)

    : 트랜잭션 연산은 DB에 모두 반영되도록 완료(commit)되던지, 전혀 반영되지 않도록 복구(rollback)됨.

  • Consistency (일관성): 트랜잭션이 성공적으로 완료되면 DB 상태는 언제나 일관성 있는 상태가 됨.
  • Isolation (독립성, 격리성, 순차성): 트랜잭션이 병행 실행되는 경우 다른 트랜잭션의 연산에 끼어들 수 없음.
  • Durability (영속성, 지속성): 트랜잭션이 성공적으로 완료되면 그 결과는 시스템이 고장나더라도 영구적으로 반영됨.

CRUD 분석

프로세스와 테이블 간 CRUD 매트릭스를 만들어 트랜잭션을 분석하는 것.

  • CRUD 분석을 통해 트랜잭션이 많이 몰리는 테이블을 파악할 수 있어, 디스크 구성 시 유용.
  • CRUD 매트릭스 구성: 각 쉘에 Create, Read, Update, Delete의 앞 글자가 들어감.


병행제어 (Concurrency Control)

여러 개의 트랜잭션을 병행 수행할 때, 동시 실행되는 트랜잭션들이 DB의 일관성을 파괴하지 않도록 트랜잭션 간 상호 작용을 제어하는 것.

  • 종류: 로킹, 타임 스탬프 순서, 최적 병행수행, 다중 버전 기법

로킹 (Locking)

트랜잭션들이 어떤 로킹 단위를 액세스하기 전에 잠금(Lock)을 요청하고, Lock이 허락되어야만 해당 로킹 단위를 액세스할 수 있도록 하는 병행제어 기법.

  • 주요 데이터의 액세스를 상호 배타적으로 하게 됨.
  • 로킹 단위 (Locking Granularity): 한꺼번에 로킹할 수 있는 객체의 크기.
    • 데이터베이스, 파일, 레코드, 필드 등이 로킹 단위가 될 수 있음.

      로킹 단위 크기 Lock 수 관리 난이도 병행성 수준
      적음 쉬움 낮아짐
      작음 많음 어려움 높아짐

타임 스탬프 순서 (Time Stamp Ordering)

트랜잭션 실행 전에 시간표(Time stamp)를 부여하여 부여된 시간에 따라 트랜잭션 작업을 수행하는 병행제어 기법. 직렬성 순서를 결정하기 위해 트랜잭션 처리 순서를 미리 선택하는 기법 중 가장 보편적인 방법.


회복 (Recovery)

트랜잭션 수행 중 장애가 발생하여 DB가 손상되었을 때, 손상되기 이전의 상태로 복구하는 작업.

  • 종류: 연기 갱신 기법, 즉각 갱신 기법, 그림자 페이지 대체 기법, 검사점 기법

REDO와 UNDO

  • Redo (재시도): DB가 비정상적으로 종료되었을 때, 디스크 내 로그에 트랜잭션의 시작(start)과 완료(commit) 기록이 있는 트랜잭션들을 재작업함. → 로그를 이용해 해당 데이터 항목에 대해 이전 값을 이후 값으로 변경하는 연산.
  • Undo (취소): DB가 비정상적으로 종료되었을 때, 디스크 내 로그에 트랜잭션의 시작(start) 기록은 있지만 완료(commit) 기록은 없는 트랜잭션들이 변경한 내용을 모두 취소함. → 로그를 이용해 해당 데이터 항목에 대해 이후 값을 이전 값으로 변경하는 연산.

즉각 갱신 기법 (Immediate Update)

트랜잭션이 데이터를 갱신(update)하면 트랜잭션이 부분 완료 되기 전이라도 즉시 실제 DB에 반영하는 방법.

  • 장애 발생 시 회복 작업을 대비해 갱신된 내용은 로그에 보관함.
  • Redo와 Undo 모두 사용 가능.