분류 전체보기112 멀티 테넌시 란? 멀티테넌시(Multi-tenancy) tenancy의 뜻을 찾아보면, '(주택, 토지 등의)차용[임차/소작]'으로 소개되어 있다. 쉽게 말해 빌려 쓴다는 뜻이다. 멀티테넌시를 구글링해보면 단일테넌시와 구분지어 설명되어 있는 글을 쉽게 볼 수 있다. 단일 테넌시는 하나의 소프트웨어나 인스턴스가 하나의 사용자 혹은 사용자그룹을 위해 작동하는 아키텍처, 멀티테넌시는 하나의 소프트웨어나 인스턴스가 여러 사용자 혹은 사용자그룹을 위해 작동하는 아키텍처라고 한다. 쉽게 예를 들면, 웹메일 서비스로 생각해볼 수 있다. 웹메일 서비스는 멀티테넌시 구조로 동작하고 있다. 많은 사람들이 크게 하나의 웹메일 서비스(gmail, naver...)를 이용해 메일을 주고받고 있다. 하지만 여기서 중요한 것은 여러 사용자 및 사용.. 2022. 1. 22. [nestjs] How to return image from external API using NestJs? 정적 파일 제공 📑 [ 상황 ] nestjs 를 사용해서 API 서버를 개발하던 중 이미지 파일들을 정적으로 제공해주는 기능에서 삽질이 시작됐다. 이미지 파일 다운로드가 아니라 브라우저 상에서 이미지를 띄우는 기능이다. 1. 프로젝트 폴더 구조 files/images 하위의 파일을 제공하려고 한다. 2. 공식문서 방법 nest 공식문서에서 안내하는 정적파일 제공 방법이다. @nestjs/serve-static 라이브러를 설치하고, ServeStaticModule 설정을 통해 정적파일을 제공할 수 있다고 한다. npm install --save @nestjs/serve-static import { join } from 'path'; import { Module } from '@nestjs/common'; import { .. 2022. 1. 16. express.urlencoded 가 뭐지? 새로 들어가는 프로젝트의 API 서버 환경설정 중 `express.urlencoded` 옵션이 눈에 들어왔다. 초기에 한번 세팅해두고 무심하게 쓰던 옵션인데 확실히 알아보자. 1. express.urlencoded 란? `urlencoded payload` 와 함께 들어오는 request를 파싱한다. Content-Type 헤더가 `application/x-www-form-urlencoded` 옵션인 요청만 파싱한다. 일치하는 Content-Type 헤가 없거나 / 분석할 body가 없거나 / 파싱오류인 경우 빈 객체({})를 request object에 채운다. body의 UTF-8 인코딩만 허용하고 gszip, deflate 인코딩의 자동확장을 지원한다.(옵션으로 끌 수 있다.) 2. express... 2022. 1. 16. [error] Failed to parse source map from ... Error: ENOENT: no such file or directory [ 상황 ] react 애플리케이션을 start 하거나 build 하면 아래와 같이 Failed to parse source map from ... Error: ENOENT: no such file or directory extractParamsFromWeigthMap.ts 파일이 존재하지 않아 source map 파싱이 실패한다. [ 원인 ] 실제로 사용하고 있는 face-api.js 모듈은 extractParamsFromWeigthMap.ts 파일을 제공하지 않음을 확인할 수 있다. [ 해결-1 ] `source-map-loader` rule의 exclude에 해당 경로를 설정한다. module: { ... rules: [ { exclude: [ /\/node_modules\/face-api.*/, .. 2022. 1. 1. [error] Module not found: Error: Can't resolve 'fs' in '..../node_modules/~~~~~~~' [ 상황 ] webpack3로 잘 번들링해서 사용하고 있던 react 프로젝트. 새롭게 추가할 npm을 지원하지 않는 문제 + 더 빠른 빌드 속도를 위해서 webpack5로 버전을 올렸다. 업그레이드를 하자 프로젝트를 실행(yarn start)하거나 빌드(yarn build)할 때 다음과 같은 오류가 나타났다. Module not found: Error: Can't resolve 'fs' in '/home/adslk/bitbucket/pams_citest/pesadmin/node_modules/helpme-js/build/es6/env' node_moduels 모듈을 사용하기 위해 reoslve를 진행하는데 'fs'를 사용할 수 없다고 한다. [ 원인 ] fs는 node에서 제공하는 기본 모듈이므로 모듈.. 2022. 1. 1. wsl node version & nvm node version [ 상황 ] 리눅스 환경에서 개발이 필요하여 WSL을 사용하고 있다. Node 버전은 nvm을 사용해서 관리하고 있다. [ 문제 ] node version을 12.22.4를 사용하다 14.17.0으로 변경했다. nvm install 14.17.0 nvm use 14.17.0 node --version v14.17.0 노드버전을 변경했으나 쉘스크립트를 다시 열면 버전이 기존에 사용하던 12.22.4로 돌아간다. [ 원인 ] nvm 에서 사용하는 default 노드버전을 변경해줘야 한다. [ 해결 ] nvm default 버전을 변경해준다. nvm alias default 14.17.0 WSL을 재시작한다. [ 성공 ] 2022. 1. 1. [iOS] Error could not reparse object file in bitcode bundle: 'Invalid bitcode version [ 상황 ] React Native로 개발된 앱에서 expo-camera, expo-media-library 등 `Expo SDK`에서 제공하는 라이브러리를 사용하려면 `react-native-unimoduels`를 사용해야 한다.[참고] 그러나 Expo SDK 버전 43 이후로 `react-native-unimodules`가 아니라 `expo-modules`를 사용하도록 변경됐다.[참고] 서비스에 최신버전의 expo-camera 모듈이 필요했기에 `react-native-unimodules`에서 `expo-modules`로 변경했다. [ 오류 ] Xcode 에서 iOS 앱을 실행하는 경우 이상없이 잘 돌아가는데 빌드하면 could not reparse object file in bitcode bundl.. 2021. 12. 31. [react] 리액트 코딩 컨벤션 [번역] React Coding Standards And Practices To Level Up Your Code 리액트 코딩 컨벤션 진또배기 소프트웨어 회사의 증거는 일관성 있는 코딩 스타일입니다. 팀 전체가 같은 방식으로 코드를 검토하고 있나요? 이 코드 리뷰 체크리스트는 완벽하지 않지만, 관심을 가질 만한 것의 90%를 다룰 것입니다. 팀의 코딩 표준을 높이려면 PR을 승인하기 전에 이 목록을 통과해야 합니다. 👍 ✓ 👌 Naming Conventions Component 파일명은 pascal case 쓰세요. Header.js HeroBanner.js CookieBanner.js BlogListing.js Non-component 파일명은 camel case 쓰세요. myUtilityFile.js.. 2021. 12. 30. [docker] ERROR [internal] load metadata for docker.io/library/node:14.17.0-alpine [ 에러 ] 😡 항상 잘 써오던 Dockerfile로 빌드 명령어를 실행하자 아래와 같은 메시지와 함께 실패한다. 실행환경은 Windows의 WSL2 이다. ERROR [internal] load metadata for docker.io/library/node:14.17.0-alpine failed to solve with {컨테이너 이름} dockerfile.v0: failed to create LLB definition: rpc error: code = Unknown desc = error getting credentials - err: exit status 1, out: `` $ docker build --tag superpower/pes-server-dev --file Dockerfile.dev .. 2021. 12. 28. [docker] 명령어 cheatsheet # docker build docker build ./ docker build --tag superpower/hello:latest ./ docker build --file Dockerfile.dev # docker run docker create {이미지 ID} docker start {컨테이너 ID} docker run {이미지 ID} [명령어] docker run = docker create + docker start # docker kill docker stop {컨테이너 ID} docker kill {컨테이너 ID} # docker rm / docker rmi docker rm {컨테이너 ID} docker rmi {이미지 ID} docker system prune # docker ps dock.. 2021. 12. 26. 이전 1 ··· 4 5 6 7 8 9 10 ··· 12 다음