대규모 Agent를 어떻게 관리하면 좋을까요? (feat. OpAMP) (1)
개요
해당 아티클에 존재하는 코드는 여기에서 확인해보세요.
Introduction
글에 대한 코드는 저의 github에서 볼 수 있습니다.
글에 대한 코드는 링크를 통해서 볼 수 있습니다.
글에 대한 코드는 링크를 통해서 볼 수 있습니다.
글에 대한 코드는 링크를 통해서 볼 수 있습니다.
글에 대한 코드는 링크를 통해서 볼 수 있습니다.
테스트를 위해 진행했던 코드는 github repo를 참고하세요.
소스코드: https://github.com/BaeJi77/blog-code/tree/main/2021-11/go-log
rate limit 이란
마틴 파울러 아저씨의 글을 기반으로 작성했습니다.
Ndjson이란
7. Different Layer, Different Abstraction
책임 주도 설계를 향해
코드와 관련해서는 github를 참고하세요.
서론 클러스터된 스테이트풀 애플리케이션 배포 파드 레플리카 인스턴스에 별도의 스토리지 제공 파드 레플리카에 안정적인 이름과 호스트 이름 보장 예측 가능한 순서대로 파드 레플리카의 시작과 중지 DNS 서비스 레코드를 통한 피어 디스커버리
서론 파드를 최신 버전으로 교체 관리되는 파드 업데이트 이플로이먼트 리소스로 파드의 선언적 업데이트 롤링 업데이트 수행 잘못된 버전의 롤아웃 자동 차단 롤아웃 속도 제어 이전 버전으로 파드 되돌리기
목표 자바의 람다식에 대해 학습하세요. issue
목표 자바의 I/O에 대해 학습하세요. issue
목표 자바의 Enum에 대해 학습하세요. issue
목표 자바의 클래스에 대해 학습하세요. issue
목표 자바 데이터 타입, 변수 그리고 배열에 대해 학습하세요. issue
목표 자바의 Annotation에 대해 학습하세요. issue
창발성의 정의 창발(創發)또는 떠오름 현상은 하위 계층(구성 요소)에는 없는 특성이나 행동이 상위 계층(전체 구조)에서 자발적으로 돌연히 출현하는 현상이다. 또한 불시에 솟아나는 특성을 창발성(영어: emergent property) 또는 이머전스 (영어: emergence)...
목표 자바의 멀티쓰레드 프로그래밍에 대해 학습하세요. issue
목표 자바의 예외 처리에 대해 학습하세요. issue
Overview 복잡성은 개발자들에게 어려움만을 제공한다.
목표 자바의 인터페이스에 대해 학습하세요. issue
Overview 우리는 지금까지 코드 행과 코드 블록을 올바로 작성하는 방법에 초점을 맞췄다. 아무리 코드와 라인에 신경쓰더라도 더 높은 단계에 대해서 알지 못하면 깨끗한 코드를 만들기 어렵다.
목표 자바의 패키지에 대해 학습하세요. issue
Overview 단위 테스트에 대해서 알아보자.
Overview 우리는 온전히 우리가 만든 코드를 통해서 어떤 프로그램을 만들지 않는다. 만약 외부에서 가져온 코드를 사용하게 되는 경우는 우리는 어떻게 대처해야될까요?
목표 자바의 상속에 대해 학습하세요. issue
Overview 우리는 가끔씩 랜덤으로 어떤 수를 만들어서 로직에 사용해야되는 경우가 있다. Java에서는 어떤 방법으로 만들 수 있는지 알아봅시다.
Overview 개발을 진행하면서 내가 만든 api가 어느정도 부하를 받을 수 있는지에 대해서 테스트를 해야되는 경우가 존재합니다. 여러 툴이 존재하지만 이번에는 오픈소스인 vegeta을 이용한 방법에 대해서 소개하겠습니다.
Overview 우리는 가끔씩 해당 메소드에 사용 제한을 하고 싶을 수 있다. 혹은 API를 공개했는데 특정 유저들에게는 제한을 하고 싶다. 이랬을 경우 우리는 해당 유저를 판단하고 사용 제한을 하도록 해야 한다. 그 방법에 대해서 고민하고 어떻게 해야되는지 이야기해보자.
Overview 우리는 변수와 관련한 의존성을 낮추기 위해서 변수는 private으로 선언한다. 하지만 getter, setter 함수는 모두 공개해서 만드는데 왜 그럴까!
목표 자바가 제공하는 제어문을 학습하세요. issue
Overview 소프트웨어는 혼자 작성하는 것이 아니다. 그러기 때문에 하나의 소스 파일에도 여러 코드 스타일이 존재할 수 있다. 우리는 어떤 형식, 코드 스타일이 가독성을 올릴 수 있는지에 대해서 이야기 나눌 것이다.
목표 자바가 제공하는 다양한 연산자를 학습하세요.
Overview 우리는 가끔씩 코드를 작성하다가 코드를 설명하기 위해서 주석을 작성한다. 어떻게 하면 주석을 잘 적성할 수 있을까? 한번 알아봅시다!! 어떤 프로그램이든 가장 기본적인 단위가 함수다. 이 장은 함수를 잘 만드는 법을 소개한다.
목표 자바 소스 파일(.java)을 JVM으로 실행하는 과정 이해하기.
Overview 어떤 프로그램이든 가장 기본적인 단위가 함수다. 이 장은 함수를 잘 만드는 법을 소개한다.
Overview git을 이용해서 소스 코드를 관리하다보면, 그리고 협업을 진행하다보면 conflict가 나는 경우가 존재한다. 그것을 merge가 아닌 rebase를 통해서 어떻게 해결하는지 한번 알아보자!!
Overview 프로그래밍을 하면서 모든 순간에 이름을 사용하게 된다. 그 이름을 잘 지어서 좋은 코드를 만드는 규칙 몇가지를 소개하겠습니다.
Overview minikube를 하면서 로컬에 존재하는 docker image를 사용해보고 싶었는데 잘 되지 않더군요. 그래서 한번 방법을 찾아봤습니다.
Overview 기존에 블로깅했던 내용 설명한 방식을 통해서 특별한 추가 명령어 없이 바로 Jar를 만들고 docker image를 만들 수 있었다. 그 이후 Java 메모리 설정에 대해 말해보겠다.
배경 기존에 RestTemplate을 이용해서 Spring에서 http client 라이브러리 역할을 많이 했다. 하지만 Spring에서 RestTemplate을 지속적으로 향상시키기보다 deprecated 한다는 이야기를 들었습니다. 그래서 다른 친구가 없을까 싶어 찾던 중 fe...
배경 Java profile에 맞는 환경 마다 동작하게 만드는 properties 파일을 다르게 설정하고 싶었습니다. 이런 환경에서 다양한 방법이 있는데 제가 생각했을 때 편한 방법을 설명해드리겠습니다.
Gradle task task는 gradle project의 작업 단위. 기본적으로 gradle에서는 제공해주는 task들이 있음. 이런 친구들을 ./gradlew [taskName] 을 활용해서 실행할 수 있다. 대표적으로 ./bradlew bootJar 를 실행하는 경우 ....
Overview Spring boot를 활용하여서 도커 이미지를 만들 때 단점을 이야기하며 그것에 대한 개선 방법에 대해 이야기합니다.
hello world
어찌되었든 나에게는 엄청난 2023가 끝났다. 그리고 정리해보자.
어찌되었든 나에게는 엄청난 2022가 끝났다. 그리고 정리해보자.
글또란?
어찌되었든 나에게는 엄청난 2021가 끝났다. 그리고 정리해보자.
어찌되었든 나에게는 엄청난 2020가 끝났다. 그리고 정리해보자.
구매 배경 이전에는 30만원 짜리 듀오백에서 의자를 샀었다. 해당 의자는 헤드레스트가 원래 있는 모델이라서 편하게 잘 사용을 했었는데 허먼 밀러 의자에는 그런게 없다고 하더라. 그냥 공식적으로 허먼 밀러에서는 헤드레스트가 존재하지 않는다.
배경 취업 준비를 하기 전, 취업 준비를 하던 중, 취업 준비가 끝난 지금까지 달리기를 할 수 있을 때 자주 한다. 그런데 매번 혼자 달리고 단순히 똑같은 코스로만 달리니 색다른 경험을 해보고 싶었다. 이전에도 마라톤을 참가해본 적이 있지만 언택트로 하는 마라톤…? 도전해보고 싶어...
배경 사실 나는 취업 준비를 제대로 해본 적이 없는 상태에서 5개월 정도에 시간동안 취업 준비를 했다. (19년도 하반기는 프로젝트 때문에 가볍게 도전했습니다.) 과연 그때 내가 얼마나 잘했는지 모르겠지만 그래도 내가 정말로 원하는 기업에 들어가는 좋은 결과를 만들었다. 내가 어떤...
서론 벌써 글을 작성하고 올라온지 한달 반이 지난 이후에 후기를 작성한다. 그 때 어떻게 작성하려고 하고 어떤 과정을 가졌는지 적어보려고 한다.
결국, 미국에서 배운 것
처음일지 모르는 블로그 글을 후기로 시작한다.
7. Different Layer, Different Abstraction
책임 주도 설계를 향해
서론 클러스터된 스테이트풀 애플리케이션 배포 파드 레플리카 인스턴스에 별도의 스토리지 제공 파드 레플리카에 안정적인 이름과 호스트 이름 보장 예측 가능한 순서대로 파드 레플리카의 시작과 중지 DNS 서비스 레코드를 통한 피어 디스커버리
서론 파드를 최신 버전으로 교체 관리되는 파드 업데이트 이플로이먼트 리소스로 파드의 선언적 업데이트 롤링 업데이트 수행 잘못된 버전의 롤아웃 자동 차단 롤아웃 속도 제어 이전 버전으로 파드 되돌리기
창발성의 정의 창발(創發)또는 떠오름 현상은 하위 계층(구성 요소)에는 없는 특성이나 행동이 상위 계층(전체 구조)에서 자발적으로 돌연히 출현하는 현상이다. 또한 불시에 솟아나는 특성을 창발성(영어: emergent property) 또는 이머전스 (영어: emergence)...
Overview 복잡성은 개발자들에게 어려움만을 제공한다.
Overview 우리는 지금까지 코드 행과 코드 블록을 올바로 작성하는 방법에 초점을 맞췄다. 아무리 코드와 라인에 신경쓰더라도 더 높은 단계에 대해서 알지 못하면 깨끗한 코드를 만들기 어렵다.
Overview 단위 테스트에 대해서 알아보자.
Overview 우리는 온전히 우리가 만든 코드를 통해서 어떤 프로그램을 만들지 않는다. 만약 외부에서 가져온 코드를 사용하게 되는 경우는 우리는 어떻게 대처해야될까요?
Overview 우리는 변수와 관련한 의존성을 낮추기 위해서 변수는 private으로 선언한다. 하지만 getter, setter 함수는 모두 공개해서 만드는데 왜 그럴까!
Overview 소프트웨어는 혼자 작성하는 것이 아니다. 그러기 때문에 하나의 소스 파일에도 여러 코드 스타일이 존재할 수 있다. 우리는 어떤 형식, 코드 스타일이 가독성을 올릴 수 있는지에 대해서 이야기 나눌 것이다.
Overview 우리는 가끔씩 코드를 작성하다가 코드를 설명하기 위해서 주석을 작성한다. 어떻게 하면 주석을 잘 적성할 수 있을까? 한번 알아봅시다!! 어떤 프로그램이든 가장 기본적인 단위가 함수다. 이 장은 함수를 잘 만드는 법을 소개한다.
Overview 어떤 프로그램이든 가장 기본적인 단위가 함수다. 이 장은 함수를 잘 만드는 법을 소개한다.
Overview 프로그래밍을 하면서 모든 순간에 이름을 사용하게 된다. 그 이름을 잘 지어서 좋은 코드를 만드는 규칙 몇가지를 소개하겠습니다.
목표 자바의 람다식에 대해 학습하세요. issue
목표 자바의 I/O에 대해 학습하세요. issue
목표 자바의 Enum에 대해 학습하세요. issue
목표 자바의 클래스에 대해 학습하세요. issue
목표 자바 데이터 타입, 변수 그리고 배열에 대해 학습하세요. issue
목표 자바의 Annotation에 대해 학습하세요. issue
목표 자바의 멀티쓰레드 프로그래밍에 대해 학습하세요. issue
목표 자바의 예외 처리에 대해 학습하세요. issue
목표 자바의 인터페이스에 대해 학습하세요. issue
목표 자바의 패키지에 대해 학습하세요. issue
목표 자바의 상속에 대해 학습하세요. issue
Overview 우리는 가끔씩 랜덤으로 어떤 수를 만들어서 로직에 사용해야되는 경우가 있다. Java에서는 어떤 방법으로 만들 수 있는지 알아봅시다.
Overview 우리는 가끔씩 해당 메소드에 사용 제한을 하고 싶을 수 있다. 혹은 API를 공개했는데 특정 유저들에게는 제한을 하고 싶다. 이랬을 경우 우리는 해당 유저를 판단하고 사용 제한을 하도록 해야 한다. 그 방법에 대해서 고민하고 어떻게 해야되는지 이야기해보자.
목표 자바가 제공하는 제어문을 학습하세요. issue
목표 자바가 제공하는 다양한 연산자를 학습하세요.
목표 자바 소스 파일(.java)을 JVM으로 실행하는 과정 이해하기.
배경 기존에 RestTemplate을 이용해서 Spring에서 http client 라이브러리 역할을 많이 했다. 하지만 Spring에서 RestTemplate을 지속적으로 향상시키기보다 deprecated 한다는 이야기를 들었습니다. 그래서 다른 친구가 없을까 싶어 찾던 중 fe...
글또란?
배경 취업 준비를 하기 전, 취업 준비를 하던 중, 취업 준비가 끝난 지금까지 달리기를 할 수 있을 때 자주 한다. 그런데 매번 혼자 달리고 단순히 똑같은 코스로만 달리니 색다른 경험을 해보고 싶었다. 이전에도 마라톤을 참가해본 적이 있지만 언택트로 하는 마라톤…? 도전해보고 싶어...
결국, 미국에서 배운 것
처음일지 모르는 블로그 글을 후기로 시작한다.
글에 대한 코드는 링크를 통해서 볼 수 있습니다.
글에 대한 코드는 링크를 통해서 볼 수 있습니다.
테스트를 위해 진행했던 코드는 github repo를 참고하세요.
소스코드: https://github.com/BaeJi77/blog-code/tree/main/2021-11/go-log
rate limit 이란
마틴 파울러 아저씨의 글을 기반으로 작성했습니다.
Ndjson이란
hash-table
SQL Injention
HTTP 버전별 비교 HTTP Connectless하게 통신하기 때문에 한번 요청 후에 다시 요청을 하려면 다시 연결을 해야 됩니다. (http/1) 상태정보 유지 안함 (Stateless) -> 연결을 끊는 순간 서로 상태 정보를 유지하지...
OSI 7-layer 네트워크 끼리 서로 통신을 하기 위해서 만든 7계층의 프로토콜
TCP 어플리케이션 계층 Baundary delivery - 해당 데이터에 대하여 명확하게 하나의 데이터로 보낸다. 전송 계층 Stream of byte - 해당 데이터에 대하여 전혀 알지 못하고 특정 크기로 데이터를 ...
IP 공개적으로 유일한 네트워크 주소로 특정 서버와 연결하기 위해서 사용되는 프로토콜
메모리 관리
코드와 관련해서는 github를 참고하세요.
Overview 기존에 블로깅했던 내용 설명한 방식을 통해서 특별한 추가 명령어 없이 바로 Jar를 만들고 docker image를 만들 수 있었다. 그 이후 Java 메모리 설정에 대해 말해보겠다.
배경 기존에 RestTemplate을 이용해서 Spring에서 http client 라이브러리 역할을 많이 했다. 하지만 Spring에서 RestTemplate을 지속적으로 향상시키기보다 deprecated 한다는 이야기를 들었습니다. 그래서 다른 친구가 없을까 싶어 찾던 중 fe...
배경 Java profile에 맞는 환경 마다 동작하게 만드는 properties 파일을 다르게 설정하고 싶었습니다. 이런 환경에서 다양한 방법이 있는데 제가 생각했을 때 편한 방법을 설명해드리겠습니다.
Gradle task task는 gradle project의 작업 단위. 기본적으로 gradle에서는 제공해주는 task들이 있음. 이런 친구들을 ./gradlew [taskName] 을 활용해서 실행할 수 있다. 대표적으로 ./bradlew bootJar 를 실행하는 경우 ....
Overview Spring boot를 활용하여서 도커 이미지를 만들 때 단점을 이야기하며 그것에 대한 개선 방법에 대해 이야기합니다.
어찌되었든 나에게는 엄청난 2023가 끝났다. 그리고 정리해보자.
어찌되었든 나에게는 엄청난 2022가 끝났다. 그리고 정리해보자.
어찌되었든 나에게는 엄청난 2021가 끝났다. 그리고 정리해보자.
어찌되었든 나에게는 엄청난 2020가 끝났다. 그리고 정리해보자.
HTTP 버전별 비교 HTTP Connectless하게 통신하기 때문에 한번 요청 후에 다시 요청을 하려면 다시 연결을 해야 됩니다. (http/1) 상태정보 유지 안함 (Stateless) -> 연결을 끊는 순간 서로 상태 정보를 유지하지...
OSI 7-layer 네트워크 끼리 서로 통신을 하기 위해서 만든 7계층의 프로토콜
TCP 어플리케이션 계층 Baundary delivery - 해당 데이터에 대하여 명확하게 하나의 데이터로 보낸다. 전송 계층 Stream of byte - 해당 데이터에 대하여 전혀 알지 못하고 특정 크기로 데이터를 ...
IP 공개적으로 유일한 네트워크 주소로 특정 서버와 연결하기 위해서 사용되는 프로토콜
개발자가 보고 쉽게 이해했으면 좋을것 같은 프롬프트 엔지니어링에 대해서
개발자가 보고 쉽게 이해했으면 좋을것 같은 프롬프트 엔지니어링에 대해서
배경 사실 나는 취업 준비를 제대로 해본 적이 없는 상태에서 5개월 정도에 시간동안 취업 준비를 했다. (19년도 하반기는 프로젝트 때문에 가볍게 도전했습니다.) 과연 그때 내가 얼마나 잘했는지 모르겠지만 그래도 내가 정말로 원하는 기업에 들어가는 좋은 결과를 만들었다. 내가 어떤...
서론 벌써 글을 작성하고 올라온지 한달 반이 지난 이후에 후기를 작성한다. 그 때 어떻게 작성하려고 하고 어떤 과정을 가졌는지 적어보려고 한다.
hash-table
개발자가 보고 쉽게 이해했으면 좋을것 같은 프롬프트 엔지니어링에 대해서
개발자가 보고 쉽게 이해했으면 좋을것 같은 프롬프트 엔지니어링에 대해서
Overview minikube를 하면서 로컬에 존재하는 docker image를 사용해보고 싶었는데 잘 되지 않더군요. 그래서 한번 방법을 찾아봤습니다.
Overview minikube를 하면서 로컬에 존재하는 docker image를 사용해보고 싶었는데 잘 되지 않더군요. 그래서 한번 방법을 찾아봤습니다.
Overview git을 이용해서 소스 코드를 관리하다보면, 그리고 협업을 진행하다보면 conflict가 나는 경우가 존재한다. 그것을 merge가 아닌 rebase를 통해서 어떻게 해결하는지 한번 알아보자!!
Overview git을 이용해서 소스 코드를 관리하다보면, 그리고 협업을 진행하다보면 conflict가 나는 경우가 존재한다. 그것을 merge가 아닌 rebase를 통해서 어떻게 해결하는지 한번 알아보자!!
Overview 개발을 진행하면서 내가 만든 api가 어느정도 부하를 받을 수 있는지에 대해서 테스트를 해야되는 경우가 존재합니다. 여러 툴이 존재하지만 이번에는 오픈소스인 vegeta을 이용한 방법에 대해서 소개하겠습니다.
구매 배경 이전에는 30만원 짜리 듀오백에서 의자를 샀었다. 해당 의자는 헤드레스트가 원래 있는 모델이라서 편하게 잘 사용을 했었는데 허먼 밀러 의자에는 그런게 없다고 하더라. 그냥 공식적으로 허먼 밀러에서는 헤드레스트가 존재하지 않는다.
HTTP 버전별 비교 HTTP Connectless하게 통신하기 때문에 한번 요청 후에 다시 요청을 하려면 다시 연결을 해야 됩니다. (http/1) 상태정보 유지 안함 (Stateless) -> 연결을 끊는 순간 서로 상태 정보를 유지하지...
SQL Injention