트랜잭션 격리 수준
CS2023. 3. 7. 14:00트랜잭션 격리 수준

데이터베이스 트랜잭션 격리 수준데이터베이스 트랜잭션의 격리 수준은 격리성(각각의 트랜잭션은 서로 간섭없이 독립적으로 수행되어야한다는 규칙)의 견고함 정도를 말합니다.트랜잭션 격리 수준트랜잭션의 격리 수준은 총 네 단계로 나뉩니다.READ UNCOMMITEDREAD COMMITEDREPEATABLE READSERIALIZABLEREAD-UNCOMMITED가 가장 성능이 낮은 대신 가볍고, SERIALIZABLE이 가장 성능이 높으며 무겁습니다.때문에 프로덕트 케이스에 맞는 트랜잭션 격리 수준을 선택하면 되겠습니다. 성능이 좋고 나쁘고는 어떻게 판단하나요?성능을 판별하는 기준은 격리성을 얼마나 잘 유지하느냐입니다.위에서 설명한 네가지 격리 수준에서는 아래와 같은 이슈가 발생합니다.DIRTY READNON-R..

[PostgreSQL] 데이터베이스 트랜잭션이란?
CS2023. 3. 6. 19:54[PostgreSQL] 데이터베이스 트랜잭션이란?

트랜잭션(Transaction) postgresql을 기준으로 작성되어있습니다. 트랜잭션: 데이터베이스 관리 시스템에서의 최소 상호작용의 단위 개요 데이터베이스 트랜잭션은 데이터베이스에서 수행되는 일련의 작업이며 모두 단일한 논리적 작업 단위입니다. 즉, 특정 트랜잭션을 일부만 수행하거나 결과를 저장하는 경우는 절대 존재할 수 없습니다. 결과는 무조건 성공 / 실패만 존재합니다. 트랜잭션은 여러개의 DML으로 이루어질 수 있습니다. DML(Data Manipulation Language)이란 데이터 조작 언어라는 뜻으로 CRUD의 행동을 제어합니다. SELECT (READ) INSERT (CREATE) UPDATE (UPDATE) DELETE (DELETE) 트랜잭션을 쪼개면 여러 DML이 존재할 수 있..

[Jest] it vs test
Node.js2023. 3. 4. 16:00[Jest] it vs test

jest로 테스트코드를 작성하던 도중, it()와 test()의 차이가 궁금해졌다. 결론부터 말하자면, it()와 test()는 같은 함수다. 둘다 jest.It.()를 가르키고 있다. 기능 적으로는 차이가 없으니, 문서를 읽을 때 이를 참고하자. 개인 취향에 따라 사용하면 되고, 가독성을 생각하며 사용하자.

OAuth 로그인을 하는데 새로운 계정이 생성되면 안된다.
트러블 슈팅2023. 2. 23. 14:32OAuth 로그인을 하는데 새로운 계정이 생성되면 안된다.

OAuth 로그인을 하는데 새로운 계정이 생성되면 안된다. 서론 애플리케이션 프로젝트 기획 회의에서 회원의 로그인 방식에 대해 이야기했다. 우리 애플리케이션은 회원간의 팀 활동을 통해 함께 성장할 수 있는 커뮤니티 애플리케이션이다. 로그인 방식을 개발하며 기획 개선사항이 있어 이를 기획 팀에 건의했다. 우선, 현재 기획에서의 로그인 방식은 이렇다. OAuth2 인증을 통해 카카오,네이버, 구글, 애플 로그인 등을 제공하기로 하였다. 여기서 백엔드 개발자가 설계할 수 있는 방향은 크게 2가지다. 새로운 OAuth 로그인 시, 새로운 계정으로 회원가입되도록 설계 새로운 OAuth 로그인 시, 이전에 가입한 계정으로 로그인되도록 설계 2번 방식이 애플리케이션 기획과 UX를 해치지 않을 것이라고 생각하여, 2번..

우리는 왜 JWT를 사용하는가? / JWT 사용 이유
CS2023. 2. 20. 17:49우리는 왜 JWT를 사용하는가? / JWT 사용 이유

서론CS 스터디를 준비하다가 웹 보안에 대한 주제로 스터디를 진행하기로 하였다. 그 중 JWT에 대한 내용을 조사하다가 고민해본 점을 정리한다. What is JWTJSON Web Token의 준말입니다. 자바스크립트의 Object(Key Value) 자료구조를 가지고 있으며, Web Token으로써 사용할 수 있다는 의미다. JWT 사용 이유HTTP는 기본적으로 state-less를 지향합니다. state-less(무상태)란? 서버-클라이언트 구조에서 서버가 클라이언트의 상태를 가지고 있지 않는 것.장점1: 서버의 확장성이 높으며 대량의 트래픽이 발생해도 대처할 수 있음.장점2: (서버가 분리되어 있는 경우) 특정 DB/서버에 의존하지 않아도 인증할 수 있음.단점1: state-ful(세션) 방식보다 ..

[ 개발바닥 2사로 ] 면접 스터디를 시작하며..
CS2023. 2. 15. 16:00[ 개발바닥 2사로 ] 면접 스터디를 시작하며..

개발바닥 2사로에서 진행되는 CS 면접 스터디에 참가하게 되었습니다. 스터디 목적 리마인드 목적은 인턴 준비 면접 준비 두괄식으로 말하기 면접관이 질문했던 내용을 다시 말하며 답변 시작하기. (면접관 질문 리마인드 + 생각할 시간 창출..) 면접관의 의도가 이해가 되지 않는다면 의도에 관해 재질문하기. 애매한 용어는 사용하지 않기. CS 지식 습득 네트워크, DB, 운영체제, SQL 등 프레임워크 지식 습득? 이번에 참여한 스터디원 중 저를 제외한 모두가 JVM 개발자라 프레임워크보단 CS부분을 많이 얻어가려고합니다. 나만의 스터디 룰 본인이 맡은 부분에 대해서는, 이 부분 외에는 더이상 공부할 것이 없을 정도로 준비해 오기. 블로그에 작성할 수 있는 정도로 조사하기. 각 키워드별 예상 질문 뽑아오기. ..

[템플릿] 노션으로 API 명세서 작성하기
Notion2023. 2. 7. 23:12[템플릿] 노션으로 API 명세서 작성하기

토이프로젝트에서 API 명세서를 작성을 담당하게 되었는데, 꽤나 반응이 좋아 블로그로 공유합니다. 출처 없이 막 공유하셔도 상관없습니다. URL: https://www.notion.so/puleugo/API-060ef34cec6c45e982c2c773600602b6 옵션 ··· → 그룹화 → 그룹화 기준 → API 분류 / 태그 를 선택하여 그룹화 조건을 변경할 수 있습니다. 개선 아이디어 말씀해주시는거 환영입니다. 추가했을 때 "오히려 별로다." 하는거 아니면 웬만해서 해드려요.

[Node.js] 싱글 스레드 언어가 어떻게 비동기 처리가 가능한가?, Node.js 동작 원리
트러블 슈팅2023. 1. 26. 16:34[Node.js] 싱글 스레드 언어가 어떻게 비동기 처리가 가능한가?, Node.js 동작 원리

await/ async에 대한 문법 소개 글을 작성하다가 기초가 부족해서 이 질문까지 왔다. await / async 설명 작성 중.. → “아.. 이걸 설명하려니까 Promise를 배워야겠다.” → “어 Promise를 보면 비동기 처리가 가능하다고 하는데 자바스크립트는 싱글스레드가 아닌가?“ → “Node.js는 다른가? Node.js는 JS의 단순 런타임이 아닌가?” JS가 싱글 스레드인데 어떻게 비동기 처리가 가능한지 학생 분들이 계신 방에 질문해봤다. → 저학년들이 많고, Node 진형 개발자분들이 적어 스레드 풀 얘기까지는 나왔지만, 제대로 된 답이 나오지 않았다. 현직자 분들이 많은 개발바닥 채팅방에 질문해봤다. → Node.js에 포함된 libuv라는 라이브러리가 비동기 처리를 책임져준다...

[NestJS] Forever를 사용하여 영구적인 실행을 해봅시다.
Node.js2023. 1. 18. 16:00[NestJS] Forever를 사용하여 영구적인 실행을 해봅시다.

백그라운드 실행은 nohup과 forever이 있지만, nohup은 자동으로 꺼지는 에러를 발견하고 forever을 사용해보려고합니다. Forever은 개발자가 업데이트를 포기한 상황입니다. 새로 개발 하시는 경우에는 Docker, nodemon, pm2를 추천드립니다. 구동환경 Ubuntu 22.04.1 LTS Nest.js 9 Forever 설치 yarn: yarn global add forever npm: npm install -g forever Forever 실행 forever start --minUpdate 1000 --spinSleepTime 1000 -c "yarn start" ./ main.js를 실행했을 때는 DI 쪽으로 에러가 나서 직접 yarn start를 호출하는 방식을 이용했습니다..

온라인으로 개발 공부하기
생각 정리2023. 1. 18. 09:10온라인으로 개발 공부하기

참고자료: https://www.youtube.com/watch?v=d3PYoBwow9I 위 영상을 보고 복기 및 재정리 용도로 적은 글입니다. 영상으로 보셔도 충분합니다. 영상에서는 3가지의 온라인 공부팁을 공유합니다. 공식문서를 읽으세요. 기술에 대한 지식 습득용이 아닌 스택 오버 플로우, GPT한테 얻은 코드 복붙은 거의 성장이 안될거에요. 커뮤니티의 글을 복사-붙여넣기만 반복한다면 코파일럿 미만의 결과물을 얻을 것이고, 개발자 본인의 성장도 더뎌질 것 입니다. 공식문서는 모든 시니어 개발자가 말하는 옳은 공부 방법입니다. 현직자도 꾸준히 읽고 있으며, 본인이 사용하는 기술에 대한 공부를 하는 데에는 개발문서만한 자료가 없습니다. 공식 문서가 도움되는 방식: 초보자: 기본 쌓기 주니어: 지식 강화 ..

[NestJS 에러] node @nestjs/schematics:module --name=auth --no-dry-run --no-skip-import --language="ts" --source-root="src" --spec --no-flat
Node.js2023. 1. 17. 17:52[NestJS 에러] node @nestjs/schematics:module --name=auth --no-dry-run --no-skip-import --language="ts" --source-root="src" --spec --no-flat

$ nest g mo auth Error: Cannot read properties of undefined (reading 'properties') Failed to execute command: node @nestjs/schematics:module --name=auth --no-dry-run --no-skip-import --language="ts" --source-root="src" --spec --no-flat 에러 해결 방법은 2가지가 있는듯하다. @nestjs/schematics 재설치 yarn이라면: yarn global add @nestjs/schematics npm이라면: npm i -g @nestjs/schematics 다만 이 방법으로 해결되지 않았고, 다른 방법을 찾았다. typsc..

[NestJS] AdminJS를 이용한 크롤러 관리 패널 제작기
트러블 슈팅2023. 1. 14. 16:00[NestJS] AdminJS를 이용한 크롤러 관리 패널 제작기

서론 온라인 인기글, 핫한 주제등을 한 눈에 보여줌으로 통하여 영감을 제공하는 사이트를 개발하고 있다. 다시 말해서 종합 크롤러 사이트인데, 우리 서비스에서 사용하는 크롤러들을 관리할 수 있는 페이지를 개발하였다. 여기서 사용한 라이브러리가 AdminJS이다. Nest.js에서 사용할 수 있는 Admin 라이브러리는 3가지다. Admin Bro (Beta) AdminJS NestJs Admin 선택 및 비선택 사유 Admin Bro: Admin Bro는 Beta 버전이라고 적혀있어서 패스했다. 다만, 개발을 진행해보면서 많은 깃헙 레퍼지토리를 확인해보니 Admin Bro를 이용하여 개발한 프로젝트도 꽤나 있었고, 개발 커뮤니티에서 질문글도 많았으며, 무엇보다 AdminJS와 같은 사에서 만들어서 거의 유..

[puppeteer] 크롤러 성능향상, 이미지 수신 차단
트러블 슈팅2023. 1. 2. 16:55[puppeteer] 크롤러 성능향상, 이미지 수신 차단

서론 NESTJS에서 커뮤니티 크롤러를 만들던 중 용량이 큰 자료가 많은 스압(스크롤 압박) 글들 때문에 크롤러가 Timeout Error가 뜨는 일이 발생했다. 생각해보니, 불필요한 이미지는 수신할 필요가 없었다. JS 크롤러 라이브러리인 puppeteer을 이용해서 효율적으로 크롤링을 진행해보려고 한다. 사용 스택 Nest.JS 9 // 무관 es2017 puppeteer 19.4.1 (준비하기..) 혹시 설치도 안되어있다면 설치하자.. yarn add puppeteer 공식 문서 설치 관련 페이지 시작하기 import * as puppeteer from 'puppeteer'; const browser = await puppeteer.launch({ headless: false }); const pa..

Reddit API로 게시글 가져오기
Node.js2022. 12. 11. 18:33Reddit API로 게시글 가져오기

정보 Reddit은 공식 REST API, Python 모듈인 PRAW 를 지원합니다. 본 글은 Reddit API를 통한 OAuth 및 게시글 가져오기를 진행하며, 해당 내용을 공부하면서 겪었던 시행착오를 공유합니다. 이번 강의 플로우 레딧 개발자 계정을 생성하고, 앱을 등록합니다. 등록한 앱의 정보와 Reddit 계정을 통해 엑세스 토큰을 얻습니다. 얻은 엑세스 토큰으로 게시글을 얻어옵니다. 어떤 언어에서든 따라할 수 있도록, Postman에서 진행합니다. 1. 레딧 개발자 계정 생성 레딧 계정이 없다면, 회원가입 해줍니다. 구글이나 애플을 통한 OAuth 로그인이 아닌, 이메일을 통한 일반 회원가입으로 진행해주세요. 레딧 개발자 앱 등록을 진행합니다. 아래 사이트에 접속해 로그인해주세요. 레딧 개발..

[2022년 회고록] 대학입학부터 SW마에스트로 수료까지..
회고록2022. 12. 4. 19:14[2022년 회고록] 대학입학부터 SW마에스트로 수료까지..

이번년도 있었던 일 SW마에스트로 13기 수료 메가콘(대학교 동아리 기술 컨퍼런스 발표) 참여 2021년 작년 말 기계공학과 마이스터 고등학교에 다니다 취업을 포기하고 컴공으로 진로를 바꾸게 되었어요. 2021년도 초에 코딩을 시작해서 파이썬을 조금 만져보고 컴퓨터 공학에 매력을 느껴서 이 진로를 선택했습니다. 컴공을 진학하는걸 선택했을 때는 수능일이 지나고 수시 마감 1주일 전이었어요. 대학을 갈지 말지 고민하다가 현직 개발자분들한테 메일을 보내보았어요. 다들 일단 대학을 가는것 을 추천하고 대학이 마음에 안들면 중간에 나갈 수도 있으니 수시로 대학에 지원해서 합격하게 됐어요. 그리고 개발 오픈채팅방에서 SW마에스트로를 추천해서 지원해봤어요. 2022년 대학 입학 후 대학을 합격하고 제 목표는 SW마에..

[NestJS] 쿠키와 세션이란?
Node.js2022. 11. 19. 16:00[NestJS] 쿠키와 세션이란?

쿠키와 세션을 함께 설명하는 이유: 이 둘의 특징이 비슷하며 차이점이 명확하기 때문에 비교하면서 배우면 습득하기 편함. 먼저, 개요부터 봅시다. 개요 쿠키란? 쿠키는 브라우저에 휘발성 데이터를 저장하는 방식 세션이란? 세션은 서버에 휘발성 데이터를 저장하는 방식 이 둘은 자주 사용되는 데이터를 빨리 꺼내사용해야 하는 경우 사용됩니다. 세션, 쿠키로 사용하는 이유는 뭘까요? HTTP의 특징 때문입니다. Connectionless(비 연결지향): HTTP의 기본적으로 요청&응답만 하고 끊어버립니다. Stateless(상태정보유지안함): HTTP는 상태정보 저장 안함. 그래서 세션 혹은 쿠키로 데이터를 저장합니다. 쿠키와 세션의 차이 쿠키 세션 저장 위치 브라우저(로컬) 서버 보안성 낮음 높음 수명 반영구 브..

[NestJS] TypeORM 논리 삭제(soft delete)와 물리 삭제(hard delete)
Node.js2022. 11. 9. 16:00[NestJS] TypeORM 논리 삭제(soft delete)와 물리 삭제(hard delete)

