Topic
-
callback, promise, async/await의 특징과 차이점 간단 정리Topic/JavaScript 2022. 5. 21. 09:10
callback 함수의 매개 변수인 함수 비동기 처리 시 동기처리할 때 콜백패턴을 사용한다. 자유도가 높은 장점이 있으나 콜백지옥이 우려되니 조심! promise JavaScript가 동기 처리이기 때문에 비동기 처리를 위해 promise를 사용합니다. 에러핸들링할 때는 catch 로 에러 처리가 가능하다. promise 지옥이 발생할 수 있으니 적당히 써야함 async / await promise보다 비동기적인 상황 표현이 쉽다. 에러핸들링 기능이 없어서 try catch문을 활용해야한다. 비동기코드를 동기코드처럼 읽게 해주어서 가독성이 좋다.
-
클로져란? / 호이스팅과 TDZTopic/JavaScript 2022. 5. 20. 09:35
클로져란? 클로져란 함수 내부에 선언되는 함수를 뜻한다. 클로져는 은닉화, 캡슐화의 2가지 특징을 가진다. 외부함수가 소멸한 후에도 변수를 기억하며 일반함수는 실행 후 전역변수 초기화가 되지만, 클로져는 선언 시 환경을 기억한다. 메모리에 객체들이 남아있어 클로져를 남발하게 되면 오버플로우 발생가능성을 높인다. 호이스팅과 Temporal Dead Zone 호이스팅은 변수나 함수의 선언이 끌어올려지는 것을 뜻한다. var (선언 & 초기화) -> 할당 / let 선언 -> 초기화 -> 할당 / const (선언 & 초기화 & 할당) let, const는 초기화되기 전까지 TDZ에서 대기(선언단계와 초기화단계 사이에 TDZ!) let, const도 호이스팅된다! 호이스팅 Yes (되지만) 참조오류 Yes -..
-
OSI 7계층 | TCP/IP 4계층 비교Topic/CS 2022. 4. 1. 09:17
TCP/IP 4계층 OSI 7계층 Protocols Application Layer Application Layer FTP, HTTP, Telnet Presentaion Layer JPEG, MPEG Session Layer NFS, SQL, PAP Transport Layer Transport Layer TCP, UDP Internet Layer Network Layer IPv4, IPv6 Network Access Layer Data Link Layer ARP, CDP, STP Physical Layer Ethernet, Wi-Fi OSI 7계층 OSI 7계층을 이용하면 네트워킹 시스템에서 일어나는 일들을 시각적으로 쉽게 설명할 수 있다. 이 계층을 활용한다면 네크워크 관리자는 문제의 원인의 범위를 ..
-
AWS EC2: 터미널이 종료되어도 서버 실행되게 만드는 방법 (feat. PM2)Topic/AWS | JENKINS 2022. 3. 31. 11:11
우리가 SSH를 통해 EC2에 접속하고, 서버 운영중인데 터미널이 강제 종료되었다고 생각해봅시다. 로컬에 띄워져 있던 ssh 프로세스가 강제 종료되고, EC2 상의 프로세스도 같이 종료되면서 서버가 종료되버리는 일이 발생한다. 우리는 웹 서버가 구동 중인 node 프로세스가 종료되지 않게 해야하는데 이 때 우리는 프로세스 매니지먼트 도구 PM2를 사용해볼 수 있다. PM2는 node.js로 실행되는 프로그램(프로세스)를 관리해주며, 백그라운드에서 실행되게 만들어준다. PM2 설치 방법 (서버에 접속한 상태에서) $ npm install pm2 -g PM2 전역에 설치 후 node.js 앱을 백그라운드로 실행하기 $ pm2 start app.js pm2에 관리자 권한을 부여하기 위해서 'authbind' ..
-
AWS EC2 Instance에서 서버 실행하는 방법Topic/AWS | JENKINS 2022. 3. 29. 08:33
이전 포스팅에 이어서 EC2 인스턴스에서 서버 실행하는 방법을 알아봅니다. EC2 인스턴스는 성공적으로 생성되었고 터미널에서 연결 상태까지 확인된 상태에서 다음 단계로 넘어가겠습니다. 1. 인스턴스에 개발 환경 구축하기 EC2 인스턴스를 생성하는 것은 가상 PC 한 대를 빌리는 것과 같습니다. 컴퓨터를 빌린 셈이니 이제 서버를 구동하기 위해 필요한 개발 환경을 구축하는 것부터 시작입니다. 패키지 매니저가 관리하는 패키지 정보 최신상태로 업데이트하기 $ sudo apt update nvm 설치 $ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash nvm 설치가 끝나고 nvm -v를 해도 버전이 뜨지 않는다면 터미널..