전체 글

전체 글

    S3 CopyObject / Access Deny / the specified key does not exist

    1. Access Deny 해당 에러가 뜨는경우는 두가지이다 해당 CopySource가 존재하지 않을때, 존재하는데 해당 에러가 뜨는경우는 key값 앞에 해당 CopySource가 존재하는 버킷명을 추가하면 된다. 2. the specified key does not exist 만약 utf-8로 key를 올렸다면 해당 에러가 뜰수도 있다. CopySource 값을 인코딩해서 보내면 된다!

    prisma 5 update 주요 내용

    (개인 기록용) 최소 지원 버전 nodeJS : 16.13.0 TS : 4.7 PostgreSQL : 9.6 주요 변화 1. rejectOnNotFound 파라미터 제거 2. jsonProtocol 프리뷰 (graphQL) 3. array 단축키 (shortcut) 제거 - 대상 : `OR`, `in`, `notIn`, postgresql json `path`, scalar list, mogoDB composite list shorcuts - 기존 싱글 요소들을 array 형식으로 변환해주는 기능 제거 - ex ) 이전 .... OR : {id : 1}, .... 이후 ... OR : [{id : 1}], ...4. CockroachDB사용시 provier에 cockroachdb로 연결 필요 5. gen..

    [Jest] 한 함수를 여러번 쓸경우, 여러 return 값이 필요시

    https://jestjs.io/docs/mock-function-api#mockfnmockreturnvalueoncevalue [Mock Functions · Jest Mock functions are also known as "spies", because they let you spy on the behavior of a function that is called indirectly by some other code, rather than only testing the output. You can create a mock function with jest.fn(). If no implementation is given jestjs.io](https://jestjs.io/docs/mock-functio..

    rxjs retry change parameter / rxjs retry 사용시 값 갱신 안됨

    외부 API를 호출하고 해당 외부 API 호출을 실패했을때 기존 token을 갱신한 뒤에, 한번더 실행하는 코드를 작성하였는데, retry를 할때 갱신한 token의 값을 반영하지 않고 호출을 하는 것을 발견하였다. 해결 방법 : defer사용 추후에 더 자세한 내용을 작성할 예정!

    Class-validator @Transform 사용시 @ValidateNested 동작 안함 ValidatedNested with transform not validating

    https://github.com/typestack/class-validator/issues/1473 fix: ValidatedNested with transform not validating · Issue #1473 · typestack/class-validator Versions: class-transformer: 0.4.0 class-validator: 0.13.2 Description Using Transform from class-transformer and ValidateNested of class-validator seems to skip validation of nested fields. Minima... github.com FormData로 데이터를 전달 받기 때문에 string형식으로 ..

    eslint : vscode formatOnSave

    .vscode/setting.json { "eslint.validate": [ "javascript", "javascriptreact", "typescript", "typescriptreact" ], "editor.codeActionsOnSave": { "source.fixAll.eslint": true, }, } 하고 formatOnSave하니깐 잘됨 참고한 링크 : How to Format Code on Save in VS Code with ESlint | Aleksandr Hovhannisyan

    2023.02.11 letsencrypt certbot 자동 갱신 오류

    계속 certbot renew --dry-run 할 때 fail 떠서 뭐지 했는데 80포트 안열어놔서 그랬음.

    prisma relation deleteMany (개인 기록용)

    개인 기록용 soft delete를 위해서 middleware로 delete, deleteMany 를 사용시에는 update, updateMany 로 변경하면서 deletedAt을 넣어주는 방식으로 개발을 하였는데, relation연산으로 연결된 데이터를 deleteMany를 사용시에는 그냥 delete 연산이 수행되더라... 예 : A.update({ data : { B : { deleteMany : [ {id} ] } }, where : { id, } }) relation 걸린 데이터 삭제시에 soft delete하고 싶으면 따로 쿼리작성하거나 ... 미들웨어를 다시 손 볼 수 있는지 확인해봐야지.. TODO : prisma 미들웨어 살펴보기 ...

    prisma - update error : An operation failed because it depends on one or more records that were required but not found. Record to update not found.

    간단요약 update 대신 updateMany를 사용하면 됩니다. "An operation failed because it depends on one or more records that were required but not found. Record to update not found. " prisma에서 update시 수정할려고 하는 값이 존재 하지 않으면 위의 에러를 던집니다. 하지만 updateMany를 이용하면 해당 에러는 발생하지 않습니다. update 같은 경우 해당 값을 SELECT 해온다음에 UPDATE를 처리하는데 SELECT하였을때 값이 없으면 위의 에러값을 던지는 것입니다. 하지만 updateMany는 SELECT 하지 않고 바로 UPDATE를 합니다. 그래서 에러가 발생하지 않습니..

    알고리즘 강의 정리 (간략)

    ** 여기 나온 코드는 제가 나중에 보았을 때 기억이 날 정도로.. 작성했기 때문에 참고할 만 코드는 아닙니다! 문제 풀이 패턴 1. Frequency Counter Pattern 아나그램 array [a, a, i, y, i] → { "a" : 2, "i" : 2, "y": 1 } 2. 다중 포인터 * 정렬된 배열이여야함 ex) 인자들의 합이 x 값인 인자 둘을 구하라 //주어진 arr에 두 인자의 합이 10인 경우가 존재하는가 let x = 10 let arr = [1,2,4,5,6,14,30] let i = 0; let j = arr.length - 1 while(i x) { j-- } else if(arr[i] + arr[j] (ac + cur),..

    가상메모리 - page/segmentation

    가상메모리 주어진 기계에서 실제로 사용가능한 저장리소스의 이상화된 추상 메모리 운영체제에서는 프로그램에서 사용하는 가상 주소라는 메모리 주소를 컴퓨터 메모리에 있는 물리적 주소와 mapped 됨 프로세스마다 실제 물리 메모리가 아닌 가상의 주소 공간을 보이게 한다는 의미 효과 주기억장치의 효율적인 관리 메모리 관리의 단순화 메모리 용량 및 안전성 보장 가상 주소 프로세스가 생성되어 독립적으로 할당 받는 주소 Memory manage unit (MMU)에서 관리함 멀티 태스킹 OS에서 흔히 사용 가상 기억 장치의 개념에서 가상 공간의 연속적 주소가 실제 물리적인 공간 상에서 연속적일 필요가 없음인위적인 연속성 (artificial continuity) Paging 가상 주소 공간을 page라는 단위로 나누..

    MySQL grant all privileges 문법

    오랜만에 mysql 을 사용하면서 개발용 유저를 만들고 권한 설정해주는데 ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 에러를 마주해서 확인해보니 문법이 바뀌었다. 기존 grant all privileges on \[데이터베이스이름\].\[테이블 이름 /또는 테이블 전체(\*)\] to \[유저이름\]@\['유저의 호스트 정보'\] identified by \['비밀번호'\]; Mysql8 grant all privileges on \[데이터베이스이름..