인증서 발급 주체ROOT CA (Certificate Authority)인증서 최상위 기관으로 최고 공증기관 역할을 수행한다.ROOT CA 인증서는 직접 자신의 개인키로 서명하고, 주요 웹 브라우저(Chrome, Edge 등)에 내장된다.개인키는 엄격한 보안 환경에서 관리되고 있고 신뢰를 제공하기 위해 제한된 경우에만 사용된다.Intermediate CA (Certificate Authority)신뢰 체인(Trust Chain, Certificate Chain) 구조로 인증서를 만들게 되면 등장한다.ROOT CA와 Server 사이에서 중간 다리 역할을 한다.ROOT CA가 직접 인증서를 생성하지 않고, Intermediate CA가 Server의 인증서를 발급 및 서명해준다.Web Server에게 인증..
CS Fundamentals
스위치를 이중화 구조로 구성한 경우 발생할 수 있는 루프를 방지해주는 프로토콜이다. 목적지로 향하는 경로가 2가지 이상이 있는 경우 하나의 경로를 차단하고 하나의 경로만 사용하게 하여 프레임이 중복 생성되어 루프가 발생하는 것을 방지한다.STP 구성요소BPDU (Bridge Protocol Data Unit) : 스위치 간 STP 정보를 교환하는데 사용되는 프로토콜로 2초 간격으로 전송한다.Root Bridge : 가상 상위에 있는 스위치로, 내부 네트워크의 모든 프레임이 루트 브릿지를 거친다.BDI (Bridge ID): 스위치를 고유하게 식별할 수 있게 해주는 고유 ID로 Priority와 MAC Address를 조합해서 구성된다.Root Port : Non-Root 브릿지에서 Root 브릿지로 가는..
Cisco Network Switch, Router 장비 대상으로 기본 설정 방법 정리관리자 모드 변경> enable# 설정 변경 모드# configure terminal(config)# Hostname 변경(config)#hostname RT01RT01 (config)# Banner 설정Router(config)#banner login *warning*Switch(config)#banner motd *warning* 접속 계정 설정관리자 모드 변경 패스워드 설정(config)#enable password cisco(config)#enable password password-encryption로컬 로그인 Database에 유저 정보 입력 (config)#username admin password cisc..
L2 계층에서 물리적으로 연결되어 있는 장비까지 MAC Address를 이용해 Frame을 전송하는 기능을 담당한다.Router vs Switch 차이점목적지로 데이터를 보내는데 사용하는 주소가 다르다. Router는 IP Address, Switch는 MAC Address를 사용한다.Router는 Table에 기록된 IP 주소 정보가 없다면 폐기하고, Switch는 ARP를 이용해 확인 후 목적지로 전달한다.Router는 Routing Algorithm을 사용하고, Switch는 Spanning Tree Algorithm을 사용한다. Frame Header 구조SyntaxSemanticSizeDestination MAC Address목적지 MAC 주소6 BytesSource MAC Address출발지..
2진수(Binary), 8진수(Octal), 10진수(Decimal), 16진수(Hexadecimal) 등 진법을 변환하는 방법을 정리한다.10진수를 2, 8, 16 진수로 변환int a = 10;// 2진수System.out.println(Integer.toBinaryString(a));System.out.println(Integer.toString(a, 2).toUpperCase());// 8진수System.out.println(Integer.toOctalString(a));System.out.println(Integer.toString(a, 8).toUpperCase());// 16진수System.out.println(Integer.toHexString(a));System.out.println(In..
자신과 연결된 인접 노드를 모두 방문 하는 그래프 완전 탐색 방식BFS 사용 고려 기준양방향 그래프, 사이클이 있는 그래프에서는 제약 조건이 주어지지 않을 경우 무한루프가 발생한다.큐에 들어가는 모든 노드를 한 번씩 방문하기 때문에 방문할 필요가 없는 노드의 정보를 큐에 담지 않는게 좋다.그래프 정보를 인접행렬에 담을 때는 메모리의 낭비가 많고, 노드의 개수가 많아 질 경우 사용이 제한된다. ※ 1만개의 노드 정보를 담기 위해 2차원 배열 생성시 380MB 수준의 메모리 소요인접 리스트는 간선 정보가 많을 때 메모리 소비가 늘어나고, 탐색 시간이 오래 걸린다.단 하나의 간선 정보를 관리해야 할 때는 인접 행렬이 용이하다. 샘플 예제 코드노드 정보 입력// 인접행렬 무가중치arr[from][to] = ..
Array 또는 ArrayList 배열의 내부 요소 정렬 기준을 Customize 하는 방법을 정리한다.기본 sort() 함수 사용Array 정렬// 오름차순int arr[] = {1, 2, 6 ,7, 8, 2 ,3, 4};Arras.sort(arr);// 내림차순Integer arr[] = (1, 2, 6 ,7,8 ,2 , 3, 4 };// 내림차순으로 정렬 시 Collections의 reverseOrder 메서드는 객체를 인자 값으로 받기 때문에 Integer 객체로 변환 필요Array.sort(arr, Collections.reverseOrder);Array List 정렬// 오름차순ArrayList arr = new ArrayList();arr.add(1);arr.add(10);arr.add(3)..
MAP을 상속받아 구현되어 Entry (Key : Value) 구조로 데이터가 저장된다. 키 값을 기준으로 검색하기 때문에 내부 데이터를 순회하며 조회하기 위한 자료 구조가 아니다.HashMap 사용 고려 기준HashMap은 주로 DAT로 활용하는데, 아래의 세 가지 경우 Array 타입 대신 HashMap을 이용해 DAT를 구성한다.인덱스의 값이 정수가 아닌 경우 사용한다.저장하고 싶은 값이 음수인 경우 사용한다.저장할 데이터의 양이 1,000만 개를 넘기는 경우 사용한다. ※ int 타입 Array 기준 1억 개 공간 확보 시 380MB 소요 HashMap의 시간 복잡도Array와 동일하게 O(1)의 시간 복잡도를 가지지만 상대적으로 느리다.키 값을 hashcode에 넣어 연산 후 나오는 숫자로 b..
Java의 Collection과 Map을 이용해 알고리즘 문제를 해결할 때, 어떤 자료 구조를 사용할지 선택할 때 고려하는 기준을 정리한다.Array배열의 사이즈를 알 수 있는 경우 기본 Array를 사용하는 것이 가장 좋다.배열은 물리 메모리의 연속된 공간을 확보 후 데이터를 저장한다.데이터 접근 시 배열의 시작 지점 메모리 주소를 기준으로 특정 인덱스의 메모리 주소를 연산하는 공식을 사용한다.더보기Array 배열 내부 데이터의 메모리 주소를 구하는 공식 [배열의 시작 주소] + ( [요소의 크기] × [인덱스 번호] ) 배열의 시작 주소 : 0x00000000 요소의 크기 : (chat) 1byte, (int) 4btye, (double) 8byte 2번째 인덱스 메모리 주소: 0x00000000 ..
변수는 값을 담아두고 재사용하기 위해서 사용하는데, 변수의 기본적인 사용법과 Custom Data Type(Custom Variable Type) 사용법을 정리한다.변수 초기화// [Data Type] [Variable Name] = [Value]String name = "GilDong";변수는 대입 연산자(=)를 이용해서 값을 메모리에 담는다.변수 초기화 과정: 메모리 확보 → 데이터 저장 → 메모리 주소를 Variable Name에 맵핑메모리 주소의 형태: (16진수) 0x00000000메모리를 확보하는 공간은 Data Type에 따라서 다르다. (char = 1byte, int = 4byte, double = 8byte) 변수의 종류전역 변수: 특정 함수에 종속 되지 않고 모든 영역에서 사용되는 변..