분류 전체보기

    [네트워크] 도메인주소와 EC2서버가 연결되는 과정

    DNS란? 도메인이나 호스트네임을 IP주소로 해석해주는 서비스로서 사용자는 원하는 도메인을 입력하면 DNS 서버를 통해 해당 도메인의 실제 IP정보를 받아 원하는 사이트에 쉽게 접속할 수 있게 됩니다. local 네임 서버에 'www.naver.com'에 대한 정보를 요청합니다. local 네임 서버는 'www.naver.com'에 대한 정보가 없기 때문에 루트네임 서버에 다시 요청합니다. (루트네임서버 : 전 세계 13개만 존재하는 최상위 네임서버) - a.root-servers.com ~ m.root-servers.com 루트네임서버는 'www.naver.com'에 대한 정보는 없지만 .com 도메인을 관리하고 있는 서버 정보를 알려줍니다. local 네임 서버는 .com 네임서버에 'www.nave..

    [네트워크] gRPC 프로토콜

    RPC란? Remote Procedure Call의 약자로, 원격에 있는 함수를 호출해주는 기능을 말합니다. 별도의 원격제어를 위한 코딩 없이 다른 주소 공간에서 리모트의 함수나 프로시저를 실행 할 수 있게 해주는 프로세스간 통신입니다. RPC는 일반적으로 , request parameter와 response parameter를 알아야하기 때문에, 양쪽의 인터페이스 규약을 IDL 등의 언어로 정의한 후, 해당 프로그래밍 언어가 부를 수 있는 형태의 코드로 생성을 해줘야하는데, 이를 Skeleton과 Stub코드라고 합니다. 분산 컴퓨팅 환경에서 많이 사용되어 왔으며 현재에는 MSA(Micro Service Architecture)에서 마이크로 서비스간에도 많이 사용되는 방식입니다. 서로 다른 환경에서도..

    [NodeJS] 템플릿엔진

    템플릿 엔진의 필요성 html을 컨트롤하기 위해 여러 템플릿엔진들이 있습니다. 템플릿엔진을 사용하면 서버에서 온 데이터들을 조금 더 쉽게 다룰 수 잇다는 장점이 있습니다. 대부분의 템플릿엔진은 html에 비해 문법이 간단하여 코드량을 줄일 수 있습니다. 데이터만 바뀌는 경우가 굉장히 많으므로 재사용성을 높일 수 있습니다. 유지 보수에 용이합니다. 템플릿엔진에는 Server Side Template Engine과 Client Side Template Engine 이 있습니다. Server Side Template Engine 서버에서 미리 정의된 Template에 넣어 html을 그려서 클라이언트에 전달하는 방식입니다. 동적으로 생성되는 부분만 템플릿에 소스 코드를 끼워넣는 방식으로 동작합니다. 자스크립트..

    [Docker] docker 실행하기(2)

    이 명령어로 docker hub에서 python 3.8 이미지를 다운받습니다. (내 로컬에서 python 3.8 이미지가 없기 떄문에) docker run -it python:3.8 Dockerfile에 다음과 같이 이미지를 저장할 수 있습니다. FROM python:3.8 ADD requirements.txt . RUN pip install -r requirements.txt ADD templates templates ADD app.py . CMD ["python", "app.py"] FROM 은 이 환경에서 실행을 하겠다는 뜻입니다. ADD는 호스트머신에 있는 파일을 Docker 이미지에 넣겠다는 의미입니다. 즉, requirements.txt를 . 위치에 넣겠다는 뜻입니다. RUN 은 쉘에서 해당 ..

    [Docker] docker 시작하기(1)

    아래 명령어는 public docker registry로 유명한 docker hub에서 docker/getting-started 라는 image를 로컬로 다운로드 받는 명령어입니다. docker run -d -p 80:80 docker/getting-started 원래는 local에 있는 image들 목록 중에 이 이름을 갖는 image를 찾는데 없어서, docker hub에서 가져오는 겁니다. 기본 문법 아래는 기본 명령어 틀입니다. docker run [options] {image_name} [command] 맨 처음에 실행했던 명령어 중 -d 는 detach옵션입니다. 도커를 실행하면 기본적으로 container를 보여주게 되어있습니다. 자세히는 container의 실행 process 자체가 이 쉘..

    [JavaScript] 비동기 처리의 시작 콜백 이해하기 (11)

    자바스크립트는 동기적인 아이입니다. 호이스팅이된 이후부터 우리가 작성한 순서에 맞춰서 하나하나 실행됩니다. hoisting이란 var, function declaration이 자동으로 호이스팅됩니다. 1. JavaScript is synchronous console.log('1'); setTimeout(() => { console.log('2'); }, 1000); console.log('3'); // Synchronous callback function printImmediately(print) { print(); } printImmediately(() => console.log('hello')); // Asynchronous callback function printWithDelay(print, ti..

    [JavaScript] JSON 개념 정리와 활용방법 및 유용한 사이트 공유 (10)

    HTTP(Hypertext Transfer Protocol) 클라이언트는 서버에 request를 주고 서버는 클라이언트에 response를 줍니다. AJAX(Asynchronous Javascript And XML) 데이터를 주고받을 수 있는 기술, 대표적으로 XHR이라는 오브젝트가 있습니다. 최근에는 fetch() API가 나왔습니다. IE에서는 지원하지 않습니다. XML이란 html과 같은 마크업언어입니다. 서버와 데이터를 주고받을 때는 다양한 파일포맷을 전달 받을 수 있습니다. 요즘에 JSON을 많이 씁니다. fetch나 XMLHttpRequest를 사용해서 서버와 통신할 수 있습니다. XML은 파일의 사이즈가 커서 가독성이 좋지 않습니다. JSON(JavaScript Object Notation)..