CS 51

[Java] 이중 콜론 연산자 (::)

1. 상황 아래와 같이 Optional에서 orElseThrow()를 통해 값이 없으면 발생시킬 exception을 지정하려 했습니다. Optional apiInfo = apiInfoRepository .findAll() .stream() .findFirst() .orElseThrow(() -> new ApiInfoNotExistException()); 그런데 orElseThrow()의 arg로 들어가는 lambda식을 아래와 같이 변경할 수 있었습니다. Optional apiInfo = apiInfoRepository .findAll() .stream() .findFirst() .orElseThrow(ApiInfoNotExistException::new); 2. 이중 콜론 연산자 이중 콜론(::)은 메..

CS/언어 2022.03.31

[운영체제] KOCW 반효경 교수님 강의 - 9. Process Management 2

프로세스 생성 부모가 자식을 복제 생성 문맥을 복제 (메모리, PC 등) 그러나 쓰레드에서 본 것과 같이, 똑같은 내용을 2copy 만드는 것은 메모리 낭비 Copy on Write 이로 인해, 자식 프로세스가 생성되면 부모 프로세스와 메모리를 공유하게됨 자식이 명령어를 수행하면서 내용이 바뀔 때마다 copy 즉, write를 할 때마다 copy 최대한 공유하며 잘게 쪼게진 단위로만 copy fork, exec int main() { int pid; pid = fork(); if (pid == 0) printf("\n Hello, I am child!\n"); else if (pid > 0) printf("\n Hello, I am parent!\n"); } fork() 시스템 콜 자식 프로세스는 for..

CS/운영체제 2022.03.30

[운영체제] KOCW 반효경 교수님 강의 - 8. Process Management 1

프로세스 생성 누가 생성? - 부모 프로세스가 자식 프로세스를 생성 자원 공유 1. 부모 프로세스와 자식 프로세스가 자원을 공유하는 모델 2. 공유하지 않는 모델이 있음 일반적으로 자식 프로세스는 생성 이 후 별도의 프로세스이므로 공유하지 않음 수행 1. 부모와 자식이 공존하는 모델 2. 자식이 종료될 때까지 기다리는 모델(blocked) 생성과정 부모 프로세스의 공간을 복사 (PCB, 메모리 등) - fork() 시스템 콜 자식이 복사된 공간에 새로운 프로그램을 올림 - exec() 시스템 콜 시스템 콜을 통해 운영체제를 통해서 생성해야함 프로세스 종료 프로세스가 마지막 명령을 수행 후 운영체제에게 종료를 알림 - exit 시스템 콜 프로세스는 부모보다 자식이 먼저 종료되야함 자식이 종료될 때 부모에게..

CS/운영체제 2022.03.30

[운영체제] KOCW 반효경 교수님 강의 - 7. Process 3

Thread의 장점 빠른 응답성 자원 절약(공유되는 메모리) -> CPU 수행 관련 정보만 따로 가짐 다중쓰레드의 협력으로 throughput을 높일 수 있음 CPU가 여러 개일 경우 병렬성을 높일 수 있음 Thread의 장점 정리 Responsiveness 웹 브라우저에서 html 문서를 가져옴 렌더링 중에 image가 필요함 image를 요청(blocked) [쓰레드] 하나의 쓰레드가 image를 요청(blocked) [쓰레드] 다른 쓰레드는 이미 가져온 텍스트를 렌더링 [쓰레드] 더 빨리 문서를 볼 수 있음 Resource Sharing 똑같은 작업을 하는 두 쓰레드가 자원을 공유 Economy creating - 프로세스를 생성하는 것보다 쓰레드를 생성하는 cost가 더 적게 소모 - CPU 수행..

CS/운영체제 2022.03.30

[인프런][HTTP] 인터넷 네트워크

https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC 모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의 실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., - 강의 소개 | 인프런... www.inflearn.com 인터넷 통신 IP (인터넷 프로토콜) TCP, UDP PORT DNS 인터넷 네트워크 두 대의 컴퓨터가 통신을 한다 케이블로 연결되어 있으면 통신이 어렵지 않다 그러나 우리는 인터넷을 통해 통신을 한다 인터넷은 복잡하다 어떻게 수 많은 노드를 거쳐 통신을 할까? IP (인터넷 프로토콜) 인터넷을 통해 데이터를 전송하기 위한 최소한의 규칙이 필요하다..

CS/웹 2022.03.30

[데이터베이스] KOCW 용환승 교수님 강의 - 1. 관계 대수와 SQL

