아래 글을 읽으면서 메모하고 개인적인 생각을 적은 글 최근에 PostgreSQL을 사용해봤는데 뭐가 특별한지 모르겠다고 느끼던 차, 보이길래 읽었다. 그냥 아주아주 단순한 데이터 저장하는 용도로만 써서 몰랐지... 그나저나 사이트 OG image 웃기다 (제목에 딱 어울림) When Did Postgres Become Cool? Craig takes a look at the history of Postgres. From the origins of the project through some of the key production features that make Postgres what it is today. www.crunchydata.com crunchydata 라는 회사에 속한 분이 쓴 글이라 회사..

동시성과 병렬성을 헷갈리지 말자 둘 이상의 코드 조각이 실행될 때 동시성 (Concurrency): 동시에 실행 중인 것처럼 행동하는 것 병렬성 (Parallelism): 실제로 동시에 실행되는 것 동시성을 얻으려면 실행 중의 코드의 다른 부분으로 실행을 전환할 수 있어야 함. Fiber, Thread, Process 등을 이용해 구현 병렬성을 얻으려면 2가지 일을 동시에 할 수 있는 하드웨어가 필요함. 여러 개의 코어, 여러 CPU, 네트워크에 연결된 여러 대의 컴퓨터 등을 이용해 구현 모든 일엔 동시성이 있다 시스템의 규모가 어느정도 넘어가면 동시성을 고려하지 않고 코드를 작성하는 것이 거의 “불가능”함 코드 짤 때 이런게 잘 안보인다면, 라이브러리/프레임워크 안에 숨겨져 있는 경우일 것 실제 세상이..
Spring에서의 ETag Spring에서도 ETag를 손쉽게 사용할 수 있도록 지원하고 있다. 그 중 리소스 캐싱에 대한 기능은 여러 API에서 공통으로 사용할 수 있는 기능이기에 Filter로서 지원하고 있다. 충돌 피하기 (Lost update problem)에 대해서는 지원하지 않는 듯하다. 이에 대해서는 뒤에서 더 알아보자. ShallowEtagHeaderFilter class에서 지원한다. GitHub - spring-projects/spring-framework: Spring Framework Spring Framework. Contribute to spring-projects/spring-framework development by creating an account on GitHub. g..

HTTP Message, Entity HTTP Message는 서버와 클라이언트가 HTTP 통신 내에서 서로 주고받는 데이터를 의미한다. 보통 클라이언트에서 서버로 '요청'하는 메시지를 HTTP Request Message라고 하고, 반대로 서버가 클라이언트에게 응답하는 메시지를 HTTP Response Message라고 한다. Entity는 HTTP Message의 일부라고 생각하면 된다. 여러 외부 자료에서 HTTP Message가 컨테이너면 Entity는 화물이라고 비유하고 있다. Entity는 Request/Response Payload를 이루는 Raw data이다. Response header 중 Content prefix가 붙은 것들은 Entity를 표현하는 용도이다. ETag ETag는 En..

git revert에 대해 commit 을 잘못한 경우 git commit을 잘못남겼을 때, 보통 어떻게 하는가? 나는 보통 git reset 또는 git rebase 를 통해 commit을 제거(drop)했고, 이를 force push (--force)함으로써 branch를 관리했다. 하지만 이 방식은 협업 시, 문제를 초래할 수 있다. (로컬에서만 사용하는 것은 문제 없음) force push 된 branch에서 작업하던 다른 사람들은 pull 시에 충돌(Conflict)이 발생할 수 있고, 이를 해결해야 한다. 이를 방지하기 위해서는 작업하던 사람들이 사용하던 branch 내역을 지우거나 백업해두고 pull 해야만 한다. 혹은 pull 받을 때 충돌없이 알아서 rebase 될 수 있는데, 이게 협업..
Spring boot - API Versioning API를 개발하다보면 API 버전에 대한 생각을 하게 된다. 버저닝(Versioning)을 하지 않으면 input/output이 변경되었을 때 이를 사용하고 있던 클라이언트에게 제대로 서비스할 수 없기 때문이다. 이러한 API Versioning을 하기 위해 지금까지 단순히 URI에 version을 명시하는 방향으로만 진행해왔는데, 더 다양한 방법이 있어 이를 정리해놓고자 한다. 모든 예제코드는 아래 Repository를 참고하자. GitHub - KimDoubleB/spring-learning: 🌱 •̀.̫•́✧ 🌱 •̀.̫•́✧ . Contribute to KimDoubleB/spring-learning development by creating a..

Javascript에서 물음표(?)가 사용되는 경우가 많은데, 이게 다른 언어와 조금 차이가 있어 헷갈려 정리해놓고자 한다. 삼항연산자로서의 ? 이 부분은 다른 언어와 유사한 부분이다. 삼항연산자로 ? 를 사용할 수 있다. const text = isRed ? 'Yes, This is RED!' : 'No, Something else'; ? {true} : {false} 형태로 사용된다. 널 병합 연산자로서의 ?? 널 병합 연산자(Nullish coalescing operator)로 ?? 가 사용된다. 단어가 어려워보이지만 사실 간단하다. 왼쪽 피연산자가 nullish(null 또는 undefined)일 때 오른쪽 피연산자를 반환하고, 그렇지 않으면 왼쪽 피연산자를 반환한다. const foo = nul..
- Total
- Today
- Yesterday
- Istio
- Spring boot
- HTTP
- c++
- 쿠버네티스
- java
- OpenTelemetry
- 비동기
- python
- docker
- MySQL
- 알고리즘
- Clean Architecture
- 백준
- gradle
- container
- Kubernetes
- 클린 아키텍처
- 로그
- k8s
- jasync
- Log
- boj
- Spring
- 일상
- tag
- Intellij
- WebFlux
- 하루
- Algorithm
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |