일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- nodejs
- Batch
- 백준
- 포너블
- docker
- 시스템 해킹
- Python
- 스프링 배치
- Baekjoon
- 보안
- gcp cloud build
- programmers
- cloud run
- sequelize
- 회고
- 웹보안
- 리버싱
- node.js
- 웹해킹
- 사이버보안
- webhacking.kr
- 프로그래머스
- pwnable.xyz
- 파이썬
- gcp
- hackctf
- spring Batch
- kotest
- gcp ci/cd
- 네트워크
목록PostgreSQL (2)
uju's Tech
기록용.. WITH ▷ 구조 WITH alias_name AS (SELECT * FROM table_name WHERE..) SELECT ....FROM alias_name WHERE .. ▷ 사용하는 경우 따로 추출하여 공통적으로 사용할 수 있다. FROM 에 이미 가공된 데이터를 넣고 싶은 경우 좀 더 가독성 있게 사용할 수 있다. COUNT FILTER ▷ 구조 COUNT(1) FILTER (WHERE ...) AS .. ▷ 사용하는 경우 하나의 SELECT 문에서 다른 조건을 갖는 COUNT를 여러개 구하고싶을 때 COALESCE ▷ 구조 COALESCE(대상 , b) ▷ 사용하는 경우 대상이 null이 아닐경우 대상 그대로 출력, null 일 경우 b 출력 count 할 때 null일 경우 0으..
흔히 데이터를 삽입이 필요한 API 를 구현할 때 아래와 같은 흐름으로 많이 구현한다. 1. 존재 여부 check 2. 존재하지 않으면 error 3. 존재하면 insert 이런 로직이 당연하다고 생각하였는데 구현하고있는 대상에 따라 다른 로직을 고려해볼 수 있을 것 같다. 예를 들어 좋아요 생성 API 를 구현한다고 해보자. 위와 같은 로직으로 작성했을 때 생기는 엣지 케이스를 생각해보자. - 네트워크 지연으로 인해 API 호출이 쌓여 동시에 찌르는 경우 - 창을 동시에 띄우고 하나의 창에 좋아요 누른 후 다른 창에도 요청하는 경우 등이 있는데 이런 경우 critical 한 부분이 아닌데도 에러를 보내는 것은 비효율적이다. 실제로 동시에 api를 호출하면 db 에서 duplicated 에러가 발생하는데..