Tech
-
CI/CD가 뭐야?Tech/Devops 2020. 4. 2. 18:55
처음 웹 개발을 시작해야겠다고 다짐을 하고, 하나씩 하나씩 배워나간지 벌써 1년이 흘렀다. 웹이라는 분야를 배우면 배울수록 새로운 것들이 끊임없이 나타났고, 연속된 산을 넘어가는 과정같다는 생각을 느꼈다. 그러다 지인이 CI/CD에 대해서도 배워보라는 조언을 해 주었고, 조금 여유로운 시기인 지금 배워보고자 한다. 1. CI(Continuos Integration) 개발자들이 각각 개발한 소스코드들을 특정 시점에 통합하는 것이 아니라, 주기적으로 통합하고 빌드하는 과정이다. 이를 통해 통합과정에서 발생하는 오류들을 사전에 해결하고자 한다. 2. CD(Continuos Delivery & Deployment) 개발 중인 소프트웨어를 짧은 주기로 배포하고, 그 과정을 자동화하는 것이다. 통상 CD라 하면, ..
-
Node&Nginx를 PM2로 배포하기Tech/Backend 2020. 3. 20. 21:22
처음 노드 앱을 만들어 배포하려 했던 때가 생각난다. 단순히 AWS EC2 인스턴스에서 node 명령어로 실행시키면 짜잔! 하면서 배포가 완료되는 줄만 알았는데, 전혀 아니었다. 포그라운드(Foreground)로 실행되었기 때문에 터미널을 통해 다른 일을 할 수 없었고, 터미널을 닫으니 서버 전체가 종료되었다. 사실 내 입장에서는 전혀 이해가 가지 않았다. 그러다가 주변에서 PM2나 Forever와 같은 프로세스 관리자를 사용해보라 하였고, 구글링하며 적용시켜보더니 잘 실행이 되었다. 더구나 터미널을 종료해도 서버가 살아있어서 조금 신기했던 기억이 있다. 그러나 지금까지 왜 이렇게 되는지 조차도 몰랐기에. 이번 기회에 글을 작성하며 제대로 배워보고자 했다. 1. 프로세스의 동작방식 1-1. 포그라운드(F..
-
Nginx 탐구하기Tech/Backend 2020. 3. 19. 21:12
1. Nginx nginx는 동시접속 처리에 특화된 웹 서버로 기존의 웹 서버보다 많은 트래픽을 감당하기 위해 설계된 비동기 Event-Driven 방식의 웹 서버이다. 이러한 목적으로, 고성능과 높은 동시처리 능력 그리고 적은 메모리 사용에 집중하고 있는 웹 서버라 할 수 있다. 1-1. Event-Driven 말 그대로, Event-Driven은 언제 동작할지 모르는 반응(Event)가 일어났을 때 처리되는(Driven) 방식을 의미한다. 즉, 요청에 대한 각 상태를 정해서 이벤트가 발생할 때마다 이벤트를 처리하게 하는 방식이다. 이 방식을 통해서, nginx는 서버로 들어오는 요청을 이벤트로서 어떤 일을 처리해야 하는지에 대해서만 전달하고 다음 이벤트를 처리한다. 그래서 하나의 프로세스를 통해서 들..
-
AWS EC2에 Node/Nginx 설치Tech/Devops 2020. 3. 18. 23:46
해당 게시글은 AWS EC2 인스턴스에 Node.js와 Nginx를 설치하고 실행시키는 과정을 다루었습니다. 1. Putty를 이용해 AWS EC2 인스턴스에 ssh 접속하기(링크 참고) [문과 개발자] AWS EC2를 사용해보자 해당 게시글은 AWS EC2의 인스턴스 서버를 생성하고, ssh 접속까지 하는 과정을 다루었습니다. #1. AWS EC2 접속하기 #2. 인스턴스 시작하기 #3. AMI 선택하기 * 나의 경우에는 Ubuntu를 사용하고자 하였고, 18.. yunknows.tistory.com 2. Node.js 설치하기 다음을 입력해 노드 버전관리자인 'nvm' 설치하기 $ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/insta..
-
AWS EC2를 사용해보자Tech/Devops 2020. 3. 14. 21:58
해당 게시글은 AWS EC2의 인스턴스 서버를 생성하고, ssh 접속까지 하는 과정을 다루었습니다. 1. AWS EC2 접속하기 2. 인스턴스 시작하기 3. AMI 선택하기 * 나의 경우에는 Ubuntu를 사용하고자 하였고, 18.04 버전을 사용하였음. 16.04 버전을 사용하여도 무방함. 4. 인스턴스 유형 선택하기 5. 인스턴스 세부 정보 구성하기 기본적인 항목들이 세팅되어 있어서 넘어가도 좋지만, 알아두어야 할 개념에 대해서 짚고 넘어가 보자. VPC(Virtual Private Cloud) 논리적인 독립 네트워크를 구성하는 것임. 즉, 하나의 계정에서 생성하는 리소스들만의 격리된 네트워크를 만들어주는 기능으로, 다른 사람들은 접근하는 것은 물론 보는 것도 불가능함. 현재 AWS에서 VPC는 모든..
-
CacheTech/Backend 2019. 12. 27. 15:43
본 내용은 HTTP 완벽가이드 도서를 통한 학습과정을 기록한 글입니다. 개인적인 공부를 위해 남기는 목적이기에 내용상에 오류가 있을 수 있습니다. 잘못된 내용이 있다면 주저하지 마시고 알려주시면 감사드리겠습니다. 1. Cache 웹 캐시는 자주 쓰이는 리소스들의 사본을 자동으로 보관하는 HTTP 장치이다. 웹 요청이 캐시에 도착했을 때 캐시 된 리소스가 존재한다면 해당 요청에 대한 리소스는 원 서버가 아니라 캐시로부터 제공된다. 이처럼 캐시는 원 서버에 대한 부하를 줄여줄 수 있으며, 더 빨리 응답할 수 있도록 해주는 장점이 있다. 몇 가지 장점을 더 살펴보자면 다음과 같다. - 캐시는 불필요한 데이터 전송을 줄여 네트워크 비용을 줄여준다. - 캐시는 네트워크 병목을 줄여준다. 대역폭을 늘리지 않고도 페..
-
ProxyTech/Backend 2019. 12. 24. 20:31
본 내용은 HTTP 완벽가이드 도서를 통한 학습과정을 기록한 글입니다. 개인적인 공부를 위해 남기는 목적이기에 내용상에 오류가 있을 수 있습니다. 잘못된 내용이 있다면 주저하지 마시고 알려주시면 감사드리겠습니다. 1. Proxy Server 프록시 서버란 무엇일까? 프록시의 뜻을 살펴보면 [대리]의 의미를 가지고 있다. 이를 보면 어떤 과정이나 행동을 대신해 준다고 막연하게나마 생각해볼 수 있다. 좀 더 구체적으로 설명한다면 '클라이언트와 서버 사이에 위치하여 HTTP 메시지를 정리하는 중개인' 정도로 생각할 수 있다. 그렇다면, 중개인이 왜 필요한 것일까? 당연하게도 여러 이점이 있기 때문이다. 가령 보안상의 이유라던가, 필터링 기능, 부하 경감을 위한 Load Balancing 기능, 속도 개선을 위..