오블완 21

컴퓨터 네트워크 (🙋🏻‍♀️ Q&A)

컴퓨터 네트워크🙋🏻‍♀️ TCP의 특징을 설명해보세요.TCP는 연결형 서비스로, 데이터를 보내기 전에 송신부와 수신부 간 연결을 확인합니다. 이 과정에서 패킷을 어떤 가상 회선으로 보낼 것인지 결정해 가상 회선 방식으로 패킷 교환이 이뤄집니다. 따라서 패킷의 전송 순서가 보장됩니다. 또한 송신부와 수신부 간에 1:1 통신이 이뤄지며 패킷 수신 여부를 확인합니다. 이는 데이터의 신뢰성을 보장하지만, 속도가 느리다는 단점이 있습니다. 이러한 특징 때문에 데이터의 신뢰성을 보장해야 하는 HTTP 통신, 이메일 전송, 파일 전송 등에 사용됩니다.🙋🏻‍♀️ TCP의 연결 및 해제 과정을 설명해 보세요.TCP의 연결은 3-way 핸드셰이킹으로, 연결 해제는 4-way 핸드셰이킹으로 이뤄집니다. 3-way 핸..

공부/CS 전공 2024.11.17

운영체제 (🙋🏻‍♀️ Q&A)

운영체제🙋🏻‍♀️ 시스템 콜을 설명해 보세요.시스템 콜은 커널 모드와 사용자 모드 간에 필요한 정보를 주고받기 위해 호출하는 함수입니다. OS는 사용자가 하드웨어의 주요 자원에 쉽게 접근할 수 없게 커널 모드와 사용자 모드로 구분합니다. 그래서 프로세스에서 자원에 접근해 작업을 처리해야 할 때는 시스템 콜로 필요한 요처을 하고 그에 대한 결과 값을 돌려 받게 됩니다.🙋🏻‍♀️ 프로세스의 메모리 구조를 설명해 보세요.프로세스의 메모리 영역은 스택, 힙, 데이터, 코드로 나눌 수 있습니다. 스택은 지역 변수와 함수의 매개변수가 저장되는 영역이고, 힙은 동적 메모리 할당이 일어나는 영역입니다. 데이터 영역에는 전역 변수, 정적 변수, 배열, 구조체 등이 저장됩니다. 데이터 영역은 다시 BSS 영역과 데..

공부/CS 전공 2024.11.16

🔍 HS512 알고리즘

HS512 알고리즘HS512 알고리즘은 JWT에서 사용되는 HMAC 알고리즘 변형 중 하나이다.이는 메시지의 무결성과 인증을 보장하기 위해 SHA-512 해시 알고리즘을 기반으로 한다.  ⚡️ 특징 및 작동 방식 1. HMAC 알고리즘HS512는 HMAC을 기반으로 동작한다.HMAC은 해시 함수(SHA-512)를 사용하여 고정된 크기의 해시 값을 생성한다.이 과정에서 사용자 정의 키(secret key)를 사용해 데이터를 안전하게 암호화한다.2. SHA-512SHA-512는 512비트 크기의 해시 값을 생성하는 강력한 해시 알고리즘이다.암호화 강도가 매우 높아 브루트포스 공격 등에 강하다.3. JWT에서 HS512의 역할HS512는 JWT의 서명(Signature) 생성에 사용된다.JWT의 구조는 Hea..

[백준 1620] 나는야 포켓몬 마스터 이다솜(Java)

나는야 포켓몬 마스터 이채림 🚨 문제 상황 1Java에서 HashMap은 키-값 쌍으로 데이터를 저장하는 자료구조로주로 키를 사용해 값을 검색하는데 최적화되어 있다. 위에 코드를 보면 값으로 키를 검색해야 하는 상황이 생긴 것을 확인핑. 🍧 해결법 1entrySet() 사용을 사용하면 된다. 🍉 코드 1import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st..

알고리즘/백준 2024.11.14

[프로그래머스 Lv.2] 게임 맵 최단거리(Java)

