전체 글 164

[코테] 각 자리 수 더하기

숫자 관련 문제를 풀다 보면 숫자의 각 자리 수를 추출해서 더하거나, 리스트로 만들거나, 특정 조건을 검사해야 하는 경우를 자주 접하게 된다. 예를 들어 12345라는 숫자가 있고, 각 자리의 숫자를 모두 더한 값을 구해야 한다고 해보자.1 + 2 + 3 + 4 + 5 = 15 고민을 해보고 두 가지 방법을 떠올렸다. 1. 문자열로 변환해서 각 자리 숫자를 더하는 방법가장 먼저 떠올린 방법은 숫자를 문자열로 변환한 뒤, 문자열을 한 글자씩 순회하면서 다시 숫자로 변환해 더하는 방식이었다n = 12345answer = 0for num in str(n): answer += int(num)print(answer) # 15 2. 몫과 나머지를 이용해 각 자리 숫자를 분리하는 방법두 번째로 떠올린 방법은 ..

[Transactional Outbox Pattern - 2편] 메시지 중복 처리와 멱등성, 장단점

해당 내용은 ChatGPT 와 함께합니다. 제목링크Transactional Outbox Patter 1편https://jm-baek.tistory.com/468✅ Transactional Outbox Patter 2편https://jm-baek.tistory.com/470 목차1. 메세지가 중복 발행되면 어떻게 할까?2. Transactional Outbox의 장단점3. 결국 언제 사용하는 것이 좋을까? 📌 빠르게 읽기중복 메시지로 인한 문제를 방지하기 위해 멱등성(Idempotency)을 고려해야 하며, Inbox에 처리 이력을 저장하는 방법을 사용할 수 있다.장점은 DB 변경과 이벤트 기록의 정합성을 보장하고, 메시지 브로커 장애에도 재시도를 통해 대응할 수 있다는 것이다.단점은 Outbox 테이블..

[Transactional Outbox Pattern - 1편] 이중 쓰기 문제와 메시지 발행 원리

해당 내용은 ChatGPT 와 함께합니다. 제목링크✅ Transactional Outbox Patter 1편https://jm-baek.tistory.com/468✅ Transactional Outbox Patter 2편https://jm-baek.tistory.com/470 📚 목차1. OutBox / InBox 란?2. 왜 Transactional Outbox가 필요한가?3. Transactional Outbox Pattern이란?4. Outbox 메시지는 어떻게 발행할까? 📌 빠르게 읽기Transactional Outbox Pattern은 DB 저장과 메시지 발행 사이에서 발생하는 이중 쓰기(Dual Write) 문제를 해결하기 위한 패턴이다.주문 정보와 같이 비즈니스 데이터를 저장할 때, ..

4. scale-out/in

어렵게 생각하지말고.. 그냥 해보자! 하다 보면 알지 않을까? 한 번에 많은 내용을 할 생각은 없다!직접 명령어를 작성해 보고 기능에 대해 궁금해 보자. Scale-out/in 란? Scale-out 해보기현재 Deployment → ReplicaSet → Pod → Service → 브라우저 접속 까지 성공했고, 이제 pod 개수를 늘려보자! 1) 명령어를 실행 해보자. deployment nginx→ nginx라는 이름의 Deployment를 --replicas=3→ Pod가 3개가 되도록 kubectl scale deployment nginx --replicas=3 2) 명령어 결과를 확인해보자.pod 3개가 실행 중인 것을 확인할 수 있다.Deploymentnginx READ..

3. Service 만들기

어렵게 생각하지말고.. 그냥 해보자! 하다 보면 알지 않을까? 한 번에 많은 내용을 할 생각은 없다!직접 명령어를 작성해 보고 기능에 대해 궁금해 보자. Service 란? Service 만들기현재 Deployment → ReplicaSet → Pod 로 되어 있고, 여기에 Service를 연결해보자. 아래 명령어를 실행한다.kubectl expose deployment nginx --type=NodePort --port=80 1. kubectl expose deployment nginx→ nginx Deployment의 Pod들을 외부에 노출할 Service를 만들어줘 2. --type=NodePort→ Node의 포트를 통해 접근할 수 있게 해줘 3. --port=80→ Service는 ..

2. Deployment 만들기

어렵게 생각하지말고.. 그냥 해보자! 하다 보면 알지 않을까? 한 번에 많은 내용을 할 생각은 없다!직접 명령어를 작성해 보고 기능에 대해 궁금해 보자. Deployment 란? Deployment 만들어 보기Deployment 하나를 만들어 보자는 말을 쉽게하면,nginx가 실행 되는 Pod를 1개 유지하도록 Kubernetes 에게 관리자를 하나 만들어보자라는 뜻이다. 이제 명령어를 실행해 보자.kubectl create deployment nginx --image=nginx 1. create deployment→ Deployment를 만들어라2. nginx→ Deployment 이름을 "nginx"로 해라 3. --image=nginx→ Pod의 컨테이너는 nginx 이미지를 사용해라 ..