백엔드에서 삭제를 하는 방식은 두가지가 있습니다. 논리 삭제: 저장된 데이터를 사용하지 않아서 논리적으로만 삭제하는 방법 물리 삭제: 저장된 데이터를 실제로 삭제해버리는 방법 그렇다면 왜 논리 삭제를 사용할까요? 이유는 다양합니다. AI 학습 데이터로 사용하기 위함. 주고받은 채팅일 시, 법적인 문제가 생겼을 때 증거로 사용해야 하기 위함. 관계(릴레이션)가 맺어져 있을 때 문제가 생김. 물리 삭제는 위험하며 귀찮은 방식이기 때문에 대부분의 서비스에서 논리 삭제를 이용합니다. 여기까지가 이론이고 이제 코드로 봅시다. TypeORM이 논리 삭제와 물리 삭제를 확인해봅시다. 논리 삭제(soft delete) @Entity('users') export class User { @PrimaryGeneratedCo..

[NestJS] 에서 puppeteer 사용하기
Node.js2022. 10. 22. 16:00[NestJS] 에서 puppeteer 사용하기

[추천글] 크롤러 성능향상, 이미지 수신 차단 대학교 애플리케이션에 정보시스템의 정보를 크롤링하는 기능을 구현했다. 크롤러는 다른분한테 들은 Node.js 크롤러인 puppeteer을 이용했다. yarn add puppeteer yarn add @types/puppeteer 이 둘을 설치한 후 service에만 puppeteer을 임포트해서 사용할 수 있다. 사용법 https://github.com/puppeteer/puppeteer GitHub - puppeteer/puppeteer: Headless Chrome Node.js API Headless Chrome Node.js API. Contribute to puppeteer/puppeteer development by creating an accou..

[NestJS] Swagger 바디 타입 여러개 명시하기
Node.js2022. 10. 17. 16:00[NestJS] Swagger 바디 타입 여러개 명시하기

헬스 기구 처리 로직 소개 바디로 여러개의 타입 중 하나를 선택해서 입력하는 로직을 구현하고 있었다. 우선, 운동 레퍼지토리는 이렇게 생겼다. 무산소, 유산소 타입의 합집합이다. 이걸 저장하는 방식은 2가지가 있다. 1개의 저장 컨트롤러에 2가지 타입의 DTO를 받는 것. 2개의 저장 컨트롤러를 만들어서 DTO와 1:1로 연결하여 저장하는 것 저는 관리 측면이 편하기 때문에 1번 방식을 이용하기로 했습니다. 여기서 발생한 문제는 스웨거에 어떻게 넣을 것인가.. enum으로 넣으면 터집니다. 하나만 넣으면 문서화 작업의 의미가 사라집니다. 2개의 클래스를 타입으로 사용하면 에러가 납니다. 그래서 어떻게 구현했는데? 구현 방법이 있었습니다. @POST('저장 경로') @ApiOperation({ summar..

Node.js2022. 10. 7. 16:00[NestJS] e2e테스트 Jest 테스트 시 DB 초기화하는 법

e2e 테스트는 매번 데이터베이스를 초기화해줄 필요가 있습니다. 다만.. 저는 Jest를 쓰는데 따로 초기화 해주는 함수가 없었습니다. (있으면 알려주세요!) 그런 이유로 방법 계속 찾아봤는데 따로 메소드를 제공해주지 않아서 팁 정도를 찾아서 이를 공유하고자 합니다. import { Test, TestingModule } from '@nestjs/testing'; import { TypeOrmModule } from '@nestjs/typeorm'; import { Connection } from 'typeorm'; import ormConfig from './orm-config'; import { AppController } from '@app/app.controller'; import { UserMo..

NestJS + Flutter 카카오 OAuth 로그인 구현하기
Node.js2022. 9. 24. 18:06NestJS + Flutter 카카오 OAuth 로그인 구현하기

서론 이 글은 2024.02.03일에 업데이트 되었습니다. 클라이언트에서 토큰을 발급받고 발급받은 토큰을 서버로 보내는 방식으로 구현하였었는데 더 효율적이고 안전한 방식으로 개선하였습니다. 본 글보다 우선적으로 읽어야하는 글 https://developers.kakao.com/docs/latest/ko/kakaologin/flutter | 카카오 플러터 문서 https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api | 카카오 로그인 REST API 문서 개요 간단한 흐름 Kakao Developer에 애플리케이션 등록 및 환경설정(Flutter에서 사용할 API 키, Nest.js 서버 주소 등록) Flutter SDK를 이용하여 카카오톡에 OAu..

iterm2 자동 완성 플러그인 적용하기(zsh-autosuggestions)
How to.2022. 9. 20. 21:15iterm2 자동 완성 플러그인 적용하기(zsh-autosuggestions)

설정 방법:https://github.com/zsh-users/zsh-autosuggestions/blob/master/INSTALL.md item2에 아래 코드를 실행해 플러그인을 설치합니다. git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions vi ~/.zshrc plugins를 입력하여 .zshrc 파일을 수정할 수 있는 vi 환경으로 이동합니다. plugins에 zsh-autosuggestions를 아래와 같이 추가합니다. 이후 읽기모드에서 :wq를 입력하여 나오시면됩니다. iterm2를 껐다 켜보면 잘 실행됩니다!

생각 정리2022. 9. 7. 16:00개발 블로그를 잘 이용하는 방법

내가 개발 블로그를 운영하면서 깨달을 부분을 정리해보았다. 목차 카테고리명을 구체적으로 작성하라. 비슷한 요소끼리는 묶어라 카테고리의 깊이를 최소화하라. 카테고리명을 구체적으로 작성하라. 카테고리는 해당 개발자가 어떤 것을 공부했는지를 한눈에 볼 수 있는 항목이다. 애매모호한 명명 규칙을 따른다면, 이 사람이 어떤 기술 스택을 가지고 있고, 어떤것을 공부하는지를 알 수 없다. 또한 블로그에서 코딩 꿀팁 같은 내용으로 검색을 하지 않는다. 때문에 기술명 같은 구체적인 네이밍을 권장한다. 명명 규칙 BAD NAMING GOOD NAMING - 코딩 꿀팁 - 오류 고치기 - AWS, Sping 등 (기술 이름) - 자기개발 - 독서 - etc(기타) 등등 좋은 예시를 몇개 들고왔다. 개발 블로그 카테고리 네이..

Git Flow란, 깃 브랜치 전략
CS2022. 9. 6. 17:55Git Flow란, 깃 브랜치 전략

Flow란?직역하여 흐름이라는 의미입니다. git+flow는 'git에서 제공하는 브랜칭 기능을 활용한 변경 이력 관리 전략'입니다.이 외에도 다음과 같은 전략이 있으므로 적용하고자 하는 팀 사이즈에 따라 아래 전략들도 고려해주세요.github flow: git flow보다 훨씬 단순한 전략gitlab flow: git보다는 단순하고 github flow보다는 복잡한 전략  Git Flow란?브랜치를 나누는 방법에 대한 분류 중 하나입니다. Git Flow에서의 특징은 브랜치를 5종류로 나뉩니다.main(master): 서비스을 직접 배포하는 역할을 하는 브랜치입니다.feature(기능): 각 기능 별 개발 브랜치입니다.develop(개발): feature에서 개발된 내용을 가지고 있는 브랜치입니다.re..

Notion2022. 9. 5. 17:46[Notion] 노션 개발자 단축키 마크다운

노션 단축키 중 알아두면 생산성이 떡상하는 단축키만 모았습니다. 필요없다고 판단되는 단축키는 제외했습니다. https://www.notion.so/ko-kr/help/keyboard-shortcuts 단축키 cmd/ctrl + N : 새 페이지 생성 cmd/ctrl + P : 최근 연 페이지들 띄우기 cmd/ctrl + E : 코드 표시로 변경 cmd/ctrl + [ / ] : 이전, 다음 페이지로 이동 cmd/ctrl + shift + L : 다크모드 전환 :[이모티콘 이름] : 이모티콘 불러오기 ex) :apple, :사과 cmd/ctrl + I : 이텔릭체(기울임꼴)로 변경 cmd/ctrl + B : 볼드체(굵게)로 변경 cmd/ctrl + U : 언더스코어(밑줄)로 변경 Tab / shift + ..

How to.2022. 8. 26. 14:47Mac 맥, permission denied 에러

김영한님 JPA 실전 강의를 보다가 터미널로 h2 DB를 실행시키려는데 permission denied에러가 나왔다. 이에 대한 해결 방법을 공유하려고 한다. chmod 755 [파일이 있는 경로] 예시)chmod 755 ./h2.sh change mode의 준말이다. 유닉스 계통의 명령어이다. 755의 의미는 각 자리수마다, rwx의 의미를 가지고 있다. read, write, excute라는 뜻이다. 755에 대한 의미는 아래에서 보겠습니다. 이렇게 하면 실행된다. 파일 권한 755에 대한 이해 파일 소유자 권한 그룹 사용자 권한 기타 사용자 권한 r w x r w x r w x 2^2 2^1 2^0 2^2 2^1 2^0 2^2 2^1 2^0 755면, 4 + 2 + 1 = 7 4 + - + 1 = ..

[NestJS] EntityMetadataNotFound Error: No metadata for * was found.
Node.js2022. 8. 12. 13:12[NestJS] EntityMetadataNotFound Error: No metadata for * was found.

엔티티를 찾지 못할 때, 발생하는 버그입니다. 저는 테스트코드 작성 중 경로를 잘못 지정했습니다. 엔티티 파일을 찾지 못했을 때 발생합니다. 위가 저한테 발생한 오류이고, 경로는 다음과 같이 설정해주었습니다. 파일 경로는 아래와 같았구요. ┖src ┠app ┖domain ┖equipment ┖entities ┖equipment.entity.ts 해결 방법 위와 같이 사용할 엔티티를 import 해주니 해결되었습니다. +추가 Entity 파일에 @Entity 데코레이터를 적용하지 않았을 때도 발생하니 반드시 확인해주시길 바랍니다. +) 추가 릴레이션 되어 있는 테이블도 import 해주셔야합니다..

[NestJS] Can't find module 'entity' from 'service.ts' 에러
Node.js2022. 8. 12. 00:15[NestJS] Can't find module 'entity' from 'service.ts' 에러

NestJS에서 엔티티 위치를 찾을 수 없다는 말입니다. 주로 entity를 찾을 수 없다고 나오지만 이는 "경로 지정이 잘못되었을 때" 나오는 에러입니다. 에러 발생 포인트: 레퍼지토리를 연결하여 CRUD 메소드를 만든 후(Entity 연동 후), Test를 돌려보니 에러가 남. 에러 원인: tsconfig.json과 pakage.json의 모듈 네임 매퍼가 같지 않음. tsconfig.json "jest": { "moduleDirectories": [ "node_modules", "src" ], "moduleFileExtensions": [ "js", "json", "ts" ], "roots": ["","src"], "testRegex": ".*\\.spec\\.ts$", "transform": { ..

[Mac] 맥 Postgresql 로컬 환경 구축하기
How to.2022. 7. 17. 21:11[Mac] 맥 Postgresql 로컬 환경 구축하기

설치brew로 postgresql을 설치해줍니다. brew install postgresql 버전 삭제 등의 이유로 문제가 될 수 있으니 에러가 난다면 install을 실행해주시면 됩니다! 서비스 시작 brew services start postgresql 이런식으로 오류가 뜬다면, brew services restart postgresql를 입력하여 재시작해주세요. psql 접속 psql postgres 를 입력하면 postgresql에 접속이 됩니다. 롤 생성 CREATE ROLE {롤 이름} WITH LOGIN PASSWORD '{비밀번호}'; 롤이 제대로 생성되었는지 확인하기 \du 각 컬럼은 롤 이름, 권한, 소속 멤버입니다. 유저한테 권한 부여 ALTER USER {롤 네임} WITH supe..

개발 블로그 시작하기
How to.2022. 6. 19. 17:06개발 블로그 시작하기

Why is Blog? 유능한 개발자가 되기 위해서는 개발 블로그를 운영해야한다. 블로그 글을 작성함으로써 얻을 수 있는 이점은 다음과 같다. 성장을 가시화 할 수 있다. 비판적 사고를 가질 수 있다. 하나의 스펙이 된다. 생각 정리를 할 수 있다. 공부 내용을 확실히 이해할 수 있다. 빠르게 성장할 수 있다. 댓글로 피드백을 받을 수 있다. etc.. 반드시 블로그를 운영해야하는가? 그것은 아니다. 하지만 블로그를 운영하며 공부한다면 빠른속도로 성장할 수 있다. 포스트 해야한다는 강박증을 가지지 말고, 자신이 공부한 내용을 확실히 공부하고 재학습한다고 생각하면 좋다. 내가 지금까지 본 개발자 블로그는 크게 다음과 같은 목표를 가지고 있었다. 개인 공부 브랜딩 목적 || 취업 How to Start? 개..

image