문제 설명게임 맵 최단거리 문제는 다음과 같습니다.시작점에서 도착점까지 갈 수 있는 최단거리를 구합니다.맵은 1과 0으로 이루어진 2차원 배열로 표현되며, 1은 이동할 수 있는 곳, 0은 이동할 수 없는 곳입니다.시작점은 (1, 1)이고 도착점은 (n, m)입니다.이동 방향은 상하좌우로 한 칸씩만 가능합니다.풀이 방식BFS를 사용하면 최단거리 탐색 문제를 효율적으로 해결할 수 있습니다.BFS는 한 지점에서 갈 수 있는 모든 경우를 단계적으로 탐색하기 때문에목적지에 도착했을 때의 거리가 최단거리임을 보장합니다.코드 설명import java.util.*;class Solution { static int[] dx = {0, 0, -1, 1}; // 상하좌우 static int[] dy = {1, -1, ..

🔍 Spring & Spring Boot

Spring과 Spring Boot의 차이 설정 방식Spring은 XML이나 Java Config를 통해 세밀한 설정이 필요하지만Spring Boot는 자동 설정 기능을 제공해 초기 설정이 간단합니다. 배포 방식Spring은 외부 WAS에서 실행해야 하는 WAR 파일로 배포하는 경우가 많고Spring Boot는 내장 서버를 포함한 JAR 파일로 독립 실행이 가능합니다. 의존성 관리Spring에서는 개발자가 필요한 라이브러리를 수동으로 관리해야 하지만Spring Boot는 Starter 의존성을 제공해 쉽게 통합할 수 있습니다. 목적Spring은 유연성과 세밀한 제어에 초점이 맞춰져 있고Spring Boot는 빠른 개발과 생산성 향상을 목적으로 설계되었습니다. 이렇게 Spring Boot는 Spring의 ..

[프로그래머스 Lv.2] 더 맵게(Java)

➕ 문제 설명주어진 배열 scoville의 모든 원소가 특정 K 이상이 되도록 섞는 과정을 반복음식을 섞는 방법가장 맵지 않은 두 개의 음식새로운 스코빌 지수 = 가장 작은 값 + 두번째로 작은 값 * 2🔍 모든 음식의 스코빌 지수가 K 이상이 되는 최소 횟수를 구하라     불가능하다면 -1 반환 📖 문제 풀이 과정 우선순위 큐(Heap) 사용스코빌 지수를 최소한으로 섞어야 하므로항상 가장 작은 두 개의 스코빌 지수를 효율적으로 꺼낼 수 있는최소 힙이 적합함PriorityQueue heap = new PriorityQueue(); 스크빌 지수를 힙에 넣는다.가장 작은 두 값을 꺼내 새로운 값을 계산하고 다시 힙에 넣는다.위 과정을 반복하며 카운트를 증가한다.모든 스코빌 지수가 K 이상이 되면 횟수를..

🔍 유니온 파인드

📖 유니온 파인드(union-find)여러 노드가 있을 때 특정 2개의 노드를 연결해1개의 집합으로 묶는 union 연산과두 노드가 같은 집합에 속해 있는지 확인하는 find 연산으로구성되어 있는 알고리즘   유니온 파인드 알고리즘 구현 방법 1차원 배열 이용대표 노드 저장 배열 초기화초기에는 노드가 연결되어 있지 않으므로 자신의 인덱스 값으로 초기화2개의 노드를 선택해 union 연산 수행⭐️ 항상 대표 노드끼리 연결해준다 ➡️ find 연산 수행  🧩 find 연산의 작동 원리대상 노드 배열에 index 값과 value 값이 동일한지 확인한다.동일하지 않으면 value값이 가리키는 index 위치로 이동한다.이동 위치의 index값과 value값이 같을 때까지 반복한다.반복이므로 이 부분은 재귀 ..

알고리즘 2024.11.09

🔍 그래프와 그래프 알고리즘 정리

🔍 그래프란?그래프는 노드(Node)와 엣지(Edge)로 구성된 데이터 구조이다.노드 : 데이터를 표현하는 단위 (정점)엣지 : 노드 간의 연결을 나타내는 선그래프는 데이터를 연결하여 표현하기 적합하다. 📖 그래프 알고리즘유니온 파인드주요 목적 : 서로 다른 두 집합을 병합하거나, 두 노드가 같은 집합에 속해 있는지 판별응용그래프의 사이클 유무 판단최소 신장 트리(MST) 구현위상 정렬조건 : 사이클이 없는 방향 그래프(DAG)정의그래프의 노드를 순서대로 정렬하는 알고리즘정렬 결과는 유일하지 않을 수 있음예시수강 괌고 신청 순서 : 선이수 과목(수1 ➡️ 수2)[ 최단 거리 알고리즘  ]: 그래프에서 특정 노드 간의 최단 경로를 찾는 알고리즘다익스트라특징 : 시작점에서 다른 모든 노드로의 최단 거리..

알고리즘 2024.11.08