분류 전체보기 127

[CS 상식 - 네트워크] 네트워크 기본 개념

01. 네트워크 의미학문적 의미: 어떤 대상과 다른 대상을 특정한 장치나 규칙으로 연결한 유기적 시스템기술적 관점에서의 네트워크의 대상: 컴퓨터, 스마트폰과 같은 기기나 시스템ex) 인터넷, 휴대전화망, 은행 ATM ...02. 네트워크의 기본 구성과 의미노드: 네트워크에서 연결되는 대상네트워크: 노드의 연결, 반드시 하나 이상의 노드와 연결되어 있어야 함네트워크 토폴로지: 노드를 연결하는 방식각 노드는 반드시 어떤 노드와 선(유선 || 무선)으로 연결되어 있음분리/독립된 단일 노드는 존재하지 않음각 노드의 기능이나 역할, 연결 방식이 네트워크 종류와 구조를 결정03. 네트워크의 연결 형태와 종류네트워크는 노드(각 컴퓨터와 서버 등)의 연결로 구성네트워크 토폴로지: 각 노드의 연결 방법이나 연결 형태를 ..

[회고록] 패스트캠퍼스 백엔드 부트캠프 3기

기간: 2024.12.30 ~ 2025.01.06 (3주차)01. 이번 주 학습 내용  (1) JAVA 심화 - 암호화[JAVA] 심화 - 양방향 암호화 기법, 대칭 키 암호 알고리즘 (1) [JAVA] 심화 - 양방향 암호화 기법, 대칭 키 암호 알고리즘 (1)01. 암호화/복호화 정의암호화: 우리가 사용하는 평범한 문장(평문)을 의미할 수 없는 암호문으로 변환하는 것복호화: 암호문을 평문으로 되돌리는 것02. 암호 알고리즘: 암호화/복호화를 할 때beginner-in-coding.tistory.com[JAVA] 심화 - 양방향 암호화 기법, 대칭 키 암호 알고리즘 (2) [JAVA] 심화 - 양방향 암호화 기법, 비대칭 키 암호 알고리즘 (2)01. 비대칭 키 암호 알고리즘정의: 암호화를 위해 사용하..

회고록 2025.01.06

[JAVA] 자료구조 - 트리 (Tree)

(1) 트리(Tree)노드(Node)와 링크(Link)로 구성된 자료구조(Cycle X)계층적 구조를 나타낼 때 사용ex) 폴더 구조(디렉토리, 서브 디렉토리), 조직도, 가계도 ...(2) 트리 구조노드(Node): 트리 구조의 자료값을 담고 있는 단위루트 노드(Root): 부모 없는 노드, 가장 위의 노드잎새 노드(Leaf): 자식이 없는 노드(=단말)내부 노드(Internal): 잎새 노드를 제외한 모든 노드에지(Edge): 노드 간의 연결선(=Link, Branch)부모(Parent): 연결된 두 노드 중, 상위 노드자식(Child): 연결된 두 노드 중, 하위 노드형제(Sibling): 같은 부모를 가지는 노드깊이(Depth): 루트에서 어떤 노드까지의 간선의 수레벨(Level): 트리의 특정 ..

[JAVA] 자료구조 - 해시 테이블 (Hash Table)

(1) 해시 테이블(Hash Table)키(Key) - 값(Value)을 대응시켜 저장하는 데이터 구조: 키 값을 이용해 해당 데이터(value)에 빠르게 접근해싱: Key를 특정 계산식에 넣어 나온 결과를 사용하여 값에 접근(2) 해시 테이블 구조키(Key): 해시 테이블 접근을 위한 입력 값해시 함수(Hash Function): 키를 해시 값으로 매핑하는 연산해시 값(Hash Value): 해시 테이블의 인덱스해시 테이블(Hash Table): 키-값을 연산하여 저장하는 데이터 구조(3) 해시 충돌해시 테이블의 같은 공간에 서로 다른 값을 저장하려는 경우==> 서로 다른 키의 해시 함수를 통한 해시 값이 동일할 경우해시 충돌 해결 방법으로는 크게 개방 주소법 / 분리 연결법이 존재(4) 해시 충돌 해..

[JAVA] 자료구조 - 데크 (Deque)

(1) 데크(Deque): 양쪽에서 삽입과 삭제가 가능한 자료구조Deque: Doubly-ended QueueStack과 Queue를 합친 형태(2) 데크 기본 구조데크는 양방향에서 삽입/삭제가 가능한 구조일부 기능을 제한하여 용도에 맞게 변형 가능(3) 입력 제한한 데크(Scroll): 한 쪽의 입력을 제한한 데크(4) 출력 제한한 데크(Shelf): 한 족의 출력을 제한한 데크(5) JAVA 코드로 학습하기(1) JAVA에서 제공하는 java.util.Deque 사용하기//선형자료구조-데크public class Main { public static void main(String[] args){ Deque deque = new ArrayDeque(); //ArrayDeque가 인터페..

[JAVA] 자료구조 - 큐(Queue)

