질문 1. 배열과 연결 리스트의 차이 2. 각 자료구조의 시간복잡도 시간복잡도 Array Array list Linked List Doubly Linked List 삽입 삭제 조회 특징 및 장단점 1) 삽입/삭제 시 특징은? 2)최악의 경우를 고려한 시간복잡도는? 배열과의 차이점은? 최악의 경우를 고려한 시간복잡도는? - 3. 연결리스트, 이중 연결리스트에서 삽입, 삭제, 조회의 시간복잡도가 O(1)이 나오려면 어떤 경우 인가? 4. 스택 & 큐의 형태에 대해 설명하시오 5. 이진 탐색 트리 탐색의 시간복잡도는? 6. 전위, 중위 후위에 대한 순서는? 전위: 중위: 후위: 7. 우선순위 큐의 구조와 시간복잡도는? 8. 해시 테이블의 구조와, 조회가 빠른 이유는? 9. 해시 테이블의 충돌이 발생할때 분리 ..
1. Union FInd 관련 정리 노드와 간선이 연결되어 그래프가 주어질 때, 각 노드의 부모노드를 찾아 반환해주는 알고리즘 즉, 연결된 노드끼리 같은 그래프에 포함되어 있는지 확인하는 알고리즘 # 부모 노드 탐색 테이블에 위치한 값을 반환 def getgraph(graph, x): if graph[x] == x: return x else: return getgraph(graph, graph[x]) # 연결된 두 노드 중 부모 노드를 입력하는 함수 def uniongraph(graph, a, b): a = getgraph(graph, a) b = getgraph(graph, b) print(graph, a, b) if a < b: graph[b] = a else: graph[a] = b # 연결된 두 ..
1. DDoS(Distributed Denial of Service) 분산 서비스 거부 다수의 PC를 좀비PC로 만들어 하나의 표적 서버를 공격함으로 일시적으로 서비스 중단을 일으키는 공격 2. DDoS(Distributed Denial of Service) 분산 서비스 거부 ■ SYN Flood 3-way handshake과정에서 마지막 ACK패킷을 서버가 기다리는 동안 공격자가 더 많은 SYN 패킷을 전송 ■ UDP Flood 공격자가 봇넷을 활용해 공격대상에게 서버로 많은 양의 트래픽 전송 ■ HTTP Flood 공격 대상 웹사이트에 지속적으로 많은 양의 HTTP GET 요청을 보내 웹서버 자원을 소진하게해 일반사용자들이 웹서버 방문 불가능
블록체인과 보안요소 관계 ■ 무결성 이전 블록의 해시값과 연결된 형태로 이루어져있기 때문에, 악의적으로 조작하게 된다면 블록이 깨져 해당 사용자는 블록체인 네트워크에 접속할 수 없음. 일단 트랜잭션이 블록체인에 기록되면 해당 내용을 삭제하거나 되돌리는 것이 거의 불가능 ※ 실제로 하이퍼레저 패브릭을 구축해 블록에 있는 값을 변경했을때, 해당 사용자(Peer)로 블록체인 네트워크에 접속할 수 없었음 ■ 안전성 블록체인 시스템은 중앙서버없이 분산되어 저장되기 때문에 시스템, 데이터 모두 사용자들에게 공통으로 분산되어 자장됨 따라서, 공격을 위해서는 절반이상의 사용자를 해킹해야하기 때문에 비트코인, 이더리움과 같은 큰 네트워크에서는 현실적으로 불가능함 ■ 익명성 블록체인 네트워크에서 계정을 생성할 때 제 3자..
1. AWS 글로벌 인프라 구성 ■ Region AWS 인프라를 지리적으로 나누어 배포한 것 글로벌하게 분포되어 있는 지역중 실제 서비스를 사용할 사용자 층과 가까운 리전을 선택해야함 코드 이름 옵트인 상태 us-east-2 US East (Ohio) 불필요 us-east-1 미국 동부(버지니아 북부) 불필요 us-west-1 미국 서부(캘리포니아 북부) 불필요 us-west-2 미국 서부(오리건) 불필요 af-south-1 아프리카(케이프타운) 필수 ap-east-1 아시아 태평양(홍콩) 필수 ap-south-2 아시아 태평양(하이데라바드) 필수 ap-southeast-3 아시아 태평양(자카르타) 필수 ap-southeast-4 아시아 태평양(멜버른) 필수 ap-south-1 아시아 태평양(뭄바이) 불..
1. ARP(Adress Resolution Protocol) 논리주소(IP 주소) -> 물리주소(MAC 주소) 논리주소(IP 주소)를 통해 상대방의 물리주소(MAC 주소)로 알아오는 '주소해석 프로토콜' 1.1 ARP 필요성 ARP는 IP주소와 MAC주소를 일대일 매핑시켜 LAN에서 목적지를 찾아갈 수 있도록 하는 프로토콜 1.2 ARP(Adress Resolution Protocol) Process ① 송신지에서 목적지 IP를 지정해서 패킷 송신(ARP Reqeust) ② 스위치장비에서 목적지 단말쪽으로 메시지 전송 ③ 목적지에서 자신의 물리주소(MAC주소)를 포함하는 메시지 전송(ARP Reply) ④ 목적지의 MAC주소를 수신 1.3 ARP(Adress Resolution Protocol) 생성과..
1. APT(Advanced Persistent Threats) 공격대상이 눈치채지 못하도록 은밀하게 침투해 흔적을 남기지 않고 활동하면서 회사 보안서비스를 무력화시켜 유유히 정보를 유출하는 공격방식 ※ 흔적을 지우면서 조심히 활동하기 때문에 유출시점이 바로 들어나지 않음 APT 공격방법 ■ 제로데이공격(Zero-day) : 소프트웨어가 공표되기 이전에 취약점을 발견해 공격하는 방법 ■ 루트킷(RootKit) : 해커들이 컴퓨터 침입한 사실을 숨긴채 관리자용 접근권한을 획득하는 도구 1.1 APT Attack Process 침투단계에서 공격자는 대상이 사용하는 소프트웨어, 소프트웨어 버전, 자주 접속하는 웹 등 자세한 조사진행 1.2 APT Attack Methods ■ 스피어피싱(Spear-Phshin..
1. Hyperledger Fabric 조직구조 2. Dapp 흐름 - 데이터 조회 - 데이터 삽입 3. Dapp 블록 생성자변경 데이터 삽입시 블록을 생성하고 트랜잭션을 기록하는 조직을 변경해야 위·변조가 불가능하게 기록한 생성자를 알 수 있음 수정 파일 경로 fabric-samples/my-network/application-javascript/app.js fabric-samples/test-application/connection.json fabric-samples/test-application/javascript/AppUtil.js fabric-samples/test-application/javascript/CAUtils.js - app.js 필요 변수 및 함수 설명 const mspOrg1 = ..