목록Computer Science (25)
취미가 좋다
List vs Tuple vs Array List Tuple Array 요소를 생성, 삭제, 수정 가능 O X O 선언 [ ] ( ) import array 요소의 데이터 타입 여러가지 가능 여러가지 가능 하나의 타입만 가능 공통점 요소의 순서가 있고 index로 접근할 수 있다. 특징 스택, 큐를 구현할 때 자주 새용된다. - 요소들이 메모리의 연속된 위치에 존재한다. lambda : 함수의 형태를 더 짧게 표현한 문법 람다 함수에는 이름이 없다. 복잡하면 이해하거나 사용하기 어렵기 때문에 간단한 식만 사용한다. map() 함수와 많이 사용된다. map() 함수는 인자로 함수를 받는다. 두 번째 인자로 받은 데이터(리스트 등)의 요소에 함수를 적용하여 반환한다. lambda 매개변수 : 반환되는 값 a..
지금까지 ME를 해결하기 위한 SW 솔루션, HW 솔루션, OS가 지원하는 SW 솔루션을 알아봤다. 이 방법들은 low-level에서의 접근으로 Flexible하지만 복잡하다. 마지막으로 Language-level(high-level)에서 접근해보자. Monitor High-level Mechanism은 프로그래밍 언어로 상호배제(ME)를 수행한다. 그래서 사용이 비교적 쉽다. 여러 High-level Mechanism 중 Monitor만 살펴보자. Monitor 한 번에 한 프로세스만 들어갈 수 있는 Critical data, Critical sections 영역이 있다. C#, C++, F#, VB, java 에서 제공 장점 : 사용이 쉬워서 에러가 발생할 가능성이 낮다. 단점 : 지원하는 언어에서만..
비슷해보이지만 다른 Blocking과 동기화를 알아보자. 아래처럼 A함수에 B함수가 들어가 있다고 가정한다. def func_A(): func_B() ... Blocking 함수 B의 동작이 마칠 때까지 제어권이 B에게 있다. B이 동작이 끝난 후에 A에게 제어권이 돌아간다. Non-blocking 함수 B가 시작하자마자 제어권을 함수 A에게 넘긴다. 함수 B가 끝나지 않았지만 A가 다음 코드를 실행한다. 즉, 내부에서 호출된 함수가 제어권을 바로 주는 지, 동작을 끝낸 뒤 주는 지에 따라 구별된다. Synchronous (동기) 함수 A가 기다리면서 함수 B의 수행 결과나 종료 상태를 계속 체크한다. Asynchronous (비동기) 함수 B의 수행 상태를 함수 A가 신경쓰지 않는다. Callback ..
TCP는 크게 3가지 제어 기능이 있다. 전송되는 데이터의 양을 조절하는 흐름 제어 데이터가 유실되거나 잘못된 데이터가 수신되었을 경우 대처하는 방법인 오류 제어 네트워크 혼잡에 대처하는 혼잡 제어 이 기능들 덕분에 예외 상황에 크게 신경쓰지 않고 상위 레이어 동작에 집중할 수 있다. 흐름 제어 송신 측과 수신 측의 데이터 처리 속도가 다를 수 있다. 송신 측이 빠를 때 수신 측 버퍼가 넘치는 오버플로우 문제가 발생한다. 이러한 문제를 줄이기 위해 윈도우 크기로 송신 측의 데이터 전송량을 조절한다. 윈도우 크기 : 자신이 처리할 수 있는 데이터의 양 stop and wait 상대방에게 데이터를 보낸 후 잘 받았다는 응답이 올 때까지 기다리는 방식 sliding winodw 송신 측이 수신 측에서 받은 윈..
HTTP (Hypertext Tranfer Protocol) 클라이언트와 서버와 통신을 가능케 하는 프로토콜이다. 브라우저로 인터넷에 접속하는데 사용된다. TCP/IP 위에서 동작한다. 클라이언트가 서버로 요청하는 것이 통신의 시작이다. 이 요청의 목적을 Method로 표시한다. Method 중 대표적인 GET, POST를 살펴볼 것이다. 특징 단방향성 클라이언트가 서버로 요청을 보내고 이에 대한 응답을 받는 단방향적 통신이다. 비연결성 연결이 계속 유지되지 않고 요청에 대한 응답이 끝나면 연결을 끊는다. 무상태성 클라이언트가 서버와 연결된 상태가 아니기 때문에 기본적인 상태를 가지지 않는다. 이를 보안하기 위해 쿠키, 세션, 토큰 등을 사용한다. 응답 코드 2xx 성공 요청이 정상적으로 이주어졌다. 3..
무선 랜에 대해서 알아보자. 무선 랜 랜 케이블을 사용하지 않고 전파를 이용하여 컴퓨터를 연결하는 것을 말한다. 장점 : 랜 케이블이 닿지 않는 장소에서도 통신할 수 있다. 단점 : 속도가 불안정하고 전파가 약하면 연결이 잘 안된다. 보안이 취약하다. 무선 랜은 무선 액세스 포인트(Wireless Access Point, WAP)와 무선 클라이언트(컴퓨터, 스마트폰 등)로 구성된다. 보통 무선 공유기가 WAP 기능을 포함한다. 무선 클라이언트가 WAP와 통신하려면 무선 랜 칩과 무선 랜 어댑터가 필요하다. 무선 랜 어댑터에는 USB 메모리 방식 어댑터와 컴퓨터 카드 방식 어댑터가 있다. 무선 랜을 연결하는 방법 인프라 스트럭처(infrastructure) 방식 : WAP를 통해 통신하는 방식. 보편적으로..