PUT vs PATCH PUT과 PATCH 모두 리소스에 변화를 주고 있다. 따라서 resource 관점에서는 safe하지 않은 메서드다. 2가지 방식에 대해 다음 관점들로 이해해 볼 필요가 있다. 3가지 관점 1. update 리소스에 대해 직접적으로 접근할 수 있는 Key 값이 있다고 해야한다. ex) products?id=2 PUT : resource에 대해 전체 내용을 바꾸며, 리소스에서 지원하는 필드가 비어있다면 nullable 하다. PATCH : resource에서 일부분을 수정하며, 리소스에서 정의된 필드만 바꾼다. ex) PUT { item: '아이폰 XS', price: 100000, color: 'spaceGray' } 가 있다. put를 통해 API를 수..
들어가며, AWS S3에 올린 객체가 특정 날짜에 삭제되거나 몇일이 지나 삭제가 됐으면 좋겠다고 생각할 때가 있다. 이 경우 어떻게 해야 되는지 살펴보자 1. S3 Bucket LifeCycle Rule을 설정 S3 LifeCycle Rule은 객체 자체에 Rule을 설정할 수 없어 Bucket 단위로 설정이 가능하다. batch 작업으로 유저가 등록한 파일을 자동 제거하는 규칙을 설정한 rule이 있다. 생명주기 이름을 기입한다. 규칙 범위를 선택한다. 하나 이상의 필터로 이 규칙을 범위 제한 버킷의 모든 객체에 적용 필터 유형 설정 객체 태그 추가 객체 크기 제한 가능 수명 주기 규칙 작업 설정 스토리지 간 현재/이전 버전 이동 객체에 현재 버전 만료 설정하고 싶은 기간의 일 수를 기입합니다. ex)..
Presigned URL 적용 이전까지 일반적인 파일 업로드 상황 서비스에서 이전까지 S3와 관련된 SDK를 통해 stream이나 메모리에 올려둔 파일을 업로드 했다. 이 경우에는 다음과 같은 단점이 존재하게 된다. 서버에서 파일업로드 외에도 다양한 API 작업을 수행할텐데 파일업로드에 리소스(메모리, CPU)를 사용하게 된다. Network Traffic 비용이 서버로 이동할 때, AWS로 전달할 때 2중으로 쓰인다. (AWS 등의 정책에 따라 무료일 수 있다.) Presigned URL은 어떤 일을 하나? 미리 서버에서 파일이 업로드 될 것을 예상하고 params를 가지고 있는 URL을 하나 생성한다. URL을 Client에게로 전달해 유저가 직접 AWS로 파일 업로드 or 다운로드를 가능하도록 조치..
velog 블로그에서 tistory로 이전한 데이터 입니다. 도입 옛날에 작성된 코드를 보면 아래와 같이 처리된 코드들이 있다. function query({name,address,phone}) { let arr = []; name && arr.push(`name=${name}`); address && arr.push(`address=${address}`); phone && arr.push(`phone=${phone}`); arr = arr.join('&'); return axios.get(`${URL}/user?${arr}`); } 의도한 결과는 잘 나올것이다. 하지만 최근에는 URLSearchParams를 사용하면 쉽게 해결할 수 있다. 사용법 function query({name,address,ph..
velog 블로그에서 tistory로 이전한 데이터 입니다. 2020-12-2 도입 네이버 FE 면접에서 url query를 파싱하는 방법에 대해 물어봤던 적이 있다. 아마 뛰어난 분들은 잘 하시겠지만 간단하게 만드시는 분들도 많을 것이다. 당시에 나는 어떻게 했을까? 내 풀이 문제 예시: key=123&name=djlee&address=suwon 결과 : {key: "123", name: "djlee", address: "suwon"} function queryParsing(str) { const result = {}; const arr = str.split('&'); arr.forEach(sub => { const [key,value] = sub.split('='); re..
velog 블로그에서 tistory로 이전한 데이터 입니다.2020-12-01 도입 npm run test -- --findRelatedTests [$filename]위 코드처럼 husky를 통해 eslint와 테스트를 자동화하는데에 주로 사용을 하는데 lint-staged를 사용하는데 있어서 왜 command에 '--'를 넣을까 의문이였다. 용도 '--' 설명은 다음과 같이 나와 있다. The standalone -- is *nix magic for marking the end of options, meaning (for NPM) that everything after that is passed to the command being run, in this case jest...
- Total
- Today
- Yesterday
- 2022년 회고
- 블로킹/논블로킹
- PresignedURL
- charset
- application/x-www-form-urlencoded
- UI/UX
- 점진적개선
- 디미터법칙
- 개발프로세스
- 디자인시스템
- JRE
- nodejs
- 트랜잭션
- 클린코드
- S3
- 콘웨이법칙
- HTTP
- PUT vs POST
- 소프트웨어개발프로세스
- 필수단어
- AntPattern
- Content-Type
- 자바기초
- 동기/비동기
- nodejs 버전 관리
- SSAFY 퇴소
- LTS 개선
- SSAFY 특화프로젝트 회고
- 너디너리데모데이
- 개발기록
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |