Digital Tech2 Flashcards
마이크로서비스 아키텍처(Microservice Architecture)
▣ 키워드
- 아키텍처스타일, SOA유사, 모놀리틱 아키텍처
- 트랜잭션 문제, 개별 데이터 저장소
- API Gateway, 데이터 분리
- 통신구조, 배포구조, 데이터 분리구조
▣ 정의
- 웹 기반의 분산 시스템의 디자인에 많이 반영되고 있는 아키텍처 스티일
- 작은 서비스의 결합을 통해 하나의 응용프로그램을 개발하는 방법
- 각각의 서비스는 독립적인 비즈니스 로직으로 구성되며, 완전 자동화된 개발/배포환경에 의해 각각 독립적으로 배포될 수 있음
- 최소한의 중심적인 관리 체계가 있으며, 이 시스템은 각각 다른 프로그래밍 언어, 다른 데이터스토리지 기술로 작성하는 것이 가능함
▣ 특징
- 장점 : 기술 독립성, 호환성 보장, 독립적 개발/배포 용이, 관리 효율성, 확장 및 배포 용이, 낮은 결합도, 고속 개발 및 품질 유지
- 단점 : 기능 개발 복잡성 높음, 다수의 데이터 저장소 및 트랜잭션 관리 어려움, 통합테스트 관점에서 높은 복잡도, 배포 및 운영에 자동화 도구 필요
▣ 마이크로서비스 아키텍처 구조
1) 통신구조
- 각 컴포넌트는 서비스라는 형태로 구현되고 API Gateway를 이용하여 타 서비스와 통신
2) 배포구조
- 각 서비스는 독립된 서버로 타 컴포넌ㅌ와의 의존성이 없이 Load Balancer 통해 독립적으로 배포
3) 데이터 분리구조
- 서비스 별로 별도의 데이터베이스를 사용
- 수직 분할 원칙에 따른 독립된 데이터베이스
- API통신으로 성능 문제 야기, 이 기종 데이터 베이스간 트랜잭션 묶을 수 없음
스마트터치 바이러스
▣ 키워드
- 무선공유기 취약점 이용, 스마트 터치 업데이트 안내창, 개인 주요정보 탈취
▣ 정의
- 무선공유기를 통해 스마트폰으로 침투해 가짜사이트로 접속하도록 하여 스마트폰에 저장된 전화번호와 문자 등의 주요 정보를 탈취하는 기법
▣ 특징
- 유무선 공유기 취약점 이용, 스마트 터치 업데이트 확인 안내창 이용, 개인주요정보 탈취
▣ 감염경로
- 무선공유기를 해킹 후, 사용자가 인터넷 접속 시 스마트터치 업데이트 안내창 보여준 후, 확인버튼 클릭하면 바이러스 설치 후 개인정보 탈취
▣ 대응방안
1) 사용자 측면
- 무료 공용 와이파이 접속 지양
- 스마트폰 보안점검 무료앱 설치 : KISA 폰키퍼, 경찰청 Sclean)
- 악성코드 제거
- 앱설치 차단
2) 관리자 측면
- 공유기 관리자 페이지 비밀번호 설정
- 공유기 무선랜 비밀번호 설정
- 공유기 원격관리 기능 미사용
- 공유기 펌웨어 최신버전 유지
백트래킹(Back Tracking) 알고리즘
▣ 키워드 - 재귀호출, 깊이우선탐색(DFS), 가지치기, 모든해, 후보해 - 미로찾기 문제, Queen 문제 ▣ 정의 - 여러 후보 해 중에서 특정 조건을 충족시키는 모든 해를 찾는 알고리즘 - 모든 해 : 탈출로가 두 개인 미로 문제는 해가 두 개라고 할 수 있는데, 이 두 해를 모든 해 라고 함 - 후보 해 : 해가 될 수 있는 가능성을 가진 부분해의 조합 - 해가 될 조건을 만족시키는 진짜 해를 효율적으로 찾는 것이 백트래킹의 목적 ▣ 미로 찾기를 통한 백트래킹의 이해 1) 미로탐색 2) 트리구성 3) 노드순회 - 노드 이동 -> 자식 노드 목록 확인 -> 각 자식 노드로 이동 -> 조건 미충족 or 잎노드 -> 부모 노드로 이동 4) 재귀호출 - 부분해 계산 -> 다음 부분 후보해 목록 확인 -> 각 부분 후보해 계산 -> 조건 미충족 or 최종해 확보 -> 함수 반환 ▣ 백트래킹 알고리즘 슈도코드 void checknode (node v) { if(promising(v)) { if(there is a solution at v) { write the solution; } else { for (each child u of v) { checknode(u); } }
IMT-2020
▣ 키워드 - 20GBps(전송속도) / 100MBps(체감속도) / 10의 6승 제곱 km(최대기기 연결수) / 주파수 효율성(3X) / 에너지 효율성 (100X) - SDN, C-RAN, NFV, Mobile CDN, Massive MIMO, Full Duplex, NOMA ▣ 정의 - 최대 20GBps의 데이터 전송이 가능한 차세대 이동통신 기술 - 현재 Vision이 제시된 수준이며 구체적인 요구사항 제정 및 표준화가 2020년까지 진행될 예정 ▣ IMT-Advanced vs IMT-2020 - 최대 전송속도 : 1Gbps -> 20Gbps - 체감 전송속도 : 10Mbps -> 100 ~ 1000Mbps - 주파수 효율성 : 4G대비 3배 - 고속 이동성 : 350km/h -> 500km/h - 전송지연 : 10ms -> 1ms - 최대 기기 연결수 : 10의 5승 제곱 km -> 10의 6승 제곱 km - 에너지 효율성 : 4G대비 100배 - 면적당 데이터 처리용량 : 0.1 Mbps 제곱 미터 -> 10 Mbps 제곱 미터 ▣ 핵심기술 1) 무선 전송 기술 - Massive MIMO - Full duplex - NOMA - Enhanced Multi-Carrier - Adv. coding and modulation 2) 무선 네트워킹 기술 - C-RAN - SDN - NFV - Mobile CDN
협업필터링
▣ 키워드 - 사용자기반, 아이템기반, 추천시스템, 유사도, SNA, 개인화, 집단지성, 아마존 추천 알고리즘, 머하웃 ▣ 정의 - 많은 사용자들로부터 얻은 기호 정보에 따라 사용자들의 관심사들을 자동적으로 예측하게 해주는 방법 ▣ 특징 - 집단지성을 이용한 기술 : 유사도 계산 - 사용자의 행동을 활용 : 개인화, 다양성 보장 ▣ 종류 1) 사용자 기발 필터링 - 사용자별 아이템에 대한 선호도 조사 - 사용자간 유사도를 계산 - 가장 유사한 사용자가 선호하는 항목을 추천 2) 아이템 기반 필터링 - 아이템별 사용자의 선호도 조사 - 아이템간의 유사도를 계산 - 가장 유사한 아이템을 추천 ▣ 한계 1) 초기 평가자 문제 - 어느 사용자에게도 평가 받지 못한 새로운 아이템이 있을 경우 추천에서제외 2) 콜드 스타트 문제 - 지금까지 한번도 평가를 하지 않은 사용자가 있을 경우 사용자의 기호도 예측이 어려움 ▣ 한계 극복방안 - 풍부한 기초데이터와 추천알고리즘 개발 - 센서 데이터(GPS 등)와 결합 - 사회적 데이터 : 가치관, 라이프스타일 - 기반기술의 진화 : 증강현실, QR 코드 ▣ 사례 - 아마존 닷컴 : 고객별 맞춤화 서적 추천 - 아파치 머하웃 : 기계학습 분야 중 군집/분류/협업필터링(추천엔진) 집중적 제공
ARIES 회복 알고리즘
▣ 키워드
- WAL, Steal/No Force, Partial Rollback, Fuzzy Checkpoint, LSN(Log Sequence Number)
▣ 정의
- WAL 방식, Fuzzy Checkpoint를 사용하여 세밀한 단위의 락킹(locking)과 부분 롤백(Partial Rollback)을 지원하는 트랜잭션 복구 방법
▣ WASL 방식
- 시스템 고장 시 복구가 가능하게 하기 위한 정책.
- 데이터 페이지를 디스크에 쓰기 전에 항상 UNDO/REDO로그를 디스크에 먼저 쓰고 메모리 버퍼에 저장한 페이지가 언제 디스크에 기록될 것인가를 명시하는 방법
▣ 특징
- Partial Rollback 지원 : 하나의 트랙잭션을 SAVE POINT를 사용하여 몇 개의 구간으로 나누어 롤백 가능
- WAL 방식 이용 : Write Ahead Logging(WAL-Steal/No Force 정책)
- Fuzzy Checkpoint 사용 : 정상 트랜잭션의 수행과는 비동기적 Checkpoint 수행
▣ 주요 3단계
1) 분석 : REDO 시작 로그 위치 결정
2) REDO : REDO 된 로그 레코드의 리스트를 관리하여 불필요한 REDO 연산이 수행되지 않도록 함
3) UNDO : UNDO시 원상 회복로그레코드 (CLR : Compensation Log Record)를 기록해 어떤 작업이 UNDO되었는지를 표시
▣ ARIES회복을 위해 필요한 정보
1) 로그
- 페이지에 대한 갱신(write), 트랜잭션 완료(commit) 및 철회(abort), 갱신에 대한 UNDO, 트랜잭션 종료(end) 시 기록
2) 트랜잭션 테이블
- 식별자, 상태, 해당 트랜잭션의 가장 최근 로그레코드의 LSN)이 관리
3) 오손 페이지 테이블
- 버퍼에 있는 오손페이지에 대한 정보
▣ ARIES 회복 알고리즘의 검사점 기록
1) 로그에 begin_checkpoint 레코드를 기록
2) 로그 end_checkpoint 레코드를 기록 (트랜잭션 테이블과 오손페이지 테이블의 내용도 함께 저장)
3) 특수 파일에 begin_checkpoint 레코드의 LSN 기록
WAL (Write Ahead Logging)
▣ 정의
- 시스템 고장 시 복구가 가능하게 하기 위한 정책. 데이터 페이지를 디스크에 쓰기 전에 항상 UNDO/REDO 로그를 디스크에 먼저 쓰고 메모리 버퍼에 저장한 페이지가 언제 디스크에 기록될 것 인가를 명시하는 방법
▣ 정책
1) Steal
- 다른 트랜잭션이 메모리 버퍼를 사용하려고 하면 가장 오래 사용하지 않은(LRU) DIRTY 페이지를 데이터베이스 볼륨에 flush 하고 버퍼를 해재
- 트랜잭션을 롤백 할 때 과거 데이터로 복구하기 위해 UNDO 로깅이 필요
2) No Steal
- 트랜잭션이 완료될 때까지 DIRTY 페이지를 반드시 버퍼에 유지해야 하므로 충분한 버퍼공간을 요구
3) Force
- Commit 할때 트랜잭션이 갱신한 모든 페이지를 즉시 DB 볼륨에 반영
- 트랜잭션 커밋을 할 때마다 매번 디스크에 쓰기를 해야 하므로 성능에 영향을 미침
4) No Force
- 커밋 과정 중 트랜잭션이 갱신한 모든 페이지를 즉시 데이터베이스 볼륨에 반영하지 않음
- 단, 시스템 고장이 발생한 경우 성공적으로 커밋된 데이터 변경을 보장하기 위해 REDO로깅이 필요
※ No Steal/Force 정책이 가장 구현하기 쉽지만 성능이 가장 나쁨. Steal/No Force 정책이 성능상 가장 유리해 대부분의 DB에서 사용됨
멀바타이징(Malvertising)
▣ 키워드 - Malware, Advertising - Drive by Download, Ransomeware ▣ 정의 - 멀웨어(Malware)와 애드버타이징(Advertising)의 합성어로, 온라인 인터넷 광고에 악성코드를 포함해 사용자들을 공격하는 방법 ▣ 특징 - 검증의 어려움 - 합법적 경로 이용 - 랜섬웨어 감염 ▣ 공격방식 1) 해커가 합법적으로 비용을 지불 후 온라인 광고를 게재 2) 사용자가 악성코드가 포함된 배너 광고 클릭 3) 드라이브 바이 다운로드 (보안패치 하지 않은 사용자 PC에 알려진 보안 취약점을 공격하는 악성코드 다운로드) 4) 웹 위젯 등을 통해 악성 사이트로 리다이랙션, 숨겨진 iframe 등을 임베디드하여 다운로드 유도, 정상상품으로 가장한 악성코드 다운로드 유도 ▣ 대응방안 1) 개인적 측면 - 중요 자료 백업, 백신 프로그램 설치, 주기적 보안 업데이트 2) 기업적 측면 - 멀바타이징 발생시 책임소재 결정, 공식적 해결절차 마련 및 보안 규정 강화, 인터넷망 및 업무망 분리
비정형 데이터
▣ 키워드 - 정형 데이터, 비정형 데이터 - 텍스트 마이닝, 오피니언 마이닝, 소셜 네트워크 분석, 현실 마이닝, 오디오 마이닝, 이미지 마이닝 - 패턴인식, 자연어 처리, 기계학습 ▣ 정의 - 규격화된 데이터 필드에 저장되지 않은 데이터로, 텍스트 분석이 가능한 텍스트 문서 외 이미지/동영상/음성 데이터 등을 지칭하는 데이터 ▣ 분석기법 1) 텍스트 기반 - 텍스트 마이닝 : NLP - 오피니언 마이닝 : 긍정, 부정, 중립 - 소셜 네트워크 분석 : Hub, 영향 2) 상황인지 기반 - 현실 마이닝 : 휴대폰 통한 행동패턴 분석 및 예측 기법 - 오디오 마이닝 : 음성파일 - 비디오 마이닝 : 카메라 통한 행태 분석 ▣ 분석기법의 기반 기술 - 패턴인식 - 자연어 처리 - 컴퓨터 비전 - 기계학습 - 양자컴퓨터 - 시멘틱웹
NVGRE (Network Virtualization using Generic Routing Encapsulation)
▣ 키워드 - VLAN 한계극복, 캡슐화, 터널링, 네트워크 가상화 - TNI, GRE, RFC2784, RFC2890 - VXLAN(Vmware, Cisco), NVGRE (Microsoft) - SDN, OpenStack, Cloud ▣ VLAN 한계점 - 4,096개 세그먼트만 할당 가능 - 대규모 클라우드, 가상화 환경에서 확장성 한계 봉착 ▣ NVGRE 정의 - 이더넷상 Layer2 데이터 프레임을 Layer3 패킷에 캡슐화한 후 터널링 기술을 통하여 타 네트워크와 직접 통신하는 기술 ▣ 구성 - Logical View - Physical View - NVGRE 가상화 - VM트래픽을 캡슐화하여 물리적인 네트워크 토폴로지와 무관하게 논리적인 가상 네트워크를 생성/통합 관리 가능함 - 가상 네트워크 트래픽 식별에는 TNI라는 24bit ID 체계를 사용 ▣ 패킷 포맷 - Outer MAC - Outer IP - GRE, TNI - Inner MAC - Inner Payload - CRC ▣ TNI (Tenant Networks Identifier) - NVGRE에서 Tenant 별 트래픽을 식별하기 위한 24bit 고유 ID 체계 - GRE(Generic Routing Encapsulation) : IP 패킷을 다른 크트워크 상으로 라우팅하기 위한 터널링 프로토콜 ▣ NVGRE vs VXLAN
NVGRE (Network Virtualization using Generic Routing Encapsulation)
▣ 핵심 기술 - GRE(Generic Routing Encapsulation) - GRE Tunnel ▣ 주소 체계 - 24bit TNI (Tenant Network Identifier) ▣ 개발 벤더 - Microsoft ▣ 활용 사례 - Windows Server 2012, Hyper-V
VXLAN (Virtual Extensible LAN)
▣ 핵심 기술 - VTEP(Virtual Tunnel End Point) : 다수의 VM을 연결하고 패킷을 포워드하는 가상 스위치 ▣ 주소 체계 - 24bit VNI(Virtual Network Identifier) ▣ 개발 벤더 - VMware, Cisco ▣ 활용 사례 - vSphere, vSwitch
IVN(In Vehicle Network)
▣ 키워드 - ECU, CAN, LIN, FlexRay, MOST - CAN 멀티마스터 구조, LIN 마스터 슬레이브 구조, FlexRay x-by-wire ▣ 중요성 - 전장부품 증가 -> ECU증가 - 인포테인먼트 기기 증가 -> 데이터 트래픽 증가 => 차량 내부 네트워크 의존도 심화 ▣ 개념 - 자동차 전장 부품 ECU간 데이터 전송을 위해 차량 내부에 임베디드된 차량 전용 네트워크 기술 - 차량 내부 데이터 트래픽 전송을 위해 설계 구축된 전용 네트워크 기술 ▣ 주요기술 - CAN, LIN, FlexRay, MOST ▣ IVN기술과 스마트카 연계 방안 1) 안전 - ECU간 핵심 운행 정보 전달 : FLEXRAY 기반 브레이크 - 안전 핵심 시절 직접 제어 : 기화기, 브레이크, 조향장치 2) 편의 - 기온별 편의시설 자동조절 : LIN을 통한 썬루프, 에어컨 온도 - 달리는 사무실 환경 구현 : MOST기반 실시간 화상회의 3) 오락 - 사용자 엔터테인먼트 환경 구현 : LTE 연계 스트리밍 비디오, 라디오
CAN (Controller Area Network)
▣ 기술개괄 - ECU간 직렬통신 네트워크 IVN의 De Facto 표준규격 ▣ 전송속도 - 124Kbps ~ 1Mbps ▣ 토폴로지 - 멀티 마스터 구조 ▣ 통신특징 - Event Driven 통신 방식 - L1, L2 계층만 존재함 ▣ 활용사례 - 차량 조향, 엔진 정보 전달 - 방향등, 파워 스티어링 ▣ 개발사 - Bosch
LIN (Local Interconnect Network)
▣ 기술개괄 - 차량 바디에 탑재된 편의시설 제어용 ▣ 전송속도 - 12Kbps ~ 20Kbps ▣ 토폴로지 - 마스터/슬레이브 구조 ▣ 통신특징 - 기능이 제한적, 구현이 용이 - 주행보다는 편의시설에 국한 ▣ 활용사례 - 차량 바디내, 편의시설 제어 - 파워윈도우, 썬루프, 전동미러 ▣ 개발사 - 모토로라
FLEXRAY
▣ 기술개괄 - 안전에 직접적인 부품 제어 - X-by-wire 구현 ▣ 전송속도 - 10Mbps ▣ 토폴로지 - Bus/Star 토폴로지 구조 ▣ 통신특징 - Time slot 기반 TDMA ▣ 활용사례 - 기계식 핵심 부품 전자화 - ABS, 브레이크, 트랜스미션 ▣ 개발사 - BMW ※ X-by-wire 기술 : 기계식 시스템 대신 ECU, 센서, 액츄에이터 기반으로 기계 장비를 제어하기 위한 전자 기술 ex) Brake by wire : 종래 유압 벨브가 아닌 운전자의 페달 압력을 센싱(디지털화)하고 ECU가 판단(정보처리)후, 엑츄에이터가 실제 제동 실시
MOST (Media Oriented Systems Transport)
▣ 기술개괄 - 자동차 멀티미디어와 인포테인먼트 네트워킹의 표준 ▣ 전송속도 - 150Mbps ▣ 토폴로지 - Ring 토폴로지 구조 ▣ 통신특징 - Ethenet 기반 고속 백본구현 ▣ 활용사례 - 차량 내부 Multimedia 기기 스트리밍 데이터 전송 ▣ 개발사 - MOST Cooperation
소프트웨어 아키텍처 품질속성 시나리오
▣ 키워드 - 자극 유발원(Source of stimulus), 자극(Stimulus), 대상체(Artifact), 환경(Environment), 응답(Response), 응답 측정(Response measure) ▣ 정의 - 시스템이 달성해야 할 품질 속성 식별 및 품질속성 목표를 도출하여 명세화한 문서 ▣ 특징 - 명세 기반 요구사항 생성 - 시나리오 생성 ▣ 구성요소 1) 자극 유발원 : 사람, 컴퓨터 시스템 2) 자극 : 반응의 원인이되는 조건 3) 대상체 : 자극을 받는 대상 4) 환경 : 조건이 만족되었을 때 시스템의 상태 5) 응답 : 자극이 시스템에 도달한 이후의 행위 6) 응답측정 : 응답이 발생할 때 측정이 가능한 대응의 결과값 ▣ 품질속성 시나리오 사례 1) 가용성 파생 시나리오 - 자극 유발원 : 시스템 외부 - 자극 : 기대치 않은 메시지 - 대상체 : 프로세스 - 환경 : 정상 동작 - 응답 : 운영자에게 동작을 계속 하라고 알림 - 응답 측정 : 중단시간 없음 2) 변경용이성 파생 시나리오 - 자극 유발원 : 개발자 - 자극 : 사용자 인터페이스의 변경을 원한 - 대상체 : 코드 - 환경 : 설계 시험 - 응답 : 변경은 어떤 부작용도 없이 이루어져야 함 - 응답 측정 : 3시간 이내 3) 성능 파생 시나리오 - 자극 유발원 : 사용자 - 자극 : 거래를 요청한다 - 대상체 : 시스템 - 환경 : 정상 동작 - 응답 : 거래는 처리된다 - 응답 측정 : 평균 2초의 대기시간 4) 보안성 파생 시나리오 - 자극 유발원 : 정상적으로 식별된 개인 - 자극 : 정보를 변경하려는 시도 - 대상체 : 시스템 내부 데이터 - 환경 : 정상 동작 - 응답 : 시스템은 감사 추적을 유지한다 - 응답 측정 : 올바른 데이터가 1일 내로 저장된다 5) 시험용이성 파생 시나리오 - 자극 유발원 : 단위 테스터 - 자극 : 단위 시험 수행 - 대상체 : 시스템의 컴포넌트 - 환경 : 컴포넌트가 완성되는 시점 - 응답 : 동작을 제어하는 인터페이스를 갖는 컴포넌트 - 응답 측정 : 전체 경로의 85%가 3시간 내에 달성되었는지 여부 6) 사용편의성 파생 시나리오 - 자극 유발원 : 사용자 - 자극 : 에러의 영향을 최소화한다 - 대상체 : 시스템 - 환경 : 런타임시 - 응답 : 현재 동작을 취소하길 원한다. - 응답 측정 : 최소 동작은 1초 이내에 수행되어야 한다