본문 바로가기

네트워크 공부

(29)
[Virtualbox 포트포워딩] 내 웹 서버 다른 컴퓨터로 접속하기 포트포워딩이란? 외부 접속을 위해서는 외부의 기기가 내부에 있는 컴퓨터나 서버가 연결된 공유기를 통과해야 합니다. 공유기는 방화벽 역할을 하기 때문에 내부 컴퓨터에 접근이 가능하도록 하려면 특정 포트를 열어줘야 합니다. 외부의 기기에는 고정된 IP만 전달하고 외부 기기가 접근할 수 있도록 내부의 공유기 관리자에서 설정하는 과정이 포트포워딩입니다. 우선 가상머신 Ubuntu의 터미널을 엽니다. 포트포워딩을 위해선 가상 머신의 IP주소를 알아야 하는데 우선, net-tools라는 것을 깔아야 합니다. sudo apt install net-tools 그 후, ifconfig 명령어를 입력하면 ip를 확인할 수 있다. 그 후, Virtualbox에서 해당 가상머신을 누르고 설정을 누릅니다 네트워크 탭에 들어갑니..
GitHub 첫 이용해보기 - 프로젝트 Commit 하는 법 프로젝트를 작성해나가다 보면 다른 컴퓨터에서 편하게 그 저장 시점까지 받아서 다시 작성하고싶은데, 항상 어딘가 넣어다니긴 그렇고 프로젝트 파일이다 보니 일일히 클라우드에 올리는 것도 번거롭다. 그런데 이런 생각을 개발자들이라면 다 해봤을 것이다. 그런 생각에서 GitHub은 아주 유용한 도구가 될 수 있다. 우선, GitHub.com에 들어가 가입해준다. Sign up for GitHub을 누르면 이제 가입할 수 있는 창이 나옵니다. 하나하나 작성하다보면 Create 버튼이 나옵니다. 몇 가지 인증 절차를 거치면 바로 start repository를 할 수 있게 창이 나온다. 그럼 이제 터미널을 열어 프로젝트가 있는 곳으로 이동해줍니다. 그 후, git init 명령어를 통해 git을 실행시켜 줍니다. ..
간단한 파일 압축의 원리 * 압축의 종류 손실 압축 > 데이터 압축 과정에서 원본 데이터 손실 비손실 압축 > 압축 이후에도 원본 데이터 유지 그 중 비손실 압축의 종류 1 ) Run-Length Encoding (RLE) > 예를 들어, AAAABBBBCCCDEEEE란 데이터가 있다면 00000111111111100000011.. 처럼 0과 1로 변환될 것이다 이것을 0 5 1 10 0 6 1 2.. (처음 0이 개, 1이 10개...) 처럼 데이터 크기를 더 줄일 수 있다. 이것을 또 0과 1을 없애서 5 10 6 2로 줄일 수 있다. 무손실이기 때문에 원본으로 복구도 가능하다 2 ) 허프만 부호화 > 모든 글자 탐색 후 점수 부여 aaabbc라는 글자를 보면 a가 3개, b가 2개, c가 1개이다. 이때 가장 빈도수가 높은..
QR코드 원리 QR코드 : Quick Response의 약자로, 2차원 매트릭스 형태로 이루어진 정보 표시 방법이다. 일본의 덴소 웨이브라는 곳에서 처음 개발하여 공장에서 공정마다 빠른 전산 작업을 위해 도입했으나 현재는 특허권 없이 전세계로 보급되어 있다. 우리나라는 코로나 때 QR코드 인증으로 인해 익숙해졌었는데, 기존에 흔히 쓰던 바코드는 가로 배열에 최대 20 여자의 숫자 정보만을 넣을 수 있던 것 과는 달리 QR코드는 2차원적 구성으로 가로 세로를 활용하여 더 많은 문자나 숫자 정보를 저장할 수 있게 되었습니다. QR코드의 6대 구성 요소 경계 파인더 (위치 찾기 심볼) 얼라인먼트 타이밍 패턴 버전 정보 개별 단위 셀 QR코드는 버전에 따라 셀의 개수가 다양한데, 크기가 21X21인 버전1부터 시작해 버전이 ..
Virtualbox 다른 컴퓨터로 가상환경 옮기기 나는 집 데스크탑으로 Virtualbox를 다운받고 가상 환경을 셋팅해놨다. 근데, 출장을 가거나 멀리 있을 때 노트북에서 가상 환경 내부의 코딩을 진행할 수 없으니 어쩔 수 없이 다른공부를 하거나 다른 작업을 해야만 했는데, 이 가상환경을 ova 파일로 내보낼 수 있다는 것을 알았다. 내보내는 방법은 간단하다. 원하는 맨 위 탭에서 가상 시스템 내보내기를 클릭한다. 그럼 창이 하나 뜰텐데, 여기서 전문가 모드를 클릭한다. Format settings 를 항목에서 형식은 Open Virtualization Format 1.0 파일은 원하는 저장 경로를 선택하고 MAC 주소 정책은 모든 네트워크 어댑터 MAC 주소 포함으로 설정한다. 나머지는 건드릴 거 없이 Finish를 눌러주면 된다. 그럼 로딩이 되는..
WebSocket - 간단한 설치 및 세팅법 이 코드는 https://www.youtube.com/watch?v=yXPCg5eupGM 이 강의를 참고하여 작성되었습니다. 차후 채팅서비스 구현 시 참조 사이트 https://cocoder16.tistory.com/62 90년대까지는 HTTP 요청만으로 모든 웹 서비스를 만들 수 있었다. 하지만 요즘의 웹 서비스는 꽤나 복잡하다. 그 중 하나가 웹소켓이다. 기존의 HTTP 통신은 서버가 먼저 클라이언트에게 전송을 할 수가 없었다. 일방적인 관계였던 거다. 하지만 그러기엔 복잡한 웹 서비스를 구현할 수 없었기 때문에 다른 통신들이 생겨났다. HTTP 통신의 단점을 보완한 예시로 대표적인 2가지를 꼽을 수가 있다. 1. Server-Sent Event > HTTP 통신을 끊기지 않고 유지할 수 있음 2. ..
Python - Requests 모듈 이번엔 파이썬으로 스크립트를 짤 때, 아주 유용하게 응용할 수 있는 requests란 모듈에 대해서 알아보자 requests 모듈을 사용하면 페이로드를 날릴 수 있다. 기본적인 사용방법은 import로 불러온 후, URL을 get이나 post 방식으로 응답을 받아온다. http 관련 스크립트를 짤 때, selenium 보다 가벼워서 쓰기가 좋다. 밑 코드를 입력만 한 것으로 웹브라우저에서 해당 url에 접속한 것과 같은 효과를 얻는다. import requests url = "http://www.naver.com" response = requests.get(url) response.status_code response.text response.status_code 를 입력했는데 200의 값을 반환했다면 ..
aws - 클라우드 컴퓨팅이란? 인터넷으로 하는 서비스를 구현할 때, 서버를 두는 두 방식이 존재 온프레미스 (On-premise): 회사가 자사의 시설 혹은 IDC (인터넷 데이터 센터)에 직접 서버를 둠 클라우드 : 고급 프로그래머들이 구현해놓은 훌륭한 컴퓨팅 자원을 돈을 지불하고 빌려서 사용하는 방식 AWS란? AWS는 클라우드 서비스의 대표적인 예시이다. 인터넷을 통해서 언제어디서든지 원하는 때, 원하는 만큼의 컴퓨팅 리소스 (컴퓨팅, 스토리지, 네트워크)를 손쉽게 사용할 수 있게 하는 서비스 AWS는 훌륭한 개인의 아이디어를 받쳐줄 수 있는 좋은 지렛대와 같은 서비스이다. 컴퓨팅 CPU라고 하는 계산 능력을 사용한 것 스토리지 파일, 정보 등을 저장하는 것 네트워크 저장된 것들을 전송, 배포하는 것 클라우드란? 원거리에 있는 ..