profile
개발자를 꿈꾸고 있어요

HTTPS 동작 원리: RSA 키 교환부터 ECDHE, MITM

"HTTPS는 어떻게 동작할까?"를 파고들다 보니 생각보다 엮인 개념이 많았어. > 내가 헷갈렸던 순서 그대로 정리해 볼게. > "공개키로 암호화하면 되는 거 아냐?" → "근데 그 공개키를 어떻게 믿지?" → "중간에 해커가 끼어들면?" 1. HTTP는 왜 위험할까

3일 전
·
0개의 댓글
·

기본 키 전략부터 Spring Data JPA까지

JPA를 처음 배우면서 헷갈렸던 개념들을 정리했습니다.기본 키 생성 전략, Flush, 준영속 상태, JPA Auditing, JpaRepository 동작 원리까지 다룹니다.@Id와 기본 키 생성 전략(2. Flush: 영속성 컨텍스트의 동기화(3. 준영속 상태와 m

2026년 6월 1일
·
0개의 댓글
·

JPA Auditing

엔티티가 생성/수정될 때 시간을 자동으로 기록해주는 JPA Auditing 기능을 이해하자.매번 createdAt = LocalDateTime.now()를 직접 쓰지 않아도 자동으로 처리되는 원리를 익히자.JPA는 엔티티 생명주기마다 전/후로 실행할 수 있는 이벤트 훅

2026년 5월 24일
·
0개의 댓글
·

[Spring] 전역 예외 처리와 내부 동작 원리

자바의 예외는 크게 Exception과 RuntimeException 두 가지로 나뉜다.Exception: 컴파일러에 의해 엄격하게 감시된다. 따라서 try-catch 문을 사용하거나 throws로 처리해야 한다.RuntimeException: 컴파일러가 확인하지 않

2026년 5월 3일
·
0개의 댓글
·

[Backend] 세션 vs JWT, 그리고 실무형 토큰

이전 포스팅에서 안전한 로그인 흐름을 구현해 보았다. 그렇다면 성공적으로 로그인한 사용자의 '상태'는 어떻게 유지할 수 있을까? 웹 생태계에서 이를 해결하는 대표적인 두 가지 정답은 세션(Session) 기반 인증과 토큰(Token, JWT) 기반 인증이다.세션 기반

2026년 3월 25일
·
0개의 댓글
·

[Backend] 로그인과 해싱

CRUD 구현이 어느 정도 완료되면 회원 기능을 위해서 로그인 기능이 필요하다. 즉 보안 구현이 필요하다. 다음 말을 꼭 기억하자. "보안은 잘하는 것이 아니라 보안사고가 나는 구조로 코드를 짜서는 안되는 것이다."처음 로그인 기능을 구현하다 보면 암호화가 꼭 필요한

2026년 3월 24일
·
0개의 댓글
·

Project3: Virtual Memory - Memory Mapped Files

지금까지는 파일 입출력(read, write)을 수행할 때 버퍼를 이용하는 방식을 사용해왔다. mmap은 파일을 프로세스의 가상 메모리 주소 공간에 직접 매핑하여, 마치 메모리를 다루듯이 파일을 다룰 수 있게 해주는 기능이다.이제 파일 데이터를 페이지 단위로 관리하며

2025년 12월 6일
·
0개의 댓글
·

Project3: Virtual Memory - Stack Growth

지금까지 구현한 프로젝트에서 USER_STACK은 단일 페이지로 고정되어 있었다. 이제 프로세스가 실행되면서 스택이 현재 크기를 초과할 경우, 필요에 따라 추가 페이지를 할당하여 스택을 확장해 주는 기능을 구현해야 한다.핵심은 페이지 폴트가 발생했을 때, 이것이 유효한

2025년 12월 6일
·
0개의 댓글
·

Project3: Virtual Memory - Management + Anonymous Page

핵심: 물리 메모리의 크기 한계를 극복하기 위해 디스크(Swap/File) 를 메모리의 연장선으로 사용한다. 원칙: Lazy Loading (게으른 로딩)당장 필요하지 않으면 메모리에 올리지 않고 장부(SPT)에만 적어둔다.실제로 필요해서 접근할 때(Page Faul

2025년 12월 2일
·
0개의 댓글
·

Project2. User Programming - From Boot to User Program

Phase 1: 하드웨어 초기화 (Assembly)\_start ()컴퓨터 전원이 켜지면 가장 먼저 실행되는 코드입니다.CPU를 64비트 모드로 설정하고 기본적인 메모리 관리(페이징)를 준비합니다.모든 준비가 끝나면 C언어 세상의 시작점인 main() 함수를 호출합니다

2025년 11월 25일
·
0개의 댓글
·

Project2. User Programming - Argument Passing

process_exec() 함수가 현재는 프로그램 이름만 받도록 구현되어 있다. 이를 확장하여 명령줄 인자를 처리할 수 있도로 구현하라.

2025년 11월 25일
·
0개의 댓글
·

멀티 레벨 피드백 큐 (MLFQ)

스케줄러 설계 시 두 가지 상충되는 목표가 있습니다.반환 시간 (Turnaround Time) 최적화: 짧은 작업을 먼저 실행 (SJF 방식)응답 시간 (Response Time) 최적화: 대화형 사용자에게 빠른 응답 (RR 방식)SJF는 작업의 총 실행 시간을 미리

2025년 11월 12일
·
0개의 댓글
·

Project1: Threads - Priority Donation

Priority Donation 구현 기부(Donation)가 필요한 순간: 우선순위 역전 (Priority Inversion) 다음과 같이 우선순위가 다른 세 스레드가 있다고 가정합니다. H 스레드(50) M 스레드(30) L 스레드(10) 문제 상황

2025년 11월 12일
·
0개의 댓글
·

Project1: Threads - Priority Scheduling

timer_sleep() 함수의 기존 Busy-Waiting(적극적 대기) 방식을 Blocking(수동적 대기) 방식으로 변경하여 CPU 효율성을 향상시킵니다.기존 timer_sleep()은 스레드가 잠들지 않고, while 루프를 계속 돌며 시간이 다 됐는지 검사했습

2025년 11월 12일
·
0개의 댓글
·

Project1: Threads - Alarm Clock

timer_sleep() 함수의 기존 Busy-Waiting(적극적 대기) 방식을 Blocking(수동적 대기) 방식으로 변경하여 CPU 효율성을 향상시킵니다.기존 timer_sleep()은 스레드가 잠들지 않고, while 루프를 계속 돌며 시간이 다 됐는지 검사했습

2025년 11월 12일
·
0개의 댓글
·
post-thumbnail

레드 블랙 트리 - 삭제

삭제 전 RB 트리 속성 만족한 상태삭제 방식은 일반적인 BST와 동일삭제 후 RB 트리 속성 위반 여부 확인RB 트리 속성을 위반했다면 재조정RB 트리 속성을 다시 만족RB 트리에서 노드를 삭제할 때 어떤 색이 삭제되는지가 속성 위반 여부를 확인할 때 매우 중요하다.

2025년 10월 17일
·
0개의 댓글
·

레드 블랙 트리 개념 및 노드 삽입

레드-블랙 트리는 다음 두 가지 핵심 특징을 가진 자가 균형 이진 탐색 트리(Self-Balancing BST)입니다.이진 탐색 트리의 속성을 모두 가집니다. (왼쪽 서브트리는 부모보다 작고, 오른쪽 서브트리는 부모보다 큼)스스로 균형을 맞추어 트리의 높이를 가능한 낮

2025년 10월 16일
·
0개의 댓글
·

DP

DP(Dynamic Programming)는 암기 과목이 아니라 '문제를 쪼개서 생각하는 사고법'에 가깝습니다. 특정 유형을 외우기보다, 어떤 문제든 DP로 풀 수 있게 만드는 '생각의 틀'을 잡는 것이 중요합니다.DP를 효과적으로 공부하기 위한 체계적인 접근법입니다.

2025년 9월 30일
·
0개의 댓글
·
post-thumbnail

3.7 프로시저

이번 절에서는 어셈블리의 여러 함수 간 상호작용과 함수 관리와 관련된 새로운 명령어를 소개한다. 첫 6개 함수 매개변수는 각 레지스터에 로드되며, 그 후 매개변수는 크기에 따라 32비트 데이터는 4바이트 오프셋, 64비트 데이터는 8바이트 오프셋은 콜 스택에 로드된다.

2025년 9월 27일
·
0개의 댓글
·
post-thumbnail

TIL - 27일차(2025-09-27)

3.7 프로시저3.8 배열과 행렬동적계획법 개념백준 2747 - 피보나치 수(Top-down, Bottom-up)백준 1463 - 1로 만들기(BFS, DP(풀이 신세계!!))

2025년 9월 27일
·
0개의 댓글
·