일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 백트래킹
- Python
- streamlit
- 기계학습
- 파이썬
- 파이싼
- BOJ
- 1101
- end to end
- 신경망 학습
- 4948
- n과 m
- 15649
- 1002
- 가상환경
- 손실함수
- 밑바닥부터 시작하는 딥러닝
- N-Queen
- 개발환경
- 재귀
- pyenv
- 9020
- 백준
- 설정
- Mac
- 실버
- 그리디 알고리즘
- 경사하강법
- Today
- Total
목록분류 전체보기 (181)
파이톨치
Datalink layer protocol 개요 위 그림을 참조하면 데이터 링크 계층의 프로토콜로는 Bluetooth Smart, IEEE 802.15.4, ZigBee등이 있다. Datalink issue는 에너지 효율성, 작은 메시지, 제한된 컴퓨팅이 있다. 초기에 wearable 장치에 초점을 맞추어 WPAN 발전 -> bluetooth, zigbee (2계층) 이후에 IoT에 적합한 IP 기반 WPAN 프로토콜이 제안 -> 6LoWPAN (3계층) Networking issue는 큰 숫자 (32, 48비트 주소 불충분), 16비트 지역 주소, 64비트 광역 주소 등이 있다. 이 때문에 6LoWPAN 제안되었다. 6LoWPAN은 IPv6와 802.15.4가 바로 연동하는데 문제가 있어 중간자 역할 ..
쓰레드의 이론적 이해 쓰레드의 등장 배경 프로세스는 부담스럽다. 프로세스의 생성에는 많은 리소스가 소모된다. 일단 프로세스가 생성되면, 프로세스 간의 컨텍스트 스위칭으로 인해서 성능이 저하된다. 컨텍스트 스위칭은 프로세스의 정보를 하드디스크에 저장 및 복원하는 일이다. 데이터의 교환이 어렵다 프로세스간 메모리가 독립적으로 운영되기 때문에 프로세스간 데이터 공유 불가능! 따라서 운영체제가 별도로 제공하는 메모리 공간을 대상으로 별도의 IPC 기법 적용. 쓰레드 프로세스보다 가벼운, 경량화된 프로세스이다. 때문에 컨텍스트 스위칭이 빠르다. 쓰레드 별로 메모리공유가 가능하기 때문에 별도의 IPC 기법 불필요. 프로세스 내에서의 프로그램의 흐름을 추가한다. 쓰레드와 프로세스의 차이점 프로세스는 서로 완전히 독립..
멀티프로세스 서버의 단점과 대안 멀티프로세스 서버의 단점 프로세스의 빈번한 생성은 성능의 저하로 이어진다. 멀티 프로세스의 흐름을 고려해서 구현해야 하기 때문에 구현이 쉽지 않다. 프로세스간 통신이 필요한 상황에서는 서버의 구현이 더 복잡해진다. 멀티프로세스 서버의 대안 하나의 프로세스가 다수의 클라이언트에게 서비스를 할 수 있도 록한다. 이를 위해서는 하나의 프로세스가 여러 개의 소켓을 핸들링 할 수 있는 방법이 존재해야 한다. 바로 이것이 IO 멀티플렉싱(multiplexing)이다. 멀티쓰레드/멀티프로세스 vs 입출력다중화 입출력 다중화 방식에서는 하나의 프로세스 안에서 여러 개의 소켓 IO를처리 소켓 입출력 모델 소켓모드 블로킹 소켓과 넌블로킹 소켓으로구분 블로킹 소켓 소켓 함수 호출시 조건이 만..
멀티 프로세스 다중 접속 서버 둘 이상의 클라이언트에게 동시에 접속을 허용하여, 동시에 둘 이상의 클라이언트에게 서비스를 제공하는 서버를 의미한다. 프로세스 실행 중인 프로그램에 관련된 메모리, 리소스 등을 총칭하는 의미, 멀티프로세스 운영체제는 둘 이상의 프로세스를 동시에 생성가능. 운영제제는 생성되는 모든 프로세스에 ID를할당(PID). fork 함수 fork 함수가 호출되면, 호출한 프로세스가 복사되어 fork 함수호출 이후를 각각의 프로세스가 독립적으로 실행 fork 함수 호출 이후의 반환 값의 차를 통해서 부모프로세스와 자식프로세스의 프로그램 흐름을 구분하게 된다, fork 함수를 호출한 프로세스는 부모 프로세스이고 반환값은 자식의 PID이며, fork 함수의 호출을 통해서 생성된 프로세스는 자..
Socket Options 소켓 옵션을 통해 소켓 함수의 동작을 세밀하게 조정할 수 있다. 소켓 코드와 프로토콜 구현 코드(TCP, UDP, IP)를 세부적으로 제어한다. int setsockopt(int sock, int level, int optname, const void *optval, socklen_t optlen); int getsockopt(int sock, int level, int optname, void *optval, socklen_t *optlen); level = SOL_SOCKET, IPPROTO_IP, IPPROTO_IPV6, IPPROTO_TCP가 있다. SOL_SOCKET 레벨 옵션 # SO_BROADCAST int b = 1; setsockopt(sock, SOL_SOCK..
UDP TCP와의 비교 UDP는 3-way 통신을 하는 TCP와 다르게, SEQ, ACK 와 같은 메시지 전달을 하지 않는다. 즉, flow contorl이 없다. 때문에 연결의 설정과 해제의 과정도 존재하지 않아서, listen, accept 함수가 필요하지 않는다. 데이터의 전송이 빠르지만, 데이터의 분실 및 손실의 위험이 존재한다. 또한, 1대1 통신이 아니기 때문에, 하나의 UDP 소켓만 존재하고, 연결 개념이 없어서 하나의 소켓으로 둘 이상의 소켓과 데이터 송수신이 가능하다. UDP 기반의 데이터 입출력 함수 UDP 소켓은 데이터를 전송할 때마다 목적지에 대한 정보를 넣어주어야 한다. 아래 코드에서 전송지가 둘 이상일 수도 있다. 추가로, sendto 함수 호출 시 클라이언트의 IP와 PORT ..
# 인터넷 더보기 1. 인터넷을 구성하는 주요 요소 4가지를 Nuts and Bolts 관점에서 설명하세요. 답: 호스트(컴퓨팅 기기), 통신 링크, 패킷 교환기(라우터, 스위치), ISP 풀이: 인터넷은 수많은 호스트(PC, 서버, 모바일 기기 등)가 통신 링크(유선, 무선)로 연결되고, 패킷 교환기(라우터, 스위치)가 데이터 패킷을 전달하며, ISP들이 서로 연결된 네트워크로 구성됩니다. 2. 인터넷이 애플리케이션에게 제공하는 서비스 3가지를 예시와 함께 설명하세요. 답: 웹(HTTP), 이메일(SMTP), VoIP(Skype) 풀이: 인터넷은 다양한 애플리케이션에게 서비스를 제공하는데, 예를 들어 웹 서핑을 위한 HTTP, 이메일 전송을 위한 SMTP, 인터넷 전화를 위한 VoIP(Skype) 등이..
IP 주소체계 버전 4임. 32비트 이진수 3계층은 호스트를 구분하는 일이다. 호스트를 구분하기 위해 사용하는 주소를 IP이다. 전세계적으로 구분 가능해야 함. IoT 가면 좀 부족함. 우리가 배우는건 버전 4임. 클래스로 구분되는 주소체계임. 네트워크 주소와 호스트 주소로 IP주소는 구성된다. 데이터 패킷을 전송한다. 네트워크를 라우터가 찾아주는거임. 네트워크 안에서는 호스트 번호를 보고 찾는거임. 클래스가 있는데 A, B, C, D, E 클래스가 있다. 맨 앞에 비트 8비트를 가지고 본다. 시작이 0이면, 10이면, 110이면, 1110이면, 1111이면 순서이다. 참 쉽죠? 이걸 보고 32비트 중에서 어디까지가 네트워크 주소인지 확인하는 것이다. 오호라? 2개는 예약되어서, 2 ** n -2 개 주..