목록전체 글 (88)
Zero To One
1. 개요 위 그림에서 웹서버는 정적 리소스를 제공하는 nginx, 웹 에플리케이션 서버는 express 혹은 fastify, 데이터베이스는 mongodb를 사용했다. 이제는 AWS에 매치 시켜보자. nginx -> S3 fastify -> EC2 DB -> RDS 들어가기 앞서 짧게 요약하겠다. S3 -> Storage EC2 -> Compute RDS -> Relational Datavase Service (관계형 데이터 베이스, SQL) 2. EC2 란? Elastic Compute Cloud의 약자로써 컴퓨터를 하나 빌린다 라고 이해하면 된다. EC2 서비스는 후불제 PC방과 같이 사용한 만큼비용을 지불하기 때문에 '탄력적인'이라는 의미의 Elastic이라는 단어가 붙어있다. Elastic은 비용..
1. 등장배경 클라우드 등장 이전에는 흔히 말하는 전산실 등에 컴퓨터를 배치하고 인터넷을 연결하여 서비스를 제공했다. 그런데 만약 서버가 요청에 대한 수용 능력이 한계에 도달한다면 어떻게 대처할까? 같은 공간에 더 많은 컴퓨터를 제공하여 한 대가 해결할 수 있는 요청을 여러 대가 나눈다. 컴퓨터 한 대의 성능을 높인다. 하지만 이러한 방식에는 문제점이 존재한다. 주기적인 관리 필요 서버실에 고장이 발생할 경우, 인력 및 비용 투입 관리해야할 기기들이 늘어남에 따라 인력 및 비용 상승 공간의 한계 제한된 공간안에 컴퓨터를 늘림으로써 공간확보 부족 서버의 성능을 높여도 공간의 한계로 인한 증설 불가 -> 이런 상황에서 추가적인 서버 증설이 어렵게 되자 일부 거대 기업은 데이터 센터라는 거대한 건물을 세우기 ..
nginx가 설치되어 있다는 가정하에 진행해 보겠습니다. 1. conf.d 폴더에 들어가 줍니다. cd /etc/nginx/conf.d 2. 파일에 들어가 줍니다. sudo nano default.conf 저는 conf.d에서 default.conf로 있지만 cd /etc/nginx 에서 nginx.conf 파일로 있는 분도 계실 겁니다. 설정하는 법은 똑같으니 상관은 없습니다. 일단 제 기준(우분투 20.04LTS) 기준으로 설명드리겠습니다. 3. 전체적인 코드입니다. proxy_cache_path /etc/nginx/cache levels=1:2 keys_zone=mycache:10m max_size=1g inactive=1m use_temp_path=off; server { listen 10026;..
https://toss.tech/article/smart-web-service-cache 웹 서비스 캐시 똑똑하게 다루기 웹 성능을 위해 꼭 필요한 캐시, 제대로 설정하기 쉽지 않습니다. 토스 프론트엔드 챕터에서 올바르게 캐시를 설정하기 위한 노하우를 공유합니다. toss.tech https://developer.mozilla.org/ko/docs/Web/HTTP/Caching HTTP caching - HTTP | MDN 웹 사이트와 애플리케이션의 성능은 이전에 가져온 리소스들을 재사용함으로써 현저하게 향상될 수 있습니다. 웹 캐시는 레이턴시와 네트워크 트래픽을 줄여줌으로써 리소스를 보여주는 데 developer.mozilla.org
1. 인터넷이 무엇이냐? 라는 말에 유식하게 설명하자면, " TCP/IP 기반의 network 이다." 라고 말하면 된다. 2. 그럼 TCP/IP란 무엇인가? "현재 인터넷에서 사용하는 모델이며, 5개의 계층으로 구성된 계층 모델이다." 다음 그림을 보도록 하자. OSI는 나중에 설명하도록 하고 TCP/IP를 보도록 하자. 1. Layer 1 : physical 물리층 데이터 링크층으로 부터 한 단위의 데이터를 받아 통신 링크를 따라 전송될 수 있는 형태로 변환 비트(bit) 스트림을 전자기 신호로 변환 전송매체를 통한 신호 전송 감독 즉, 최하위 계층으로 장치간의 물리적인 접속을 제어하기 위한 기능을 제공하는 계층이다. 주요 역할 : 개별 비트들을 하나의 노드에서 다음 노드로 잘 전달 하는 것. 2. ..
1. 네트워크는 전송매체에 연결된 노드(node)와 링크(link)의 집합 이다. 노드 : 네트워크상의 다른 노드로 데이터를 전송/ 수신할 수 있는 모든 장치(컴퓨터, 프린터 등) 링크 : 장치들을 서로 연겨라는 통신 채널(channel) 2. 네트워크의 평가기준 성능(Performance) 전달시간이나 응답시간 등 여러가지 방법으로 측정 여러 요인에 따라 달라질 수 있다. 사용자 수 전송 매체 유형(데이터 전송률) 하드웨어 소프트웨어 신뢰도(Reliavility) 고장 빈도 수 고장이 난 후 링크를 복구하는데 소요되는 시간 재난 - 화재,지진,도난과 같은 재난으로부터 보호되어야 한다. 보안(Security) 불법적인 접근 (사용자 아이디, 패스워드, 암호 기술) 바이러스 위 3가지로 나뉜다. 3. 물리..
1. 기본적으로 node가 설치되어 있어야 하고 node -v는 16버전이여야 한다. 2. https://github.com/fastify/fastify-cli GitHub - fastify/fastify-cli: Run a Fastify application with one command! Run a Fastify application with one command! Contribute to fastify/fastify-cli development by creating an account on GitHub. github.com 위 페이지를 참고해서 설치해보자 npm install fastify-cli --global 3. 이 단계에서 fastify가 먹히지 않는다면 npm과 node를 삭제하고 다시 설..
project를 시작하기 앞서, 깃허브에 레파지토리를 생성하자. 1. 내 깃허브에 레파지토리 create new를 눌러서 Repository name을 설정하자. 2. 잘 생성된걸 볼 수 있다. 3. 팀원이 있다면 setting -> collaborators에서 등록해주자. 4. 다시 돌아와서... 이제 클론을 해주자 나같은 경우, ssh로 클론을 해주었다. 5. git clone //예시 git clone git@github.com:vnfmsqkek3/project1-fastify-mongodb.git ls를 해보면 project-fastify-mongodb가 생성된것을 볼 수 있다. cd project-fastify-mongodb로 들어가보자. 6. git init git remote -v 로 git..