목록TIL (75)
devlog_owen

문제상황 Gallery 엔티티에서 photo 컬럼을 다중파일 업로드를 해야한다. 하지만 MySQL과 같은 관계형 데이터베이스(RDBMS)는 일반적으로 배열을 데이터로 받을 수 없다. 그 이유는 정규화(Normalization) 때문이다. RDBMS는 데이터를 정규화하여 중복을 최소화하려는 경향이 있다. 각 열은 단일 값을 포함하며 배열과 같은 중첩된 구조는 데이터 정규화의 원칙에 어긋난다. 해결방안 1. Photo 엔티티 추가 테이블을 분리(정규화)하는 것이 가장 정석적인 방법이라고 한다. DB에서 배열을 그대로 하나의 레코드에 저장하는 것은 제 1정규형에 위반되므로 기본적으로 RDBMS에서 제한한다. 따로 Gallery 이미지를 저장하는 테이블을 맞들고 relation 걸고 갤러리 조회할 때 조인을 해..

개요 프로젝트 중 redislabs로 30mb의 공짜 메모리를 겟했다. 하지만 30mb는 딱봐도 많은 사용자의 모든 캐시데이터를 저장하기에는 무리가 있다. 그래서 따로 maxmemory와 캐시삭제전략을 사용하기로 했다. LRU vs LFU 일정 용량을 초과하는 경우 오래된 캐시를 삭제하는 전략은 캐시 관리에서 자주 사용되는 전략 중 하나다. 이를 "LRU (Least Recently Used)" 또는 "LFU (Least Frequently Used)" 전략이라고 한다. LRU (Least Recently Used): 이 전략은 가장 오래 전에 사용된 캐시를 삭제하는 방식이다. 최근에 사용된 캐시는 삭제하지 않고, 오랫동안 사용되지 않은 캐시부터 삭제된다. LFU (Least Frequently Used..
오류 ERROR [ExceptionHandler] Nest can't resolve dependencies of the StorebookService (?). Please make sure that the argument "StoreBookRepository" at index [0] is available in the StorebookModule context. Potential solutions: - Is StorebookModule a valid NestJS module? - If "StoreBookRepository" is a provider, is it part of the current StorebookModule? - If "StoreBookRepository" is exported from ..

문제 발생 프로젝트 중 이상하게 .development.env 파일이 활성화되어있었다. 분명 gitignore 파일안에 잘 들어가있었는데 아주 선명하게 파일명이 보였다.(gitignore에 포함되면 파일이름이 불투명해짐) 근데 그걸 까먹고 있다가 푸시를 했는데 그만 env파일까지 올라가버렸다... 원인 .gitignore 파일은 추척을 피하려는 파일 및 디렉토리 목록을 지정할 수 있다. 그치만 이미 저장소에 커밋된 파일은 .gitignore 변경사항에 영향을 받지않는다. 따라서 이미 env파일을 커밋했다면 .gitignore를 업데이트해도 기존의 env파일은 계속 추적된다. 해결방법 해결방법은 이미 저장소에 커밋된 env 파일을 추적에서 제외하고 캐시에서도 삭제하는 거다. # .development.en..

OAtuth 개념 OAuth는 간단하게 말하면 다른 웹사이트나 앱에서 우리의 정보를 사용하게 할 수있게 하는 Key라고 생각하면 된다. 예를들어서 내가 어떤 게임을 하려고 할때 1. 게임 사이트가 '네이버로 로그인'버튼을 보여줄수도 있다. 이때 바로 OAuth가 등장한다. 2.게임사이트는 내가 직접 계정정보를 입력하지않고 대신 네이버한테 '얘가 우리 게임 할수있게 해줘!!"라고 부탁한다. 3.그러면 페이스북은 나한테 와서 "이게임이 니 정보쓸건데 괜춘??"하나며 여러가지 동의항목을 체크하는 창을 띄운다. 4.내가 허락하면 게임사이트는 네이버에서 필요한 정보를 받아와서 나에게 로그인을 허용해준다! 이렇게하면 사용자는 편하게 다른곳에서 로그인하고 다른 서비스들을 이용할 수 있다. 그리고 사용자정보를 직접 공..

설치 및 세팅 하단의 명령어로 passport-Naver를 다운받는다. $ npm install passport-naver https://developers.naver.com/apps/#/myapps/g4Sz3QoF8ZQFrEPBLmmq/config 애플리케이션 - NAVER Developers developers.naver.com 여기서 적당히(?) API 설정을 하면 된다. naver-auth.guard.ts import { AuthGuard } from '@nestjs/passport'; import { Injectable } from '@nestjs/common'; @Injectable() export class NaverAuthGuard extends AuthGuard('naver') {} Ne..

와이어프레임 figma로 나타내기 Figma Created with Figma www.figma.com 다른 조원이 figma를 쓴 적은 봤었는데 직접 그린적은 처음이다. 유튜브 짧은 강의 보면 대충 어떤 느낌으로 그려야할지 감이 온다. 다른 조 디자인 잘한팀거 참고해서 그렸다. Wireframe Designer | Figma Community Introducing the Wireframe Generator. Unleash your design creativity and productivity with ease. Describe your vision, design with a single click! Effortlessly create wireframe mockups for both desktop and..

NoSQL vs RDBMS NoSQL (비관계형 데이터베이스) 스키마 유연성: NoSQL은 스키마가 없거나 유연한 스키마를 가지고 있기 때문에 데이터모델을 유연하게 변경할 수 있다. 확장성: NoSQL은 수평적으로 확장이 가능하다. 대용량의 데이터를 처리하고 분산시스템을 구축하느데 적합하다. 빠른 읽기/ 쓰기 성능: NoSQL은 단순한 키-값 저장소로 설계되어있어 빠른 읽기와 쓰기 성능을 제공한다. 다양한 데이터 모델: 문서(Document), 그래프(Graph), 열(Column), 키-값(Key-Value) 등 다양한 데이터모델을 지원한다. 장점: 유연한 데이터 모델: 스키마 유연성으로 인해 데이터 모델을 신속하게 변경할 수 있다. 확장성: 대용량 데이터 처리와 분산 시스템 구축에 용이하다. 빠른 성..