본문 바로가기
반응형

전체 글122

nvm으로 nodejs 설치하기(+ 버전변경) wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash 위 명령어로 nvm 설치 후 nvm -v 버전확인 nvm ls-remote --lts 설치 가능한 버전 리스트 LTS(Long Term Support) 버전을 설치하는게 좋다. nvm install 10.13.0 10.13.0 버전 node 설치 (버전은 리스트보고 입력) nvm list 현재 컴퓨터에 설치된 node 버전 확인 nvm use 12.22.1 12.22.1 버전 사용하기 2021. 6. 27.
React serve 명령어로 배포하기 (+포트변경) VM 을 이용해서 배포를 해야할 일이 생겨서 공부해봤다. 전에 프로젝트를 배포할 때 사용했던 AWS EC2에 접속 후 했던 과정과 비슷했다. 배포과정 VM 접속, node.js 설치 git 레포 clone 리액트 프로젝트 빌드 빌드된 파일을 serve 이용해서 배포 1. VM 접속, node.js 설치 접속은 리눅스에서 ssh 명령어를 이용해서 한다. wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash node.js 를 설치하기 전에 nvm을 설치하기 위해 위 명령어를 실행한다. 설치가 끝나면 잘 설치되었는지 확인하기 위해 nvm --version 위 명령어를 실행한다. nvm의 설치버전이 출력된다면 잘 설치된 .. 2021. 4. 24.
react 에서 dotenv로 환경변수 사용하기 구글이나 깃헙의 API를 사용하려고 할 때 발급받은 클라이언트 Id를 깃헙에 유출시키지 않기 위해 dotenv를 이용했었다. 리액트에서는 사용방법이 달라서 기록해봤다. npm install --save dotenv 설치 //.env REACT_APP_MAPS_CLIENTID=clientId 리액트에서는 환경변수를 사용할 때 env 파일에서 반드시 변수명 앞에 REACT_APP 을 붙여야 한다. .gitignore에 .env를 작성하는것을 잊지말자 사용할 때는 환경변수를 사용하고자 하는 파일 상단에서 import나 require를 한 뒤에 환경변수 값을 사용할 위치에서 process.env.환경변수명 으로 사용하면 된다. require("dotenv").config(); // import dotenv fr.. 2021. 4. 15.
파일, 디렉토리 삭제 rm rm은 remove의 약자로, 파일 또는 디렉토리를 삭제하는 명령어입니다. 파일 삭제하기 abc.txt 파일을 삭제합니다. 삭제할 건지 다시 묻습니다. y 또는 yes를 입력하면 삭제합니다. rm abc.txt 확장자가 txt인 모든 파일을 삭제합니다. 각 파일에 대해서 삭제할 건지 묻습니다. rm *.txt 현재 디렉토리에 있는 모든 파일을 삭제합니다. 각 파일에 대해서 삭제할 건지 묻고, 디렉토리가 있다면 삭제할 수 없다는 메시지가 나옵니다. rm * -f 옵션을 붙이면 삭제할 건지 다시 묻지 않고 바로 삭제합니다. rm -f abc.txt 현재 디렉토리에 있는 모든 파일을 바로 삭제합니다. 디렉토리는 삭제하지 않습니다. rm -f * 디렉토리 삭제하기 dir1 디렉토리를 삭제합니다. 디렉토리를.. 2021. 4. 15.
HTTP vs HTTPS / GET vs POST HTTP는 텍스트 교환이므로, 누군가 네트워크에서 신호를 가로채면 내용이 노출되는 보안 이슈가 존재한다. 이런 보안 문제를 해결해주는 프로토콜이 'HTTPS' 동작순서 HTTP : TCP -> HTTP HTTPS : TCP -> SSL -> HTTP HTTPS 는 HTTP 통신하는 소켓 부분을 SSL(Secure Socket Layer) or TLS(Transport Layer Security)라는 프로토콜로 대체하는 것 뿐이다. HTTPS 의 SSL 에서는 공통키 암호화 방식과 공개키 암호화 방식을 혼합한 하이브리드 암호 시스템을 사용한다. 공통키를 공개키 암호화 방식으로 교환한 다음에 다음부터의 통신은 공통키 암호를 사용하는 방식이다. 모든 사이트가 HTTPS로 하지 않는 이유는, 암호.. 2021. 4. 12.
Todo.gg 리팩토링 Object is possibly 'null' let authorization:string|undefined = req.headers["authorization"]; const accessToken=authorization.split(" ")[1]; authorization의 타입을 유니온( | )을 이용해서 string 또는 undefined 라고 지정했다. 그러면 밑에 authorization.split(" ")[1];이 부분에서 Object is possibly 'null' 에러가 뜬다. 위와같은 에러는 객체가 비어 있을 수도 있는데 해당 객체의 내부 메소드를 사용하거나 내부 객체 키에 값을 넣어주려고 할 때 발생한다. 해결방법 옵셔널체이닝 ( ? ) let authorization:string|undefined = req.hea.. 2021. 3. 25.
운영체제 운영체제 하드웨어를 관리하고, 응용 프로그램과 하드웨어 사이에서 인터페이스 역할을 하며 시스템의 동작과 자원을 제어하는 시스템 소프트웨어 프로세스 프로세스는 실행되는 프로그램 자체와 프로그램이 실행되는 주변 환경을 포함하는 개념이다. 디스크에서 메모리로 적재되어, CPU 자원의 할당을 받을 수 있음 실행되는 주변 환경이란 사용중인 파일, 데이터, 메모리 영역(스택, 힙, 데이터, 코드 영역) 주소 공간등을 뜻한다. 프로세스가 생성될 때, 기본적으로 하나의 스레드가 같이 생성된다. 각 프로세스는 별도의 주소공간을 할당받는다. Code : 코드 자체를 구성하는 메모리 영역 (프로그램 명령) Data : 전역변수, 정적변수, 배열 등 (초기화된 데이터) Heap : 동적 할당시 사용 (new(), malloc.. 2021. 3. 24.
클린코드 / 리팩토링 클린코드 가독성이 높은 코드 함수, 변수 네이밍이 잘 되어야 한다. 오류가 없어야 한다. 중복이 없어야 한다. 의존성을 최대한 줄여야 한다. 한 클래스 또는 메서드가 한가지 작업만 처리해야 한다. 리팩토링 프로그램의 외부 동작은 그대로 둔 채, 내부의 코드만 정리하면서 개선하는 것 코드의 가독성을 높이고, 유지보수에 도움이 된다. 리팩토링이 필요한 코드 중복된 코드 거대한 클래스 긴 메서드 Switch 문 절차지향으로 구현한 코드 차이점 리팩토링은 클린 코드의 가독성을 확보하면서 유지보수를 위한 코드 개선이 필요하므로 더 큰 의미를 갖는다. 클린코드 ∈ 리팩토링 클린 코드는 설계부터 잘 이루어진 것이 중요하다. 리팩토링은 결과물이 나온 이후 수정이나 추가작업시 개선해 나가는 것이 올바른 방향이다. 출처 .. 2021. 3. 24.
Node.js 에 대해서 (요약) Node.js란 Chrome V8 Javascript 엔진으로 빌드된 Javascript 런타임이다. 런타임 : 특정 언어로 만든 프로그램들을 실행할 수 있는 환경 이벤트 기반, 논 블로킹 I/O 모델이다. 이벤트 기반(event-driven) 이벤트가 발생할 때 미리 지정해 둔 작업을 수행하는 방식 ex) 이벤트 리스너에 콜백 함수를 등록한다. 이벤트 루프 - 이벤트 발생시 호출할 콜백 함수들을 관리하고, 호출된 콜백 함수의 실행순서를 결정하는 역할. 논 블로킹 I/O 노드의 libuv 라이브러리 JS 코드는 동시에 실행될 수 없으나 JS 상에서 돌아가는 것이 아닌 I/O(입출력) 작업은 동시에 처리될 수 있다. 논 블로킹이란 이전 작업이 완료될 때까지 대기하지 않고 다음 작업을 수행하는 것을 의미한다.. 2021. 3. 17.
반응형