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..
How Figma's multiplayer technology works를 번역한 글입니다. Overview 2015년, 멀티 플레이어 기능을 솔루션에 도입하고자 함. 다른 디자인 툴들에서는 이 기능이 없었던 상황이고, 구글 독스에서 사용하는 멀티 플레이어 알고리즘의 표준격인 Operational Transforms (OT)를 사용하고 싶지는 않았음. 빠르게 피쳐를 전달해야하는 우리 시스템에 OT는 불필요하게 복잡했음. 그래서 더 심플하고 사용하기 쉽게 새로 만들고자 함. 주변에서 멀티 플레이어 기능에 대한 부정적인 의견이 있었지만, 진행했음. 이 기능을 통해 export, sync, email copy 등의 작업을 제거할 것이고, 더 많은 사람들이 디자인 프로세스에 포함될 수 있을 것이라고 생각. 단순..
OpenTelemetry OpenTelemetry (축약해서 OTel)은 trace, metric, log와 같은 telemetry 데이터를 instrumenting, generating, collecting, exporting 하기 위한 특정 벤더에 종립되지 않은 오픈소스(vendor-neutral open-source) Observability framework입니다. OpenTelemetry가 왜 필요할까? 분산된 시스템이 커지고, 확장됨에 따라 개발자 입장에서 자신의 서비스가 어떤 서비스에 의존적이고 의존되고 있는지 파악하기 어려워졌고, 결론적으로 어떠한 영향을 받는지/주는지 보기 어려워졌습니다. 특히, 서비스 배포 또는 중단하는 경우에 말이죠. 이러한 문제를 해결하기 위해 어떻게 해야할까요? 일..
Observability란 무엇일까요? Observability란 내부 동작 상황을 알 수 없는 시스템에 대하여 이해할 수 있도록 돕는 것, 정보를 의미합니다. 즉, 어떠한 문제가 발생하였을 때 Observability를 통해서 왜 이런 일이 발생했는지 유추해볼 수 있습니다. 너무 설명이 추상적인가요? 그럼, Observability 개념을 제외하고 생각해봅시다. 애플리케이션에서 어떠한 문제가 발생하였을 때, 어떻게 원인을 찾을 수 있을까요? 쉽게 생각한다면 "시스템 Log를 보죠!"라고 답할 수 있습니다. 맞아요. Log 도 Observability 범주에 속합니다. 더 넓게 trace, metrics, log, span 등과 같은 정보들. 즉, 애플리케이션의 상태를 계측할 수 있는 정보들을 의미합니다..
이 글의 주제인 File Permission 에 대해 이야기 하기 전에 글을 작성하게 된 계기를 먼저 이야기해보고자 합니다. 서버 개발을 하다보면 직접 원격 Linux 서버에 들어가 작업을 하는 경우가 많습니다. 그러던 중 File permission이 없어 작업을 진행할 수 없던 경우가 종종 있었는데요. 그럴 때마다 어떤 권한이 부족하고, 어떤 것이 원인인지 확실히 파악하지 못하니 답답했었습니다. Permission을 풀기 위해 그냥 구글링으로 chmod ~ 명령어를 가져와 사용하곤 했죠. 위와 같은 외계어(라고 생각했던 것)를 보면서 ‘File Permission 정보인 건 알겠는데, 어떻게 해석하고/어떻게 수정되는거지?’라는 궁금증이 들었습니다. 그래서 이 글에서 이 궁금증을 해소해보고자 합니다. ..
Cookie Cookie는 HTTP의 속성 중 Connectionless, Stateless 를 해결하기 위한 용도로 사용된다. Cookie를 사용함으로써 서버에선 받은 HTTP 요청이 어떠한 정보를 가진 요청이라는 것을 인식할 수 있다. 즉, HTTP 통신 간에 유지하려는 정보가 있는 경우 사용된다. Cookie는 클라이언트 브라우저(Local)에 저장되는 Key-Value 형태의 데이터이다. 서버 측에서 발급하여 클라이언트에게 보내 줌으로써 활용한다. 발급할 때, key-value 말고도 유효한 시간을 정의하여 만료되는 시간을 정할 수도 있다. 또한, path 및 domain 등을 설정하여 특정 주소에서만 사용될 수 있도록 할 수 있다. 즉, 유효한 시간까지는 브라우저가 종료되더라도 Cookie의 정..
EC2 등 가상 서버에서 Port forwarding 할 필요가 있을 때가 있다. 대체로 80포트를 8080포트로 포워딩할 때가 많은데, 아래처럼 하면 된다. - iptables 값을 수정하는 작업인데, 80포트로 접속한 Request를 8080포트로 리다이렉트 시키도록 수정한다. iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080 만약 권한 문제로 불가능할 경우, `sudo`를 붙여 진행해보자.
- Total
- Today
- Yesterday
- 로그
- hexagonal architecture
- Algorithm
- 비동기
- gradle
- java
- 쿠버네티스
- Spring
- Intellij
- Kubernetes
- jasync
- tag
- docker
- WebFlux
- Log
- HTTP
- 백준
- 알고리즘
- python
- boj
- k8s
- 클린 아키텍처
- MySQL
- 하루
- container
- Spring boot
- 일상
- Clean Architecture
- c++
- Istio
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |