이론 정리 159

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

쿠버네티스 기본 개념노드의 개념마스터 노드클러스터를 관리한다.워커 노드파드가 실행된다.인그레스 노드클러스터 외부에서 클러스터 내부의 파드에 접근할 때 로드밸런서의 역할을 해준다.여기서 받아서 어떤 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 혹은 다른 저장소에 저장된다.따라서 애플리케이션 파드는 재시작되거나 스케일 아웃되더라도 데이터 손실에 영향을 받지 않는다.수평 확장이 용이하다.파드간 상태 공유가 필요없기 때문에 오토스케일링이 쉽다.각각 파드의 요청 처리도 독립적으로 가능하다.유연한 배포 및 업그레이드애플리케이션 배포 및 업그레이드 시, 파드의 교체 시 유저에게 영향이 없다.간단하게 말하면 데이터 저장이나 이전 상태 유지를 하지 않는 애플리케이션을 의미한다.위의 장점을 정리하면독립성 : 이전 요청과의 연..

Consistency patterns

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

이론 정리 2024.12.10

CAP

CAP네트워크를 완벽히 신뢰할 수는 없다.이런 상황에서 CAP 중 두가지만 보장이 가능하다.Consistency일관성즉 read 모든 작업은 가장 최근의 정보나 혹은 오류 메세지를 받는다.Strong consistencyeventual consistencyAvailability가용성모든 요청이 응답은 받는다.근데 이게 최신일 필요는 없음. (이거는 그래도 된다는것)Partition Tolerance오류가 나는 상황에서도 시스템의 작동이 멈추지 않는다.근데 위에서 본 것처럼 네트워크를 신뢰할 수 없기 때문에 P 는 필수다!!그러면 어떨 때 C / A 를 고를까CP데이터가 중요한 때에!근데 이거 타임아웃 날 수도 있음AP그냥 줄 수 있는 데이터를 준다.결국 이거는 어쨌든 문제가 있어도 시스템은 잘 동작하게 ..

이론 정리 2024.12.05

Fat JAR / Thin JAR 간략정리

Spring Boot 관련 회의를 하는데 Fat JAR이라는 이야기가 나왔다.근데 이거 처음 들어봐서... 한번 찾아봤다.간단하게 말하자면 애플리케이션 실행에 필요한 모든 의존성 및 코드를 하나의 JAR파일로 패키징한 것 이라는 것이다.이를 통해 단일 JAR파일로 애플리케이션을 실행할 수 있다는것.Spring boot에서는 기본적으로 Fat JAR를 생성하며 이렇게 생성되는 덕분에 애플리케이션이 쉽게 배포되는 것이었다!!!대충 정리해 보면Fat JAR의존성을 포함실행에 필요한 모든 파일 포함Spring Boot는 기본적으로 Fat JAR 사용Thin HAR애플리케이션 코드만 포함의존성은 별도 경로에서 로드의존성을 별도로 참조하는 Spring이 이와 비슷한 빌드이다.애플리케이션 -> Thin JAR의존성 ..

모던 자바 인 액션 4장 간략정리

정리스트림과 컬렉션의 차이가 뭘까?사실 회사에서 스트림을 쓰고 있는데 사용하면서도 이게 컬렉션보다 보기 편하고 쓰기 편하군ㅇㅇ 이정도 감상이었는데 이번에 확실히 감이 잡히더라스트림 시작여기서 제일 인상깊었고, 컬렉션과의 차이에 대해 쉽게 접근할 수 있었던게, 컬렉션의 주제는 데이터고 스트림의 주제는 계산 이라는 점이었다. 말하자면 컬렉션은 요소 저장 및 접근, 스트림은 그걸 가지고 계산하는 것이 주가 된다는 것이다.그리고 스트림이 가진 두가지 중요 특징이파이프라이닝대부분의 스트림 연산은 스트림 연산끼리 연결해서 커다란 파이프라인을 구성할 수 있도록 스트림 자신을 반환함lazy(결과값이 필요할 때에 계산하도록... 그니까 알아서 스트림의 중간/최종 연산을 통해 안쓸거는 안쓰게 하는 최적화 같은 느낌이다)이..

이론 정리/java 2024.11.26

모던 자바 인 액션 3장 간략정리

람다 표현식람다 표현식이란?메서드로 전달할 수 있는 익명 함수를 단순화한 것람다 표현식은 일단 간결하게 코드를 전달하는데에 쓰인다. -> 말하자면 사실 이전에 못하던 기능을 람다를 통해 할 수 있다기 보다는, 그냥 코드가 깔끔해지고 알아보기 쉬운 것이다.저기 위의 설명에서 그 이유를 대충 짐작할 수 있는데익명이름이 따로 없다. 이름을 만들 필요가 없으니 구현이 간단해진다.함수메서드와 다르게 특정 클래스에 종속되지 않는다.파라미터 리스트, 바디, 반환 형식, 예외 리스트는 포함된다.전달람다 표현식을 메서드 인수로 전달하거나 변수로 저장할 수 있다.간결성익명 클래스처럼 코드를 막 구현할 필요는 없다.람다에 대해서(Apple a1, Apple a2) -> a1.getWeight().compareTo(a2.ge..

이론 정리/java 2024.11.25

모던 자바 인 액션 2장 간략정리

동적 파라미터화여러 요구사항에 효과적으로 대응 가능한 방법. 아직은 어떤 식으로 동작할지가 결정되지 않은 코드 블록이고, 나중에 프로그램에서 실행된다.문제 상황1. 녹색 사과 필터링enum Color { RED, GREEN }빨강, 초록 사과가 있다.여기서 만약에 녹색 사과를 필터링하려 하면if(GREEN.equals(apple.getColor())) { result.add(apple);}요렇게 쓸 것이다.단점만약 빨간사과, 노란사과, 검은사과 등등... 필터링 개수가 많아진다면? 저 if문이 계속해서 늘어나거나 또 빼짐에 따라 줄어들 수 있을 것이다.2. 색의 파라미터화위의 1에서의 단점을 해결하기 위함이다.public static List filterApples(List inventory, Co..

이론 정리/java 2024.11.24