(1) 큐(Queue)선입 선출(First In First Out, FIFO) 자료구조: 먼저 들어온 입력이 먼저 나감입력 순서대로 데이터 처리가 필요할 때 사용ex) 프린트 출력 대기열, BFS(Breath-First Search: 너비 우선 탐색(트리))(2) 큐 기본 구조선입선출 구조데이터 추가, 꺼내기, 큐 공간 확인 동작으로 이루어짐데이터 추가(Enqueue): 큐에 데이터 추가데이터 꺼내기(Dequeue): 큐에서 데이터 꺼내기(3) JAVA 코드로 학습하기(1) JAVA에서 제공하는 java.util.Queue로 구현하기//선형 자료구조-큐public class Main { public static void main(String[] args){ Queue queue = ne..

[JAVA] 자료구조 - 스택(Stack)

(1) 스택(Stack)후입 선출(Last In First Out, LIFO) 자료구조: 마지막에 들어온 데이터가 먼저 나감== (First In Last Out, FILO)데이터가 입력된 순서의 역순으로 처리되어야 할 때 사용ex) 함수 콜 스택, 수식 계산, 인터럽트(interrupt) 처리(2) 스택 기본 구조후입 선출 구조기본적으로 데이터 추가, 꺼내기, 스택 공간 확인으로 이루어짐데이터 추가(push): 스택의 가장 마지막 위치에 데이터 추가데이터 꺼내기(pop): 스택의 가장 마지막 위치에서 데이터 꺼냄(3) JAVA 코드로 학습하기(1) JAVA에서 제공하는 java.util.Stack 사용// 선형 자료구조 - 스택public class Main { public static void ..

[JAVA] 심화 - 단방향 암호화 기법 (2)

05. 해시 알고리즘(Hash Algorithm)보통 해시 함수는 해시 함수(Secure hash Standard, SHA) 알고리즘을 사용함SHA 알고리즘에는 SHA-1, SHA-256, SHA-512와 같은 뒤에 숫자가 붙음이 숫자들은 해시 값의 길이를 의미SHA는 안전한 해시 알고리즘을 의미하지만, 모든 SHA 알고리즘이 안전한 것은 아님1과 같은 알고리즘은 과거에는 안전했지만, 컴퓨팅 속도가 발전하면서 현재는 안전하지 않은 알고리즘으로 분류됨그래서 전문가들은 256 이상의 알고리즘을 권고하는 것05-1. 해시의 길이가 짧으면 보안에 어떠한 문제?해시 함수가 4비트의 고정된 길이를 출력한다고 가정했을 때출력길이가 4비트인 해시 값의 종류는 2^4인 16개해시 함수는 16진수로 표현하므로 다음과 같이..

JAVA 심화 2024.12.30

[JAVA] 심화 - 단방향 암호화 기법 (1)

01. 단방향 암호화 알고리즘 정의한 쪽으로만 암호화 하는 방법다양한 길이의 문장을 항상 고정된 길이의 암호문으로 변환하지만, 원래 문장으로 복호화 할 수 없음02. 단방향 암호화 특성단방향 암호화는 비밀번호 암호화, 문서 진위 여부 검증 등 다양한 목적으로 사용비밀번호를 단방향으로 사용하는 이유: 복호화 불가능해커가 암호문으로 저장된 비밀번호를 훔쳐가더라도 복호화가 불가능하므로 원래 비밀번호를 알 수 없음증명서, 문서 진위 여부로 사용할 때: 중요한 문서가 진짜인지 확인할 경우에도 사용문서의 진위를 확인해달라고 요청할 시,이 문서의 암호문(즉 해시값)을 생성하여 내가 가지고 있는 암호문과 비교두 암호문이 동일하다면 증명서가 진짜라고 판단비밀번호를 안전하게 저장하려면 양방향 암호 알고리즘을 사용해야 하는..

JAVA 심화 2024.12.30

[JAVA] 심화 - 양방향 암호화 기법, 비대칭 키 암호 알고리즘 (2)

01. 비대칭 키 암호 알고리즘정의: 암호화를 위해 사용하는 키 != 복호화를 위해 사용하는 키공개 키: 모두에게 공개 가능비밀 키: 공개해서는 안됨공개 키 암호화 방식: 공개 키를 활용해 암호화 하는 것, 공개 키로 암호화 하면 함께 생성된 비밀키로만 복호화 가능해짐02. 비대칭 키 암호 알고리즘 사용 방법 (1) A가 데이터를 암호화해서 B에게 보내야한다고 가정먼저 B가 자신의 공개 키를 A에게 전달B의 공개키를 받은 A가 A에서 B의 공개키를 이용해서 암호화하여 암호문을 만듬만들어진 암호문을 B에게 전달전달받은 A의 암호문을 B에서 자신의 비밀키를 이용해 복호화하여 데이터를 받음공개 키는 누구에게나 공개 할 수 있기 때문에 인터넷 망을 이용하여 전달이 가능해짐만들어진 암호문은내가 가진 비밀 키로만 ..

JAVA 심화 2024.12.30