DFS(Depth-First Search) > 깊이 우선 탐색 재귀 구현 (비교적 간단) 스택을 이용한 반복 구조로 구현 직관적이라 이해가 쉽다 실행 속도 더 빠르다 BFS(Breadth-First Search) > 너비 우선 탐색 다익스트라 알고리즘 등에 유용하게 사용된다 BFS는 재귀로 동작하지 않고,* 큐를 이용한 반복 구현만 가능하다* 큐를...
스케줄링 알고리즘 FCFS > 선착순 nonpreemptive: 먼저 도착했으면 다 쓰고 나갈 때까지 기다려줌 프로세스 3개가 있다면 도착한 순서에 따라 먼저 도착한 P1에 먼저 준다 => 평균 기다리는 시간 17초 앞에 사용시간 긴 프로세스가 들어오면 전체 대기 시간이 길어진다 콘보이 이펙트 : 숏 프로세스 비하인드 롱 프로세스 롱 프로세스가 먼
*fork의 리턴으로 부모는 자식의 pid 값이 넘어오고, 자식은 0이 넘어오기 때문에 서로 다른 일을 할 수 있다 exec() > 하나의 프로세스를 완전히 새로운 프로세스로 덮어씌운다 execlp() > 프로그램을 완전히 새로운 프로그램으로 덮어씌우는 역할을 한다 누군가가 만든 독립적인 프로그램 끝나고 원래 프로그램으로 되돌아오지 않는다 뒤에 어떤 코...
🔐 인증과 권한 > 인증(Authentication)과 권한(Authorization) 부여를 함께 제공(처리)하며, 이 기능을 인증 시스템이라고 함 필수 구성은 세팅.py에 이미 포함되어 있다 인증 신원 확인 사용자가 누구인지 확인하는 것 권한 권한 부여 인증된 사용자가 수행할 수 있는 작업 결정 🔐 Custom User Model 인증을 하려면 ...
📍 프로그램의 실행 프로그램 실행하면 메모리에 올라가서 프로세스가 된다 운영체제 커널은 기본적으로 메모리에 올라가있다 (핵심) 버추얼 메모리 중간에 한 단계 더 있는 것 독자적인 주소 공간이 만들어진다 (각 프로그램의 머릿속에 존재) 각 프로세스만의 주소 버츄얼 메모리 공간 3개 코드 실행 파일에 있던 코드가 올라옴 (실행할 기계어) 데이터 전역 변...
컴퓨터 시스템은 무엇이고 그 위에서 프로그램이 어떻게 돌아갈까? 📍 컴퓨터 시스템 구조 CPU와 메모리로 구성된 컴퓨터 내부와 I/O장치로 구성된 컴퓨터 외부로 구성 전원키면 운영체제가 메모리에 항상 상주 (그림에서 흰색) 프로그램 실행시키면 프로그램이 메모리에 올라가서 프로세스가 된다 (그림에서 메모리 내 분홍, 파랑색) 각각의 작은 I/O컨트롤러도...
Form & Data 데이터를 보내고 가져오기 HTML form element를 통해 사용자와 애플리케이션 간 상호작용 이해하기 클라이언트 & 서버 구조 웹은 기본적으로 클라이언트-서버 아키텍처 사용 클라이언트가 서버에 요청을 보내고, 서버는 클라이언트 요청에 응답 HTML form's attributes action 입력 데이터가 전송될 URL을 지...
운영체제 좁은 의미 커널 운영체제 가장 핵심적 부분 항상 메모리에 상주하는 부분 넓은 의미 각종 주변 시스템 유틸리티를 포함한 개념 메모리에 상주하는 부분은 아니다 일종의 독립적 실행파일 자원관리에서 가장 중요한 것은 최대 성능을 내는 효율성 하지만 지나치게 차별을 주는 것은 안된다 컴퓨터의 두뇌는 사실 운영체제 CPU는 ...
운영체제는 자원 관리자 사용자가 편리하게 사용할 수 있게 하는 인터페이스 CPU 스케줄링 큐에서 프로그램이 기다리고 있는 상황 운영체제는 어떤 프로그램에게 사용권 줄 것인가? 도착 시간은 편의상 초 셋이 전부 0초에 도착 CPU 쓰다가 디스크 입출력 요청을 기다리고 끝나면 다시 CPU 얻는다 대부분 프로그램은 입력 > 연산 > 출력을 반복 FCFS ...
강의 목표 > 운영체제란 컴퓨터 하드웨어 바로 위에 설치되는 소프트웨어 계층으로 컴퓨터 시스템의 필수적 부분 우리는 운영체제 설계자 입장에서 이해 (어떻게 만들어졌는가, 무슨 역할을 하는가) 운영체제 예) 마이크로소프트 윈도우즈, 리눅스 위의 안드로이드 운영체제란? 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는...
부트스트랩 CDN > Content Delivery(Distribution) Network 컨텐츠(CSS, JS, Image, Text 등)을 효율적으로 전달하기 위해 여러 노드를 가진 네트워크에서 데이터 제공하는 시스템 개별 엔드 유저와 가까운 서버를 통해 빠르게 전달 가능(지리적 이점) 외부 서버 활용으로 서버 부하가 적어짐 ex) 유튜브 영상을 볼...
Float > 박스를 왼쪽 / 오른쪽으로 이동시켜 텍스트 포함 인라인 요소들이 주변을 wrapping 하도록 함 요소가 Normal Flow를 벗어나도록 함 속성 none: 기본값 left: 왼쪽으로 띄움 right: 오른쪽으로 띄움 float를 쓴 뒤 아래 요소에 clear: both를 넣어서 사용하면 해당 요소부터 다시 normal flow를 따르...
노드 - 1 = 간선의 수 수식 트리 > 수식을 표현하는 이진 트리 수식 트리의 순회 이진 탐색 트리 > 탐색 작업을 효율적으로 하기 위한 자료구조 모든 원소는 서로 다른 유일한 키를 갖는다 key(왼쪽 서브트리) < key(루트노드) < key(오른쪽 서브트리) 왼쪽 서브트리와 오른쪽 서브트리 내도 이진 탐색 트리다 탐색 트리 탐색할 키 값 x를 루...
트리 > 비선형 구조 원소들 간에 1:n 관계 계층형 자료구조 상위원소에서 하위원소로 내려가면서 확장되는 트리 모양의 구조 한 개 이상의 노드로 이루어진 유한 집합 노드 중 최상위 노드는 루트(root) 나머지 노드들은 n(>= 0)개의 분리 집합으로 분리될 수 있다 T1... TN은 하나의 트리가 되며(재귀적 정의) 루트의 부 트리 라고 한다 노드...
큐의 활용: 버퍼(Buffer) 일시적으로 데이터 보관하는 메모리의 영역 버퍼링 : 버퍼 활용 방식 또는 버퍼를 채우는 동작 자료구조 입출력 및 네트워크와 관련된 기능에서 이용 순서래도 입/출/전달되어야 하므로 FIFO 방식의 자료구조 큐가 활용 큐를 이용한 시뮬레이션 줄서있던 사람이 다시 나가서 뒤에서 줄을 서고 나면 새로운 사람이 들어온다 📍 BF...