해시 테이블과 해시 함수해시 테이블(Hash Table)은 키-값(Key-Value) 구조로 데이터를 저장하는 자료구조데이터를 매우 빠르게 삽입, 삭제, 조회할 수 있도록 설계해시 함수(Hash Function)는 해시 테이블에서 핵심적인 역할키를 입력으로 받아 고유한 해시 값을 반환하고, 해시 값을 바탕으로 데이터가 저장될 위치를 결정해시 테이블의 주요 특징빠른 접근 시간평균적으로 O(1)의 시간 복잡도로 데이터를 접근할 수 있음충돌 관리동일한 해시 값을 갖는 데이터가 발생할 수 있기 때문에 이를 관리하기 위한 충돌 해결 기법이 필요좋은 해시 함수의 조건결정적: 동일한 입력에 대해 항상 동일한 출력을 반환해야 함균등 분포: 키들이 테이블에 균일하게 분포되도록 해야 충돌이 최소화해야 함효율적: 해시 값을..
스택(Stack)스택이란?LIFO(Last In, First Out) 구조를 가지는 자료구조마지막에 삽입된 데이터가 가장 먼저 제거되는 특성사용 사례함수 호출 스택 관리웹 브라우저의 뒤로 가기/앞으로 가기 기능수식 계산(예: 후위 표기법)주요 연산push : 데이터를 스택에 삽입pop : 스택의 가장 상단 데이터를 제거하고 반환peek(또는 top) : 스택의 상단 데이터를 제거하지 않고 반환isEmpty : 스택이 비어 있는지 확인size : 스택의 크기 반환예시 코드( 전용 클래스 활용 )import java.util.Stack;public class StackExample { public static void main(String[] args) { Stack stack = new ..
배열 (Array)개념배열은 동일한 데이터 타입의 요소를 연속된 메모리 공간에 저장하는 자료구조각 요소는 고유한 인덱스를 가지며, 이를 통해 빠르게 접근할 수 있음주요 특징고정된 크기배열의 크기는 생성 시 결정되며 변경할 수 없음빠른 접근인덱스를 통해 요소에 O(1) 시간 복잡도로 접근할 수 있음삽입 및 삭제특정 위치에서의 삽입과 삭제는 O(n) 시간 복잡도가 소요코드 예제public class ArrayExample { public static void main(String[] args) { // 배열 선언 및 초기화 int[] numbers = {10, 20, 30, 40, 50}; // 배열 요소 접근 System.out.println("첫 번..
멀티스레딩정의하나의 프로세스 내에서 여러 스레드를 생성해 작업을 동시에 수행하는 방식특징공유 메모리모든 스레드는 동일한 메모리 공간을 공유데이터 공유 및 통신은 원활하지만, 동기화 문제가 있음빠른 문맥 교환 (Fast Context Switching)스레드 간 전환이 프로세스 간 전환보다 빠름적은 리소스 소비스레드는 프로세스 생성보다 리소스가 적게 듬I/O 작업에 적합I/O 바운드 작업( 네트워크 요청, 파일 읽기 / 쓰기 )에 적합임계 구역정의여러 스레드(또는 프로세스)가 공유 자원에 접근하고자 할 때 동시에 접근하게 되면 문제가 발생할 수 있는 코드 블록공유 자원에 동시 접근해서 나타나는 문제는 데드락과 레이스컨디션이 존재한다데드락(Deadlock)정의두 개 이상의 스레드(또는 프로세스)가 서로가 보..
프로세스 (Process)정의실행 중인 프로그램의 독립된 인스턴스운영 체제에 의해 자원(메모리, 파일, CPU 시간 등)이 할당된 작업 단위구성 요소1️⃣ 코드 섹션 (Code): 실행되는 프로그램의 명령어 집합 2️⃣ 데이터 섹션 (Data): 전역 변수, 정적 변수 등이 저장되는 메모리 공간 3️⃣ 힙 (Heap): 동적 메모리 할당을 위한 공간 4️⃣ 스택 (Stack): 함수 호출, 로컬 변수 저장 등 임시 데이터 저장 공간 5️⃣ 프로세스 제어 블록 (PCB): 프로세스 상태, 프로세스 ID, 레지스터, 프로그램 카운터 등 프로세스의 정보를 포함특징독립성: 하나의 프로세스는 다른 프로세스와 독립적으로 실행자원 관리: 운영 체제가 각 프로세스에 필요한 자원을 할당하고 관리통신: 다른 프로세스와 통..
- Total
- Today
- Yesterday
- 프리코스
- CS
- 그리디 알고리즘
- 탐색 알고리즘
- 운영체제
- db
- 해시 테이블
- devops
- restful api
- k8
- HTTP
- 우선순위 큐
- MSA
- 백트래킹
- 스프링
- B+Tree
- Java
- Spring
- i/o모델
- CPU 스케줄링
- 자바
- 우테코
- 데이터베이스
- 자료구조
- 우아한 테크코스
- Spring Boot
- 분할 정복
- 알고리즘
- TRIE
- 동적 프로그래밍
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |