
html을 사용하면서 server로 데이터 요청을 하는 코드를 작성한 경험은 많다. 하지만 정작 데이터를 주고 받는 과정에서 무슨 일이 일어나는 지를 모르는 문제가 발생했다.궁금했던 점1\. client에서 어떻게 server로 데이터를 요청하는가?2\. server에
데이터가 클라이언트에서 서버로 전송될 때, OSI 7계층 모델을 통해 전달됩니다.

html이 렌더링 되는 과정렌더링(Rendering)은 원시 데이터(코드, 데이터베이스 정보 등)를 가공하여 화면에 출력하는 과정을 의미합니다.서버에서 HTML을 미리 생성하여 클라이언트(브라우저)로 전송. 클라이언트는 받은 HTML을 바로 표시.📌 SSR의 흐름📌
📌 JWT (JSON Web Token) 인증 방식 개념과 동작 원리 1. JWT란? JWT(JSON Web Token) 은 사용자 인증 및 정보 교환을 위한 토큰 기반 인증 방식입니다. JWT는 서버에서 인증 정보를 저장하지 않고 클라이언트에게 토큰을 발급하며,
Fetch API는 브라우저에서 서버와 데이터를 주고받기 위한 최신 웹 기술이다.ex) 웹사이트(프론트엔드) → 서버(백엔드)로 데이터를 요청하고 응답을 받는 기능! Fetch API를 사용하면 HTTP 요청을 보낼 수 있다.결과json으로 변환된 값을 볼 수 있다.궁
알고리즘은 역사책임. 알고리즘은 현실의 문제를 컴퓨터를 통해 해결하려고 많은 고민을 해본 사람들이 만들어논 패턴임. 내가(코치) 여러분들에게 알려줄 수 있는 내용은 나(코치)와 주니어 코치가 이미 경험했던 경험들(문제해결 방식 말고)이다.주식 차트?를 개발할 때 1초에
찬찬히 나를 돌아보는 시간 > 지나온 과거에 대한 성찰, 5개월 동안 내가 어떤 것을 얻어가고 싶은지, 어떤 자세로 임하고 싶은지, 정글이 끝난 후 나의 모습은 어땠으면 좋겠는지 등을 생각해보고, 내 블로그에 에세이를 작성해주세요. 모든 과정이 끝났을 때, 다시 살펴
정글에 오면! 정글은 입소하자마자 프로젝트를 던져준다. 앞으로의 정글 과정을 살아남기 위해선 간단한 프로젝트로 몸을 미리 풀어야 된다는 의미가 아닐까? 우리 3팀이 기획한 프로젝트 명은 jungle express다. 정글을 떠올리면 탐험하다, 헤쳐 나가다, 살아 남다
정글은 일반 부트캠프랑은 달리 알고리즘, OS, 컴퓨터 시스템 등 전산학의 기초를 배우는 곳입니다!코딩 테스트를 준비할 때만 알고리즘을 공부하는 것은 알고리즘에 대한 이해도를 충분히 채우기에 부족한 시간입니다. 알고리즘은 말 그대로 컴퓨터의 동작 방식을 체득하는 과정입
컴퓨터 내부 동작을 이해해서 보다 좋은 프로그램을 작성할 수 있도록.ex) 여기서 내부 동작을 이해해야 하는 이유는 내가 작성한 코드의 정확성과 성능에 대해서 이해하고, 더 효율적인 코드를 작성할 수 있게 해주기 때문임.다른 책(제작자의 관점에서 시스템 소프트웨어를 어
컴퓨터 시스템의 이해 컴퓨터 시스템 => 하드웨어 + 시스템 소프트웨어 C는 hello world를 어떻게 출력하는 것일까? hello world를 출력하는 모든 과정을 따라가는 것으로 우리는 컴퓨터 시스템에 대한 이해도를 올릴 수 있다. hello.c에서 이런 코
ASCII (미국 표준 코드, 7비트)문자는 총 8비트로 구성되어 있다. 문자를 2진수로 변환링킹이란컴파일러가 생성한 오브젝트 파일(.o)을 하나로 결합하여 실행 파일을 만드는 과정결합하는 과정이 필요한 이유는 만약 컴파일 과정에서 외부 라이브러리를 사용했다면 사용한
이 문제를 딱 보자마자 느낀 것은 'for문을 돌려야겠다'였다. 당연히 틀렸다. 일단 100만에서 1000만까지의 정수를 메모리에 저장하는 것만으로도 많은 시간이 소요될 것이다. 당연히 '어떻게 하면 효율적으로 데이터를 저장하고 사용할 수 있을까?' 라는 질문을 던질
cpu 스케줄링이란?CPU 스케줄링은 여러 프로세스(또는 스레드) 중에서 CPU를 어떤 프로세스에게 할당할지 결정하는 과정입니다.왜 스케줄링이 필요할까? cpu는 한 번에 하나의 프로세스만 실행할 수 있기 때문이다. 그렇다면 한 번에 여러 개의 프로세스를 요청 받았을

결과요청된 작업이 끝나야 다음 작업이 실행되는 방식. CPU가 요청을 기다리는 동안 아무 작업도 하지 못함.1️⃣ 작업 요청 → CPU가 특정 작업(예: 네트워크 요청, 파일 읽기 등)을 요청2️⃣ 작업 수행 (백그라운드 처리) → 요청된 작업은 별도의 스레드나 이벤트
참고 사이트 깃 사용법 연습 사이트에 접속하면 사이트에서 사용할 수 있는 명령어는 다음과 같습니다. 시작하기를 누르면 git에는 export tree나 import tree 명령어가 없습니다. 이 명령어는 해당 웹 사이트에서 교육용으로 만든 명령어입니다. 자신이

캐시의 필요성 구조를 표현해서 메모리 계층 구조에 대한 설명 L1 이 어떻게 L2의 캐시가 되는거야? 메모리 계층 구조를 보기 쉽게 표현하고, 설명도 해줘 어떻게 응용 프로그램이 운영체제를 통해 복잡한 하드웨어를 제어할 수 있는거야? 프로그램에서 운영체제를 통해 하드웨

응용 프로그램이 운영체제를 통해 하드웨어를 제어하는 원리 > 응용 프로그램 → 운영체제 → 하드웨어 순으로 동작하며, 이 과정에서 운영체제가 하드웨어와의 직접적인 인터페이스를 담당한다. 시스템 콜 > 응용 프로그램이 운영체제에게 서비스를 요청하는 인터페이스 응용 프로
가상 메모리란? 실제 물리 메모리(RAM)의 한계를 극복하기 위해 운영체제가 만들어낸 논리적인 메모리 공간 각 프로세스가 자신만의 독립된 주소 공간을 가지도록 만들어 줌 실제로는 물리 메모리 + 디스크(페이지 파일) 를 조합해서 구성됨 운영체제가 메모리 보호, 공간
암달의 법칙이란? >전체 프로그램 중에서 병렬화할 수 없는 부분이 전체 성능 향상의 한계를 결정한다는 법칙이야. 즉, 프로그램의 일부만 병렬로 빠르게 처리해도, 나머지 병렬화 불가능한 구간이 발목을 잡는다는 의미지. 기본 수식 | 기호 | 의미 | |------|------| | N | 사용한 프로세서(코어) 수 | | P | 전체 프로그램 중 병렬화...
Telnet은 원격지 컴퓨터에 접속해서 터미널(명령어 입력창) 을 사용할 수 있게 해주는 텍스트 기반 통신 프로토콜이다.프로토콜 계층: TCP/IP 위에서 동작해. 즉, TCP를 이용해서 통신한다.포트 번호: 기본적으로 23번 포트를 사용한다.리눅스 서버에 원격 접속해
Big O 표기법 Big O 표기법이란? 알고리즘의 시간 복잡도(Time Complexity) 와 공간 복잡도(Space Complexity) 를 분석하는 방법이야. 즉, 입력 크기(n)가 커질 때, 알고리즘의 실행 시간(또는 메모리 사용량)이 어떻게 증가하는지 표현하
프론트와 백을 나누지 마세요 프론트와 백을 나누는 이유가 무엇인가? 90년 대까지만 해도 이런 단어는 없었다. 모두 개발자라고 불렀었는데 어느 순간 비전공자들이 개발로 몰리면서 그들은 html과 JS 밖에 할 줄 모르니까 프론트라는 틀을 만들어 버렸다. 웹 개발 시장
무방향 그래프(Undirected Graph) 간선에 방향이 없는 그래프야. 정점 A와 B 사이에 간선이 있으면, A에서 B로도 갈 수 있고 B에서 A로도 갈 수 있어. 그래프 구조 자체가 한 번 연결되면 양쪽으로 갈 수 있음을 전제로 해. 예를 들어: 이건 A에
BFS는 말 그대로 "너비를 우선으로 탐색"하는 알고리즘이야.\\즉, 현재 정점에서 가까운 정점부터 차례로 탐색해 나가는 방식이야.BFS는 큐(Queue) 자료구조를 활용해서 동작해.시작 노드를 큐에 넣고 방문 처리한다.큐에서 노드를 꺼내고그 노드에 인접한 정점들 중에
DFS는 "깊이 우선 탐색"이라는 말 그대로,한 정점에서 시작해서 갈 수 있는 만큼 계속 깊이 들어갔다가, 더 이상 못 가면 다시 돌아와서 다른 경로를 탐색하는 방식이야.DFS는 보통 스택(Stack) 구조로 동작해.재귀 함수로 구현하면, 시스템 콜 스택을 자연스럽게
방향이 있는 그래프(DAG, Directed Acyclic Graph)에서사이클이 없고, 어떤 일들이 선후 관계를 가지고 있을 때그 일들을 순서대로 정렬하는 것이 위상 정렬이야.예를 들어 과목 수강 순서가 있다고 해보자.자료구조 → 알고리즘수학 → 자료구조영어 → 발표
너가 어떤 도시(A)에서 다른 도시들로 여행을 가고 있다고 상상해봐.그리고 너는 가장 빠른 길을 찾고 싶어.이때 "어떤 도시에 가는 데 걸리는 최단 시간"을 메모지에 적고 다닌다고 생각해보자.그래서 메모지에 이렇게 적혀 있어:A (시작 도시): 0분B: 무한대C: 무한
1. 점화식이 핵심 플로이드-워셜 알고리즘은 DP 기반 알고리즘이야. 이때 핵심 점화식은 다음과 같아: 여기서 Di는 i에서 j로 가는 현재 최단 거리이고, k는 중간에 거쳐가는 정점이야. 즉, \\"i에서 j로 가는 현재 경로보다, i→k→j로 가는 경로가 더
그래프는 무방향 연결 그래프여야 한다.모든 정점을 포함해야 한다.사이클이 없어야 한다.간선 수는 정점 수보다 하나 작아야 한다. (N개의 정점 → N-1개의 간선)간선 가중치의 총합이 최소여야 한다.마을 여러 개를 전선으로 연결하려고 해.전선을 설치하는 데는 비용이 들
1960년대 초반의 시간 공유(time-sharing) 기법은 운영체제 역사에서 혁신적인 전환점이야. 지금 우리가 쓰는 현대 컴퓨터의 기반이 된 개념이라고 해.1950~60년대 컴퓨터는 엄청 비쌌고, 한 대의 컴퓨터를 한 번에 한 명만 쓸 수 있었어.프로그래머는 펀치카
프로세스 수 증가 시 생길 수 있는 문제 1. 스위칭 비용 증가 (Overhead) 각 프로세스의 상태(레지스터, 스택 포인터, PC 등)를 저장/복원하는 작업은 시간이 듦. 프로세스가 많아지면 스위칭 횟수도 늘어남 → 그만큼 CPU 자원이 스위칭에 낭비됨. 2.
컨텍스트 스위칭이란? > 컨텍스트 스위칭은 운영체제가 CPU를 현재 프로세스에서 다른 프로세스로 전환(switch) 할 때, 이전 상태를 저장하고 다음 상태를 복원하는 작업이야. 왜 스레드는 컨텍스트 스위칭 비용이 낮을까? > 스레드는 같은 프로세스 내에서 자원을
동시성과 병렬성이란? | 개념 | 설명 | | --------------------- | ----------------------------
실행 중인 프로그램의 인스턴스즉, "프로그램 + 운영체제가 할당한 자원들의 묶음"이야.프로세스는 실행 단위의 가장 큰 단위이고,실제 CPU에서 명령어를 실행하는 주체는 "스레드"야.즉, 프로세스는 최소한 1개의 스레드를 포함하고 있어야 실행될 수 있어!실제로 CPU가
전위 순회를 위한 사고 순서 > 현재 노드 방문 → 왼쪽 자식 → 오른쪽 자식 1. 이 노드를 "방문해도 되는 상태"인지 체크해야 해 트리에서는 이미 방문한 노드는 다시 방문하면 안 돼 그리고 노드가 없다는 표시 (".")인 경우도 넘겨야 돼 → 따라서 “이 노
너도 이렇게 짤 수 있어. 핵심은 세 가지야: 1. 패턴을 몸에 익히기 → BFS는 "틀"이 있어 지금 본 코드처럼: deque로 큐 사용 visited 체크 for i in range(4)로 방향 순회 이런 건 반복 연습으로 "손이 외우게" 해야 해 처
미션 이름: BFS 커스터마이징 - 미로 탈출 문제 상황 다음은 미로야. '1'은 갈 수 있는 길이고, '0'은 벽이야. 너는 (0, 0)에서 시작해서 (3, 3)에 도착하고 싶어 > BFS를 이용해서 최단 거리(몇 칸 이동했는지) 를 구해보자! 목표 BFS
DP 어디에 사용할까? | 상황 | 해결하려는 문제 | | --------------------------------- | ---------------------
알고리즘이 안 풀릴 때 설명하고 싶은 사람에게 찾아가서 내가 알고 있는 문제를 설명하고 상대방에게 질문을 받아라. 질문에 대답할 수 있으면 네가 그 개념을 알고 있는 것이고 대답할 수 없으면 모르고 있는 것이다.그래프 시각화 사이트에서 제공해주는 정보를 적극 이용해라.
즉시값을 RAX 레지스터에 넣음 (쓰기)아직 읽기는 없음RAX의 값을 읽고, RBX에 저장 (읽기 + 쓰기)이게 바로 "레지스터 → 레지스터" 읽기AL (RAX의 하위 1바이트)을 읽어서 DL에 저장다시 말해, AL 읽기RAX 값을 읽어서 메모리(rsp가 가리키는 곳)
컴퓨터 시스템을 제대로 이해하기 위해선 CPU가 어떻게 발전했는지 역사적인 흐름을 알아야 합니다. CSAPP의 3.1장에서는 Intel의 주요 프로세서들이 어떤 이유로 발전했는지 소개합니다.메모리의 한계 극복초기 16비트 CPU는 주소 공간이 제한적이어서(최대 1MB)
C 코드가 실행 가능한 프로그램으로 변환되는 과정은 다음 네 단계로 이루어진다:전처리기 (Preprocessor)\`2. 컴파일러 (Compiler)C 소스 코드를 어셈블리 코드(.s)로 변환어셈블러 (Assembler)어셈블리 코드를 오브젝트 파일(.o)로 변환링커
x86-64 시스템의 범용 레지스터는 64비트 크기레지스터는 하위 크기로도 접근 가능:%al (8비트), %ax (16비트), %eax (32비트), %rax (64비트)데이터 이동 명령어: movb, movw, movl, movq는 각각 1, 2, 4, 8바이트 처리
서쪽에는 N개의 사이트, 동쪽에는 M개의 사이트가 있다. (N ≤ M)서쪽의 각 사이트는 동쪽의 사이트 중 하나와 1:1로 연결되어야 한다.단, 다리가 서로 교차되면 안 된다.교차되지 않게 N개의 다리를 놓는 방법의 수를 구하라.교차되지 않게 다리를 놓는 경우의 수는
\*\*피연산자(Operand)\*\*는 명령어가 사용할 데이터의 위치나 값을 지정해.x86-64는 다양한 피연산자 형태를 지원해. 총 3가지 유형이 있어:Immediate: 상수값 (예: $0x10)Register: 레지스터 (예: %rax)Memory: 메모리 주소
rax는 64비트 레지스터야.eax는 rax의 하위 32비트를 나타내.만약 eax에 값을 쓰면, 자동으로 rax의 상위 32비트가 0으로 채워져.즉, eax에 값을 쓸 때는 zero-extension이 일어나.반대로, ax, al 등에 값을 써도 그런 일은 일어나지 않
hyper-v라는 내용을 동기 형에게 설명을 듣는 데 리눅스와 윈도우를 hyper-v가 동시에 실행시켜 준다는 이야기를 들었다. 동시에 실행시켜준다? 그러면 병렬 작업이라는 소리인데 '한 쪽은 윈도우를 한 쪽은 리눅스를 어떻게 동작시키지?' 라는 생각이 들었음.Hype
객체 지향(Object-Oriented Programming, OOP)은 프로그램을 "객체들 간의 상호작용"으로 구성하는 방식이다. 이를 소설에 비유하면 다음과 같다:하나의 소설 = 하나의 프로그램등장인물 = 객체 (데이터와 행동을 함께 가짐)등장인물 설계도 = 클래스
이 문서는 C 언어에서 int 형 값을 double 형으로 변환할 때 내부적으로 어떤 일이 벌어지는지를 정리한 것이다. double result = (double)num1 / num2;일 때, num1만 double로 형변환했는데, num2는 언제 double이 되는가
\| \| - \| --------------------------------------------------------------- \| ------------------------------------------------------------------------
Q: KMP는 긴 문자열 안에 짧은 문자열이 있는지 찾는 알고리즘이야?✅ A: 맞아. KMP는 본문 문자열 A 안에 패턴 문자열 B가 연속적으로 완전히 일치하는 부분이 있는지를 찾는 알고리즘이야. 단순히 A, B, C 각각 문자가 있는지를 보는 게 아니라, "ABC"