전체 글 385

쿠버네티스 기본 개념 간략정리

쿠버네티스 기본 개념노드의 개념마스터 노드클러스터를 관리한다.워커 노드파드가 실행된다.인그레스 노드클러스터 외부에서 클러스터 내부의 파드에 접근할 때 로드밸런서의 역할을 해준다.여기서 받아서 어떤 endpoint 로 가야할지를 판단해서 보내준다.쿠버네티스 리소스크게 오브젝트와 컨트롤러로 구성되어 있다.오브젝트네임스페이스, 파드, 서비스 등이 있다.네임스페이스클러스터 내부를 논리적 단위로 구분하여 사용할 수 있도록 해준다.네임스페이스를 사용하면 pod, controller, service, ingress 등 용도에 따라 실행해야 하는 애플리케이션을 하나의 클러스터 내에서 구분해서 사용할 수 있게 된다.클러스터를 실행하면 기본적으로 kube-system(시스템에서 관리하는 네임스페이스), default(사용..

배민 Kafka를 활용한 이벤트 기반 아키텍처 구축 보고 정리

https://www.youtube.com/watch?v=DY3sUeGu74M 이거 보고 정리이벤트 기반 아키텍처를 왜 구축했냐?배달 + 알림, 통계 등등...근데 알림이나 통계는 배달이랑 강한 일관성을 가지지는 않는다.둘을 같이 동시에 만족할 필요는 없음. (준 실시간성으로도 ㄱㅊ)즉 이는 결과적 일관성으로 만족할 수 있다. (이벤트를 통해 변경사항을 처리)그래서 이벤트는 어떤 정보를 가지고 있어야 했는가?여기서는 배달의 변경 사항을 잘 알려주는 것이다.4가지 구성요소 - 대상, 행동, 정보, 시간대상 : 식별자 정보 제공(배달이 A라이더에게 11시에 배차되었다)행동 : 이미 벌어진 사건이므로 과거형으로 표현(배달이 A라이더에게 11시에 배차되었다)정보 : 행위와 관련된 값들을 표현 (배달이 A라이더에..

L4, L7

L4, L7둘 다 네트워크에서 패킷을 처리하는 방법을 나타낸다.OSI 7계층을 알면 좋음.L4기능전송 계층에 해당한다.주로 TCP, UDP 를 사용해서 데이터를 전송한다.송신자와 수신자의 IP주소 및 포트 번호를 기반으로 네트워크 트래픽을 전달한다.로드 밸런싱L4 로드 밸런서는 트래픽을 IP주소와 포트 번호를 기준으로 분산한다.그래서 요청을 여러 서버에 고르게 분산시킬 수는 있지만 요청의 내용은(헤더나 데이터를 통한 확인) 검사하지 않는다.장점속도가 빠르고 비교적 간단한 처리다양한 종류의 트래픽(TCP/UDP 등) 처리 가능제한위에서 보듯 포트 번호를 기준으로 분산하고 헤더나 데이터 분석을 하지 않아서 애플리케이션 상태 혹은 사용자 세션에 기반한 로드 밸런싱은 어렵다.L7기능애플리케이션 계층에 해당한다...

쿠버네티스에서 말하는 Stateless가 뭘까?

쿠버네티스에서 말하는 Stateless가 뭘까?데이터 독립성상태가 없다 == 자체적으로 데이터를 저장하지 않는다.즉, 모든 트랜잭션이나 요청을 독립적으로 처리하며 이전 요청의 데이터를 보존하지 않는다.데이터는 주로 외부 DB, cache 혹은 다른 저장소에 저장된다.따라서 애플리케이션 파드는 재시작되거나 스케일 아웃되더라도 데이터 손실에 영향을 받지 않는다.수평 확장이 용이하다.파드간 상태 공유가 필요없기 때문에 오토스케일링이 쉽다.각각 파드의 요청 처리도 독립적으로 가능하다.유연한 배포 및 업그레이드애플리케이션 배포 및 업그레이드 시, 파드의 교체 시 유저에게 영향이 없다.간단하게 말하면 데이터 저장이나 이전 상태 유지를 하지 않는 애플리케이션을 의미한다.위의 장점을 정리하면독립성 : 이전 요청과의 연..

[백준 16174번] 점프왕 쩰리 (Large) - java

문제 설명1. 게임판 크기 N 이 주어진다.2. 현 위치의 숫자만큼만 오른쪽 혹은 아래로 이동 가능하다.3. 왼쪽 위부터 시작해서 오른쪽 아래로 갈 수 있는지를 체크하면 된다.풀이 과정1. DFS2. 굉장히 쉬운 문제다. 그냥 위치 확인하고 DFS 해주면 간단하게 풀린다.3. 현재 위치를 지나왔다고 체크하고, 거기서 점프하는걸 하면 해결 가능(근데 나는 살짝 더럽게 풀었는데, 그냥 check라는 배열을 하나 더 만들면 조금 더 깔끔하게 해결 가능하다.)코드import java.util.*;import java.io.*;public class Main{ private static int N; private static int[][] map; private static int[] xMove ..

알고리즘 공부 2024.12.31

[백준 1240번] 노드사이의 거리 - java

문제 설명1. N, M이 주어진다.2. 1~N 의 숫자를 가진 애들이 N-1줄 주어지는데 두 점이랑 거리가 주어진다.3. 그 다음에는 M개의 노드 쌍이 주어진다.4. 3번 과정에 애들에 대해 거리를 출력하면 된다.풀이 과정1. DFS + 백트래킹2. 얘랑 비슷하다.3. 노드를 각자 가지고 있고 그 거리를 DFS로 갱신시키면서 봐주면 된다.4. 그리고 현재 방문한 곳은 check해주고 다시 안보면 된다.코드/****************************************************************************** Online Java Compiler. Code, Compile, Run and Debug java program online. Write your code in..

알고리즘 공부 2024.12.30

[백준 13023번] ABCDE - java

문제 설명1. 사람 수 N, 관계 수 M 이 주어진다.2. 그 다음부터 M 개로 관계들이 주어진다.3. A - B - C - D - E 이렇게 친구인지 여부를 구하면 된다.풀이 과정1. DFS + 백트래킹2. 각 친구 상태를 가지는 ArrayList 를 배열로 가지면 된다.3. 현 사람을 기준으로 모든 관계 ArrayList 를 찾고 주르륵 찾으면 된다.4. 그리고 이전에 확인한 사람인지 체크 여부를 확인해서 백트래킹 해주면 된다.5. 이게 잘 동작하는 이유는 어차피 이전으로 돌아가지 않으니 depth 가 차면 알아서 ABCDE 열차가 완성되기 때문이다.코드/****************************************************************************** Onl..

알고리즘 공부 2024.12.29

[백준 1245번] 산봉우리 - java

문제 설명1. 격자 N M 이 주어진다.2. 맵이 주어지고 높이가 주어진다.3. 현재 높이 기준으로    - 같은 높이 : 같은 산봉우리    - 같은 산봉우리 주변에는 얘보다 낮은 높이밖에 없어야 한다.4. 산봉우리 개수를 구하면 된다.풀이 과정1. DFS문제이다.2. 모든 위치에서 주변 7방향 모두를 확인해준다.3. 그 중에 하나라도 얘보다 높으면 이건 산봉우리가 아니다.4. 같은 높이가 있으면 걔도 같은 산봉우리인지 확인해야 한다. 그 주변 애가 산봉우리가 아니라면 당연히 얘도 아니다.5. 산봉우리인지 체크를 한다면 그거는 모두 방문처리해준다.6. 그리고 산봉우리인지 return해서 호출한 메인쪽에서 확인해서 구하면 된다.코드/****************************************..

알고리즘 공부 2024.12.15

Consistency patterns

Consistency patterns질문Fail-over와 Replication의 차이Fail-over는 고가용성을 유지하기 위해 하나의 시스템이 고장나면 다른 시스템이 즉시 역할을 대신하도록 설계됨.Active-passive와 Active-active 방식Replication은 데이터의 복제본을 유지해 시스템 간 동기화를 보장하는 방식입니다.이는 데이터 무결성과 고가용성을 모두 확보 가능그러면 Replication 에는 Fail-over 가 포함되는 개념인가?Fail-over 를 할 수 있는 방법 중에 Replication 이 있고, 이러면 성능도 해결 가능?!병렬 구성에서 가용성이 낮은 것들을 쓰는데 총 가용성이 올라가는 이유?다른것이 대체 가능그러면 반대는?걔는 순서대로 가야해서…안됨

이론 정리 2024.12.10

깃허브에 펫 키우기

🎄깃허브에서 펫을 키워보세요 🎄Gitanimals에 크리스마스가 찾아왔습니다.지금 접속하고 크리스마스 옷을 입은 귀여운 펫을 무료로 뽑으세요!https://www.gitanimals.org/en_US/event/CHRISTMAS_2024https://github.com/git-goods/gitanimals GitHub - git-goods/gitanimals: 🦆 깃허브 활동으로 펫을 키우세요 / Have pet in your github🦆 깃허브 활동으로 펫을 키우세요 / Have pet in your github. Contribute to git-goods/gitanimals development by creating an account on GitHub.github.com 이거를 보고 한번 ..

기타/일상 2024.12.09