본문 바로가기

전체 글

(73)
ubuntu+nginx+nodejs https://devlog-h.tistory.com/16 Node.js AWS EC2 배포 (nginx, PM2, Letsencrypt 사용) 안녕하세요. 휴몬랩에서 개발하는 OG입니당 :-) 최근 Node.js 프로젝트를 AWS EC2로 배포하였는데, 오늘은 그 과정을 공유해볼까합니다. Node AWS Hosting 이라고 구글링을 하면 보통 AWS EB (AWS Elastic Beansta. devlog-h.tistory.com 위는 배포시 참고한 사이트 우선.. sudo apt-get purge nginx nginx-common sudo apt-get autoremove rm -rf /etc/nginx 1. 기존 설치된 nginx 삭제 2. nginx 설치 sudo apt-get install ng..
TCP/IP 1. 인터넷 인터넷이란, 전 세계에 걸쳐 파일 전송 등의 데이터 통신 서비스를 받을 수 있는 컴퓨터 네트워크의 시스템이다. LAN, WAN으로 연결되어 있고 바다 밑에 거대한 해저 케이블이 설치되어 있다. 2. TCP/IP 계층 TCP/IP란, 인터넷에서 컴퓨터들이 서로 정보를 주고 받는데 쓰이는 프로토콜의 집합이다. TCP/IP 계층은 OSI 7계층 글을 보면 참고할 수 있으므로 생략하도록 하겠다. 3. TCP/IP 흐름 면접 단골 질문인 www.google.com을 을 웹브라우정 입력하면 어떠한 일이 일어나는지 따라가보자. Application Layer(HTTP, HTTPS) 먼저, 도메인 주소를 입력하면 위와 같은 HTTP Request 메시지를 서버로 보낸다.(http 버전은 일단 무시하자) T..
42,43,44회_NAPT, 5~7계층, OSI 참조 모델과 요약 IP 주소와 포트 번호 둘 다 변환하는 것이 NAPT이다. 같은 글로벌 IP 주소라도 다른 포트 번호를 사용하기 때문에 복수의 컴퓨터가 같은 글로벌 IP 주소로 접속할 수 있다. NAPT를 사용하면 보안에도 도움이 된다. LAN 내에 공개하고 싶은 서버가 있을 경우에는 정적 NAPT를 사용한다. 데이터 부분에 IP 주소가 들어가는 애플리케이션에는 개별적으로 대응한다. TCP/IP 에서는 5,6,7계층은 통합해서 한 개의 프로토콜로 되어있다. 5계층은 세션관리를 수행한다. 6계층은 데이터의 변환, 압축, 암호화를 수행한다. 7계층은 사용자 애플리케이션에 네트워크 서비스를 제공한다. 각 계층은 상위 계층에 서비스를 제공한다. 각 계층은 독립해 있으며, 다른 계층에 영향을 미치지 않는다.
40,41회_UDP, 네트워크 주소 변환 TCP는 신뢰성 대신에 전송 효율을 희생한다. UDP는 아무런 제어도 하지 않고 커넥션도 설정하지 않는다. UDP를 사용하는 애플리케이션에는 고속성이나 실시간 송수신이 필요한 것, 브로드캐스트가 필요한 것 등이 있다. 사설 IP 주소로는 인터넷에 접속할 수 없다. 글로벌 IP 주소는 부족한 상황이다. 사설 IP 주소와 글로벌 IP 주소를 변환하는 것이 NAT이다. 보유하는 글로벌 IP 주소 이상의 호스트는 동시에 접속할 수 없다.
38,39회_윈도우 제어, 포트 번호 확인응답을 보낼 때는 확인응답 번호에 다음에 수신 받을(예정의) 데이터의 번호를 넣는다. 전송에러가 발생했을 때에는 지금 보낸 것과 같은 데이터를 보낸다. TCP는 윈도우 제어라는 구조로 버퍼 플로를 방지한다. 상대방의 버퍼사이즈=윈도우 사이즈를 확인하면서 송수신을 진행한다. 윈도우 사이즈 분량까지는 확인응답을 수신하지 않아도 한번에 보낼 수 있다. 포트 번호로 어느 애플리케이션의 데이터인지를 식별한다. 포트와 애플리케이션을 접속하는 기능을 소켓이라고 한다. 자주 사용되는 서비스는 웰 노운 포트를 사용한다. 송신처는 49152번 이후의 중복되지 않는 번호를 자유롭게 사용한다.
36,37회_4계층의 역할과 개요, 커넥션과 세그먼트 4계층은 신뢰성이 높은 전송을 수행한다. 확인응답/제어흐름을 수행하고, 신뢰성이 높은 데이터 전송을 실시한다. 어느 애플리케이션에 도달할지를 판별하기 위해 포트 번호를 사용한다. 4계층은 TCP와 UDP 두 가지 프로토콜이 있으며, 둘 중 한 개를 사용하여 데이터 전송을 수행한다. TCP에서의 데이터 전송에는 커넥션 확립이 필요하다. 커넥션은 가상의 데이터 통로이다. 커넥션의 확립은 쓰리웨이 핸드쉐이크 방식으로 수행한다. 큰 데이터는 MSS로 분할해서 전송한다. 전송되는 데이터에는 순서대로 번호가 부여된다.
34,35회_ICMP,Echo와 Time Exceeded 에러 메시지 등을 전송하는 프로토콜이 ICMP이다. ICMP에서는 IP 헤더+ICMP 메시지를 송신한다. ICMP에는 Query와 Error 두 종류의 메시지가 있다. 타입3의 ICMP는 수신처에 도달하지 못했다는 것을 통지한다. IP 데이터그램의 TTL(Time To Live)은 라우터를 경유할 때마다 1만큼씩 줄어들고, 0이되면 그 데이터그램은 파기된다. ICMP 타입의 8과 0은 에코 요청과 에코 응답이다. 에코 요청을 수신한 컴퓨터는 에코 응답을 보낸다. 에코 요청에 대해 에코 응답을 보내오면, 그 상대와 데이터의 송수신이 가능하다는 것을 의미한다. 에코 요청은 ping을 사용하여 실행할 수 있다. TTL에 의해 패킷을 파기한 라우터는 송신처에 Time Exceeded를 보낸다. Time Exce..
32,33회_라우팅,RIP 동적 라우팅은 라우터가 자동으로 경로를 결정하는 것이다. 동적 라우팅은 라우팅 프로토콜로 실현된다. 라우팅 프로토콜이란, 근접해 있는 라우터 간의 네트워크 정보를 서로 교환하기 위한 규칙이다. 라우팅 프로토콜은 동작 방식과 장소에 따라 여러 종류가 있다. 라우팅 프로토콜에 의해 근접해 있는 라우터 간의 네트워크 정보를 서로 교환한다. 라우팅 프로토콜이 언제, 어떻게, 누구에게, 무엇을 보낼지를 결정한다. 이를 통해 컨버전스 상태에 도달한다. 홉 수(경유하는 라우터 수), 회선속도, 정체상태, 에러 발생률 등등이 '최적'의 기준이 된다. RIP는 디스턴스벡터형 라우팅 프로토콜이다. 라우팅 업데이트로 정보를 교환한다. 라우팅 업데이트란, 라우팅 테이블을 그대로 교환하는 것을 말한다. 30초에 1회 업데이트를..