관계 해석과 관계 대수 관계 데이터 모델에서 지원되는 정형적인 언어 관계 해석(relational calculus) - 원하는 데이터(what)만 명시하는 선언적인 언어 관계 대수(relational algebra) - 원하는 데이터와 어떻게(how) 질의를 수행할 것인지 명시하는 절차적인 언어 대수(algebra)란? 수와 수의 연산 연산자와 피연산자로 구성 관계 대수에서 피연산자는 relation relation을 input으로 relation을 output 2개 relation일수도, 1개 relation일수도 있음 관계 연산자들 필수 연산자 - 바로 사용 가능한 연산자 (primitive) 유도된(derived) 연산자 - 필수 연산자들로 만들 수 있는(유도된) 연산자 카티션 프로덕트 (데카르트 ..

[네트워크] KOCW 이석복 교수님 강의 - 2. 컴퓨터네트워크 기본2

패킷 스위칭을 고속도로에 비유 패킷 스위칭은 링크에서 빛의 속도로 도달 패킷 스위칭은 패킷의 모든 데이터가 라우터에 도착해야 다음 라우터로 진행 (패킷 단위로) 네트워크 애플리케이션 네트워크 edge 서버/클라이언트에서 동작하는 애플리케이션 서버 웹서버 서버는 24시간 동작해야함 인터넷 상에 존재하는 컴퓨터는 IP라는 고정된 주소를 가지고 있어야함 (요청을 받아야 하기 때문) 클라이언트 웹브라우저 클라이언트는 고정되지 않은 IP를 가져도 상관없음 소켓 프로세스끼리 통신(IPC)를 위해 OS가 system call을 통해 인터페이스를 만들어놓음 네트워크도 똑같음 : 두 프로세스가 다른 컴퓨터에 있을 뿐 OS가 인터페이스를 제공 이 인터페이스를 소켓이라고 함 소켓을 식별하기 위해 IP와 port를 사용 IP..

CS/네트워크 2022.03.28

[네트워크] KOCW 이석복 교수님 강의 - 1. 컴퓨터네트워크 기본1

Network Edge laptop/desktop : 웹 브라우저에 해당 Network core 라우터 Edge의 종류 서버 클라이언트 데이터 통신 서비스 1. connection-oriented service : TCP 신뢰성 - 손실 없이 내 데이터가 도착 순서 - 내가 보낸 순서대로 도착 flow control - reciever가 받을 수 있는 속도에 맞춰 sender가 보내는 것 congestion control - 네트워크 상황에 맞춰서 네트웤이 받을 수 있는 능력에 맞춰서 보내는 것 2. connectionless service : UDP TCP의 반대 : 신뢰성 x, 순서 x, flow control x, congestion control x 왜 필요할까? -> 신뢰성이 필요하면 TCP, ..

CS/네트워크 2022.03.28

[운영체제] KOCW 반효경 교수님 강의 - 6. Process 2

프로세스가 입출력 요청을 했을 때 입출력 처리는 운영체제를 통해서 해야하므로, 운영체제에게 입출력 요청을 함 입출력 요청은 시간이 오래 걸림 동기식 입출력 - 입출력이 끝날 때까지 기다리고 아무것도 하지 말고 기다려야하는 것 비동기식 입출력 - 입출력이 진행되는 동안, 이 프로세스가 CPU를 잡아서 명령어를 실행하는 것 동기식 입출력 구현방법 동기식 입출력이므로, I/O가 요청된 후 이 프로세스는 일을 못함 구현방법 1 I/O가 끝날 때까지 CPU를 가지고 있으면서 기다림 구현방법 2 어차피 일을 못하므로 CPU를 다른 프로세스에게 넘겨줌 Thread 개요 프로세스 내부에 CPU 수행 단위가 여러개 있는 경우 같은 일을 하는 프로세스를 여러 개 띄워놓고 싶은 경우 주소 공간 (메모리)를 하나만 띄워 놓고..

CS/운영체제 2022.03.28

[운영체제] KOCW 반효경 교수님 강의 - 5. Process 1

프로세스 program in execution = 실행중인 프로그램 프로세스의 문맥(context)이 중요 프로세스 context 특정 시점에서 프로세스가 어디까지 수행했는지, stack/data/code와 PC와 register 등 어떤 상태인지 프로세스의 현재 상태를 정의 1. CPU 수행 상태를 나타내는 하드웨어 문맥 - PC, register - 이 프로세스가 instruction을 어디까지 실행했는지 2. 프로세스의 주소 공간 - code, data, stack - 현 시점의 프로세스 주소공간에 어떤 내용이 들어가 있는가 3. 프로세스 관련 커널 자료구조 - PCB, 커널 스택 - 프로세스가 실행될 때마다 운영체제가 PCB를 하나씩 두고 관리 - 시스템 콜이 발생할 때마다 커널에서 stack으로..

CS/운영체제 2022.03.28