일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 막무가내
- 막내의막무가내 플러터
- 막내의 막무가내 알고리즘
- 막내의막무가내 알고리즘
- 안드로이드 sunflower
- 주엽역 생활맥주
- 막내의막무가내 프로그래밍
- 2022년 6월 일상
- flutter network call
- 막내의막무가내 안드로이드
- 막내의막무가내 플러터 flutter
- 안드로이드 Sunflower 스터디
- 막내의막무가내 코틀린
- 막내의막무가내 rxjava
- 막내의막무가내 코틀린 안드로이드
- 부스트코스에이스
- 프래그먼트
- 막내의막무가내 일상
- 프로그래머스 알고리즘
- Fragment
- 막내의 막무가내
- 막내의막무가내 안드로이드 코틀린
- 안드로이드
- 막내의막무가내 코볼 COBOL
- 막내의막무가내 안드로이드 에러 해결
- 막내의막무가내
- 주택가 잠실새내
- 막내의막무가내 목표 및 회고
- 막내의막무가내 SQL
- 부스트코스
- Today
- Total
목록네트워크 (12)
막내의 막무가내 프로그래밍 & 일상
드디어 다 읽었습니다. 원래는 매일 블로그에 정리하면서 읽을까 했는데 그러기에는 너무 시간낭비가 커서 중간에 그만뒀었습니다. 학교에서 네트워크를 벼락치기식으로 공부한 면도 있어서 추천을 받아 이 책을 사고 읽게 되었습니다. 책 내용은 대화형식과 그림 및 요약으로 이루어져 있고 목차도 잘 구성된 책입니다. 이 책에 있는 내용만 다 알아도 학사수준에서는 손색이 없다고 전 생각합니다. ( 읽으면서도 많이 까먹고 기억안나는 부분이 많아 시간날때마다 읽을려고 합니다.) 가벼우면서도 네트워크 전반적 지식을 얻을 수 있는 면에서 추천합니다.!
멀티미디어 스트리밍 프로토콜을 이용한 실시간 라디오 녹음 및 저장을 할 수 있는 프로그램을 python을 사용해 만들어봤다. RTMP 프로토콜을 사용해서 EBS 라디오를 녹음하고 HLS 프로토콜을 사용해서 KBS 라디오를 녹음할 수 있다. 그리고 녹음뿐 아니라 crontab을 이용해서 내가 정한 주기마다 라디오를 다운받을 수 있게 했다. 이렇게 녹음된 파일 들을 소켓 웹서버에 올리고 실행 및 다운을 할 수 있는게 최종 결과물이다. RTMP protocol: Real TIme Messaging Protocol, 인터넷 상에서 멀티미디어 스트리밍 서비스를 이용하기 위해서 사용하는 프로토콜중 하나이다. HLS protocol: HTTP Live Streaming, http 기반 미디어 스트리밍이고 apple에..
BGP Routing Table Data를 읽어 IP주소를 탐색한다. 1. 먼저 제공된 BGP Routing Table Data를 읽어 전처리를 한다. 2. 전처리된 파일을 읽어 Hash와 Trie 두 가지 알고리즘을 사용하여 input IP(입력된 ip)의 주소를 탐색하는 방법을 구현 한다. 3. 마지막으로 두 가지 알고리즘의 성능평가를 위해 그래프로 시각화하여 보여준다. 두개다 하나의 파일에 구현하였다. input파일은 다음과 같다. 먼저 전처리할 파일을 읽어온다. 파싱을 하고 같은 네트워크 아이피일 경우 Big Weight > High Local Pref > Short AS_PATH기준으로 하나의 아이피만 남기고 리스트에 저장한다. 전처리한 ip리스트를 pickle과 txt파일로 저장한다. (txt..
TCP socket을 이용한 Phillps Hue제어 HTTP Server 만들어보았다. 요약하면 다음과 같다. 1. 서버로 Docker를 사용한다. 2. 전구를 제어할 수 있는 post방식의 form을 담고 있는 Web UI 제작 (html) 한다. 3. 클라이언트에서 GET 요청을 하면 내가 2에서 만든 Web UI 반환해준다. 4. 웹페이지로 POST 요청을 보내고 서버에서는 해당 값을 받아 데이터를 파 싱 및 가공하여 브릿지 통신을 하여 Phillps Hue(전구)를 제어한다. 위는 전구를 제어하는 웹페이지인 hueController.html 파일이다. (실수로 head태그에 다 작성했다) form 태그는 post 방식으로 하였고 전원 on/off, 밝기 그리고 x, y 컬러값을 설정할 수 있다...
테스트를 위해 Locust라는 서버 테스트 도구를 사용하도록 한다. 그리고 도커 컨테이너 안에 서버를 두도록 한다. 서버는 단일 프로세스, 멀티 프로세스, 멀티 스레드 소켓 서버가 있다. python 코드로 구현하였다. 각 소 켓 서버의 성능을 테스트하고 차이점을 알아보았다. 가장 먼저 도커 안에 단일 프로세스, 멀티 프로세스, 멀티 스레드 소켓 서버를 만들고 클라이언트에서 locust를 사용해서 도커의 서버에 접속했다. 테스트환 경은 내 노트북 윈도우의 vmware 리눅스 안에 도커 서버를 두고 같은 와이 파이 환경인 친구의 맥북을 클라이언트로 사용하였다. 도커에서는 포트 8000번을 열고 외부에서는 1234 포트로 접속하면 된다. (포 트 포워딩) 참고로 locust 는 다운받고 locust 테스트할..
도커를 서버로 두고 다른 컴퓨터를 클라이언트로 두어 소켓 통신을 사용해 웹페이지 서빙을 해보았다. [선 결론] TCP 소켓을 사용해서 HTTP 서버를 만들었다. 클라이언트와 서버 소캣 파이썬 코드를 각각 만들어 통신을 해보고, cURL, Telnet, Web browser를 통해서도 소켓 서버에 요청과 응답을 받아봤다. 또한 브라우저로 접속했을때 내가 만든 웹사이트를 띄워주도록 하였다. 마지막으로 wireshark를 통해서 packet capture를 하여 tcp소켓 통신을 어떻게 하는지 볼 수 있었다. 먼저 서버가될 docker 컨테이너 서버 소캣의 ip를 설정해주기 위해 docker 컨테이너내에서 ifconfig로 확인한 결과이다 도커 로컬 ip가 172.17.0.2임을 알 수 있다. 그래서 http..
도커내에서 웹 프레임워크를 활용해서 웹 페이지를 서빙해봤다. 이를 위해 nginx, uwsgi, django를 사용한다. uwsgi는(Web Server Gateway Interface) 웹서버와 웹 애플리케이션의 인터페이스를 위한 파이선 프레임워크다. nginx(서버)가 보낸 요청을 django가 알아들을 수 없다. 즉 둘은 직접 연동이 안된다. 그래서 uwsgi를 사용해서 nginx 보낸 요청을 파이썬으로 해석해서 django와 연동되게 해주고 알맞게 웹페이지를 불러오게 해준다.(간단히 말하면 uwsgu가 인터페이스 역할을 한다.) 또한 nginx는 정적인 웹만 지원하므로 동적 웹, 데이터베이스 연동을 위해 웹 어플리케이션인 django가 필요하다. Client – Server(nginx) – Soc..
[네트워크의 구조] 그림을 보면 알다시피 컴퓨터, 인터페이스, 통신 매체, 라우터로 컴퓨터로 패킷교환 네트워크는 이루어져 있다. 케이블 분배기로 연결되는 범위를 세그먼트(Segment)라고 한다. 이 세그먼트 범위 내에 있는 컴퓨터는 패킷 교환없이 직접 데이터를 송수신할 수 있다. (예를 들어 방안에 컴퓨터 3대가 있는데 이 3대를 위해 3개의 라우터가 필요없이 라우터 한대로 즉 허브를 이용해서 서로 데이터 송수신을 할 수 있다.) 이를 위해서는 T자형 분배기를 만들어야하는데 작업이 번거로우므로 허브(Hub)라는 기기를 사용한다. (허브 안에 T자로 분배된 회선이 있다고 생각한다, 허브에는 케이블 삽입구 즉 포트가 여러개가 있고 이것을 다수의 컴퓨터와 연결할 수 있다. 라우터와도 연결 가능) 허브를 사용..
[데이터 통신 기초] 컴퓨터 네트워크는 컴퓨터가 가진 리소스를 주고받을 필요가 있는데 이것을 위해 이루어지는 것이 데이터 통신이라고 한다. 데이터란 무언가에 대한 정보를 컴퓨터상에서 표현한 것이다. 즉 컴퓨터상에서의 리소스를 공유하기 위한 정보라고 볼 수 있다. 그리고 이 정보는 '비트'로 구성된다. ( 0과 1의 조합) 데이터 통신에 필요한것 : 컴퓨터, 통신매체, 인터페이스 컴퓨터를 연결하는 통신 메체가 필요하고 컴퓨터와 컴퓨터 그리고 그 둘을 연결해서 데이터가 지나는 파이프가 있다고 생각하고 파이프를 연결할 때 컴퓨터에 파이프의 접속구가 필요하고 컴퓨터와 파이프의 중개역할을 하는데 이것이 인터페이스이다. 컴퓨터는 주고받고 싶은 데이터를 가지고 데이터 송신과 수신을 담당한다. 인터페이스는 컴퓨터와 통..
하루3분 네트워크 교실이라는 책을 지인의 추천을 받아 구매했다. 오늘부터 하루에 시간이 허락한다면 최소 2회씩 보면서 기록해볼려고한다. [1회 네트워크란?] 네트워크(network) = net(망, 그물) + work(일하다) 물류, 신경, 전화, 교통 등 이것들은 모두 네트워크이다. 위의 예시들의 공통점은 무언가와 무언가가 그물망처럼 무언가에 의해 연결되어 있는 상태를 가진다. 그러나 이 상태만으로는 네트워크라고 하기 애매하고 할수도 없다. 여기서 움직임이 필요하다. 즉 위의 개념에 더해서 네트워크란 '무언가(점)와 무언가(점)를 무언가(선)에 의해 연결해서 무언가를(데이터) 운반하기' 위한 거다. 연결과 주고받기가 네트워크라는거다. 점과 점이 있고 그걸 이어주는게 선이고 점과 선이 연결된다. 그리고 ..
도커를 하면서 했던 명령어 정리 우분투에서의 도커 설치 sudo wget -q0- https://get.docker..com/ | sh 맥윈도우에서 설치 https://www.docker.com/ 도커 이미지 가져오기 docker pull ubuntu:18.04 도커 이미지 확인 docker images 도커 이미지로부터 containers라는 이름의 컨테이너 띄우기(ubuntu:18.04 이미지라면) docker run -it --name containers ubuntu:18.04 /bin/bash 도커 컨테이너 확인 docker ps -a 생성된 컨테이너 실행하기 docker start containers 실행한 컨테이너 접속하기 docker exec -it containers /bin/bash Do..
출처: [위키백과] 도커는 리눅스의 응용 프로그램들을 소프트웨어 컨테이너 안에 배치시키는 일을 자동화하는 오픈 소스 프로젝트이다. 도커 웹 페이지의 기능을 인용하면 다음과 같다: 도커 컨테이너는 일종의 소프트웨어를 소프트웨어의 실행에 필요한 모든 것을 포함하는 완전한 파일 시스템 안에 감싼다. 1. 가상 머신과 유사하게 가상 환경에서 가상화를 목적으로 한다. 2. 독립적인 OS를 올리는 가상 머신과 달리, Dockers는 시스템 자원을 공유한다. 3. 경량이며 훨씬 빠른 성능을 갖고있다. 도커 초보자들이 읽기 좋게 정리한 사이트 : https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html 위 사이트 글을 아주 간략하게 컨테이너와 이미지에 대해서..