어쩌다 블로그

전체 글 68

Promise.allSettled is not a function

Promise.allSettled를 이용해서 안전하게 Promise함수의 병렬 처리를 해보려고 헀었는데 노드 버전을 14로 낮추기만 해도 안되는 이슈가 있었다. nvm에서 아무래도 노드 16을 삭제 해야할 듯 하다.. :( 찾아보니 Promise.allSettled 는 Node버전 14.9 이상 부터 사용이 가능하다고 한다. https://stackoverflow.com/questions/57576249/execute-batch-of-promise-with-promise-allsettled Execute batch of promise with Promise.allSettled() With node v10.15.1 I try to use Promise.allSettled() to executes batch..

Review/디버깅 2021.10.29

Sequelize 사용하기

시퀄라이즈 사용법 꿀팁 대공개 대방출 (?) 계속 긁어모으고 사용법 찾아내고 있는데 길 잃은 분들 검색어에 걸릴 수 있길 빌며... Sequelize Node에서 데이터베이스를 ORM형식으로 쉽게 다룰 수 있으려면 Sequelize란 ORM이 유명하고 이걸 이용하면 좋다. 시퀄라이즈는 기본적으로 커넥션객체를 재사용한다. 개발자가 신경쓰지 않아도 커넥션 풀을 잘 관리해준다. 클로즈시에는 sequelize.close()를 이용한다. (비동기, 프로미스 함수를 리턴한다.) 시퀄라이즈를 배우기 쉽게 해주려고 GitHub - papb/sequelize-sscce: Base repository for creating and sharing Sequelize SSCCEs 이런 깃헙 레파지토리를 제공한다. 공부할거면 이..

Back-end/Node.js 2021.10.18

multipart/form-data를 처리하는 패키지 비교

파일 업로드를 구현 중 다양한 multipart/form-data 형태를 처리하는 다양한 노드 패키지가 있음을 알게 되었고 각각의 구현된 목적과 특징을 알아보기 위해 이런 저런 서칭을 해보았다. 그러다가 한 글을 발견하여 내용을 정리해보았다. https://bytearcher.com/articles/formidable-vs-busboy-vs-multer-vs-multiparty/ Choose between Formidable, Busboy, Multer and Multiparty for processing file uploads NAVIGATION Breakdown of most popular packages Use Formidable or Multer for proof of concepts and lo..

Back-end/Node.js 2021.10.07

[Centos 7] Docker에서 Centos 설치 후 사용하며 겪었던 에러들 정리

Centos 나 ubuntu로 이것 저것 해보려 Docker 이미지를 다운로드 받아서 써보고 있는데 자꾸 망해서 날리고 새로 설치하고 이러고 있네..ㅎㅎ Docker에 Centos 설치하면 이런 저런 권한 문제가 있다. 다른 계정으로 쉘을 열고 사용하고 있었는데 파일을 생성하려니 권한이 없다. 매번 파일에 권한을 주며 사용하는 것보다 아예 계정에 모든 권한을 주고 시작하는 것이 편함. (.. 물론 난 이거 연습용으로 써보는거라 이렇게 했고 이런 문제는 각자의 필요에 맞추는게..) 구글링을 해보니 일단 sudo vi /etc/sudoers로 해당 파일을 수정하라고 했는데 sudo 명령어 자체가 안먹....😱 sudo를 사용할 수 있도록 sudo 패키지를 설치 후 권한 파일을 수정해보았다. 1. Sudo :..

Review/디버깅 2021.09.26

[Unix] 쉘 사용하기

이건 깃헙의 TIL에도 올렸지만 한 번 더 블로그에 정리하고자... 쉘 개요 쉘 사용법을 전반적으로 요약, 아직 생략된 부분이 있다. 차차 업로드 할 것 쉘은 명령어 해석기 이면서 스크립트 언어 어떤 리눅스 배포판을 사용하든지 기본 셸로는 Bash셸이 제공된다. 명령행 : 명령을 입력할 수 있는 라인 터미널 띄우면 명령 프롬프트가 표시된다. 기본 프롬프트는 $, 루트 사용자는 #이다. 셸 선택하기 기본 셸 변경 : chsh -s 쉘의 이름 터미널 창은 대화형 셸, 종료시엔 exit 혹은 ctrl + d 셸 프롬프트에서 셸 실행시 서브셸 실행된다. (sh) 서브셸의 실행시 자식 프로세스로 실행된다. chsh시 사용자가 생략되면 사용자 본인을 대상으로함. 다른 사용자의 셸을 바꾸려면 권한이 있어야 한다. c..

Infrastructure/Unix 2021.09.22

WSL 포트포워딩으로 가상의 IP 매핑하여 고정적 IP 할당하기

회사에서 개발시에는 WSL로 우분투 환경에서 작업을 하는 상황 이번에 백엔드 개발을 하면서 프론트엔드 개발자님께 서버를 하나 열어 드려야 했는데 나의 컴퓨터 아이피로 열어둔 서버로 접근이 될 줄 알았는데 안되더라 다른 개발자는 우분투 환경에서 서버 열어도 해당 pc IP로 접속 된다던데.. 안되길래 찾아보니 wsl버전이 다르더라 WSL1 같은 경우엔 윈도우에서 리눅스 쉘을 열어주지만 WSL2는 가상환경 (Hyper-V) 위에서 리눅스 쉘을 실행하며 그 쪽에서 172~로 시작하는 가상 아이피를 할당하게 된다고 한다. 실제로 Ipconfig로 확인하면 WSL 아이피는 따로 돌아가게 된다. https://github.com/microsoft/WSL/issues/4150#issuecomment-504209723..

Review/디버깅 2021.09.06

인코딩의 종류 / ASCII, Hex, URL, Base64

지금까지 개발 병아리로서 이런 저런 인코딩을 간접적으로 보고 접해왔는데 여러가지 인코딩이 어떤 이유에서 생긴건지 형태에 따라 무슨 차이가 있는지 궁금해 찾아보게 되었다. 출처 : https://ko.wikipedia.org/wiki/%EB%AC%B8%EC%9E%90_%EC%9D%B8%EC%BD%94%EB%94%A9 인코딩이란 ? 사용자가 입력한 문자나 기호들을 컴퓨터가 이용할 수 있는 신호로 만드는 것을 의미 이를 디코딩 하기 위해선 (해독하는 것을 의미) 미리 정해진 기준을 바탕으로 해독해야하는데 이를 문자열 세트 또는 문자셋이라고 한다. 인코딩의 종류에는 ASCII, URL, HTML, Base64등이 있음 (실제론 더 많다.) 1. ASCII 최초의 문자코드, 라틴 문자, 숫자, 몇몇 특수문자를 1..

교양지식 2021.09.05

Web Component

코드를 최대한 캡슐화하여 재사용 가능한 커스텀 엘리먼트를 만들게 해주는 기술들의 모음 개념 : 재사용을 원하는 어느 곳이든, 코드 충돌에 대한 걱정이 없는 캡슐화 된 기능을 갖춘 다용도의 커스텀 엘리먼트를 생성하기 위해 사용됨 커스텀 엘리먼트란 ? 커스텀 엘리먼트와 그 동작을 정의할 수 있도록 해주는 Javascript API의 집합. 세 가지 주요 기술로 구성된다 Custom Element : Custom element에 대한 정의는 DOM element의 새로운 타입을 사용하고 디자인하기 위한 토대를 마련한다. browser API 중에 customElements.define("HTML name", 정의될이름) 등을 사용하여 돔에 해당 엘리먼트를 붙이고 커스텀 할 수 있도록 해준다. 내부에는 라이프 ..

Node에서의 Module

모듈 ? 특정한 기능을 하는 함수나 변수들의 집합. 노드는 코드를 모듈로 만들 수 있다는 점에서 브라우저의 자바스크립트와 다르다. 그자체로 프로그램이자, 프로그램의 부품. variables.js const odd = '홀수'; const even = '짝수'; module.exports= { odd, even }; // module 생략 가능하다. 외부에서 변수 사용 가능 해당 모듈의 odd, even을 import (require) import {odd, even} from "./variables.js"; console.log(odd); -> '홀수' exports module.exports. = () => {} // -> imports imports import 모듈이름 from "모듈경로"; 노드 ..

Back-end/Node.js 2021.08.09

2021 하반기 계획

기간을 정해놓지 않은 계획들 독서 : 이펙티브 자바, 클린코드, 자바 개념서 구매해서 정리하기 ( 추가로 java 개념서를 한 권 or 두 권 구매하려 하는데 맘에 쏙 드는 것을 아직 찾지 못했다.) 운동 : 덤벨운동 주 3회 습관 : 아침에 1시간 개인 시간 가지기 / 바빠도 주위 사람 한 번 생각, 연락하려고 노력하기 / 영양제 (홍삼) 먹기 / 매일 일기 쓰기 / 주말에도 공부하기 / 해야 할 과제 미루지 않고 바로바로 하기. 블로깅 : 개인 블로그에는 일기, 티스토리 블로그에도 꾸준히 블로깅 주 3회 (독서, 공부-비공 게시물로라도 꾸준히 업로드, 요리 (?!)..) 생활 : 화분키우기 - 선인장, 이끼, 몬스테라 (조금씩 구매하기), SNS 안 하거나 스크린 타임 시간만큼만 사실 목표로 한 것들..

일상 2021.08.07