Date객체의 타입으로 날짜+시각을 표현하는 필드를 선언Column의 타임은 timestamptz = 타임스템프 with timezone 이라는 뜻이다.타임존을 고려하는 타입은, offset 정보를 알아서 처리하여 UTC 시간으로 변경해준다.
공유 노트 어플리케이션사용자는 n개의 노트를 가진다.사용자는 n개의 노트를 공유 받을 수 있다.또한 n개의 노트를 공유할 수 있다.UserNoteSharedNote (trie mapping table )User-Note 는 1:N 관계이다.트라이 관계User-Share
S3 IAM 사용자 생성엑세스키,비밀키 env 설정버킷 만들기파일 업로드파일 삭제AWS IAM 에서 사용자를 추가 한다.aws-sdk로 AWS S3의 자원에 접근하게 되므로,aws 엑세스 유형은 프로그래밍 방식 엑에스 이다.사용자의 권한 설정부분에서는AmazonS3Fu
REST API 호출시 DTO을 검사하여 잘못된 데이터 및 타입에 대해 서버를 보호whitelist: true, // class-validator가 없는 프로퍼티는 body에서 제거된다.forbidNonWhitelisted: true, // 초과 프로퍼티에 대해 오류를
설치CASE1 글로벌 캐시 적용CASE2 개별 API 캐시 적용CASE2+ HttpCacheInterceptor 만들기Example Finance 모듈 적용기컨트롤러에 캐시인터셉터를 적용시키면해당 endpoint는 자동으로 캐슁이 된다.하지만 query,params,b
JWT토큰의 사용자 아이디 정보로, 완전한 사용자 정보로 만들어주자. x-jwt 라는 key값이 header에 있는지 확인 jwt 토큰을 해석하여 ,사용자 id를 해독한다. 사용자 id를 통해 사용자 정보를 읽고 req에 넣는다.jwt.middleware.ts 의
미들웨어에서 사용자 정보를 req 객체에 넣었다. controller 에서 req객체를 뒤적거리어서 사용자 객체를 얻을 수 있다. 위 반복적인 코드를 데코레이터로 만들고자 한다. createParamDecorator을 구현하여 ExecutionContext 을 가
Ref Docs시드 TASK : Repo CRUD 로직으로 랜덤한 entity을 넣기유닛 테스트 : Service의 로직이 잘 작동하는지 점검 (화이트 박스),\-> 이를 이용해서 seed로직을 작성가능E2E 테스트 : REST API 로직이 잘 작동하는지 점검 (블랙
1단계 Join relations 배열에 조인할 컬럼A 을 명시 2단계 Join relations 배열에 조인할 컬럼A.조인할 컬럼B 을 명시
Compiles into: Which just gives you this object: 결론 : enum은 object로 컴파일 되며, Object API로 인터렉션을 하면 되는구나! You can get all the keys ("A", "B", "C") lik
테이블 이름을 변경했다. member_strategy_strategy_code_seq 가 이미 있다? 어? 나는 member_strategy_strategy_code_seq을 만든적이 없다!가만 보니, 테이블이 아니고 SEQUENCE 라는 객체이고 찾아보니 Auto
M모듈에는 M서비스가 있고, S모듈의 S서비스를 원한다. S모듈에는 S서비스가 있고, M모듈의 M서비스를 원한다. A class는 B class를 원하고 B class도 A class를 원해서 발생하는 원인이다. M 사이드의 모듈에서, S모듈이 아직 생성자를 통
도커환경을 이용해서 python 실행환경을 만들어 보자. conda, virtualenv 없이 docker만으로 해결 해보자. 도커 빌드를 통해 이미지로 만들자docker installed ( 도커 설치 )설치파일은 requirements.txt 에 공통으로 모아두자
User는 N개의 Post를 가지고 있다. ( 1:N 관계 )사용자를 조회 했더니 (SELECT 1개)Post 조회를 N번 더 한다. (SELECT N개)총합 N+1 개의 조희 쿼리 발생가능한 적은 query를 날리기 위해 JOIN을 사용 하도록 한다.전략의 상세설정과
https://ui.toast.com/weekly-pick/ko_20200623필요 개념React-router-dom서버 애러 코드 ( 400, 404, 500 )React ContextAPI애러 코드 404,403,500 에 대해 어떻게 대처 해야 하는가한
애러 코드에 대한 확장성400,403,404 ... 늘어나는 애러에 대응깊은 자식 컴포넌트의 애러최하단 자식컴포넌트의 애러는 모든 화면의 애러로 표현되어 한다.잘못된 url정규식에 대한 애러 및 API에 대한 애러 모두 대응잘못된 url, 404 애러 ( 혹은 커스텀
Git 이슈 라벨
SSR 지원CSR보단 SEO 이점자동 코드 분할 ( 폴더+파일 컨벤션을 따라라 )HMR ( 핫 모듈 교체, Hotloading )(1) SSR 도입 전FE (Javascript) + BE(JSP/Servlet + Java API)(2) SSR 도입 후FE (Javasc
목적 : 클라이언트 상태 + 가져온 서버데이터 상태 관리를 잘 하자.(리트라이,리프레쉬,refetch,caching,invalid cache, optimistic-mutation .. etc)Global State라는 말을 쓰지 말자 : 전역 state는 Client와
에프오씨유는 스타일링이 미쳐 되지 못한 콘텐츠가 스타일 적용이 완료되면서 깜빡거리는 현상이다. 참조된 @Import CSSCSS 폰트가 로딩이 완료되어, 기본 폰트가 바뀔때 깜빡임 발생 JS로 DOM 조작화면이 이미 노출된 DOM에서 변경이 일어나면 깜빡임 발생
로직과 룩&필 을 분리하자.UI가 내포하고 있는 상태를 분리한다.적절한 자료구조를 정의하고이를 변경할 수 있는 인터페이스를 노출커스텀 훅으로 만든다.문제점 : 달력 라이브러리는 CSS가 내장되어 있어서 기존 CSS override시 발생되는 문제점이 있다.어떻게 추상
어차피 PC뷰에서 알맹이 부분은 width 1280px 이고, 여백은 margin 이므로피그마 기본값인 1440\*1080 으로 결정ref
목적 : serverState , clientState, persistState 를 잘관리하자.리액트 클라이언트의 상태는 ServerState + ClientState로 나뉜다.t1 시점에서 서버에서 데이터를 가져온것도 하나의 상태 s1 이고t2 시점에서 데이터를 가져
목적 : 어떻게 하면 쿼리 키를 잘 관리할 수 있을까? 문제 : REST API EndPoint가 정말 많아 졌다.전략 관련 API만 15개정도 되는 듯 하다.테이블 갯수만 20개이니, CURD만 쳐도 최소 80개의 REST API EndPoint가 나올 것 이다.
라이브러리를 사용하다보면 리액트컴포넌트로 제공해주지 않는 소스가 있다.예를들어, light-weight 차트 라이브러리는 직접 HTMLElemet를 참조해서 차트를 그려준다.이는 가상돔을 사용하는 리액트입장에서는 상당히 혼란스러울 수 있다.외부 라이브러리의 둠 조작을
https://immerjs.github.io/immer/producehttps://react.vlpt.us/basic/23-immer.html✅ Immer를 사용한 더 쉬운 불변성 관리produce(state,draft)를 이용한다.첫번째 인자는 수
formdata를 받아서 S3에 올라가는 API 는 완성이 되어 있음을 가정한다.NestJS에서는 너무나도 쉽게 파일업로드를 도와주는 모듈을 있으므로 아래를 참고하자.(https://velog.io/@ypd03008/NestJSAWS-S3-Uploader-%E
갑자기 nestJS 어플리케이션이 먹통이 되었다. TypeORM 모듈에서 생성자 함수 실행 후 동기화 SQL코드가 있는 여기서, 무한대기를 하는 현상이 생겼다.더 난감한것은 오류 메시지도 출력하지 않아서 문제점이 숨겨져 있었다.처음에는 NestJS 문제라고 생각되어 모