일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- java
- MySQL
- 동기화
- Algorithm
- 자바
- 클라우드 네이티브 자바
- 클라우드 네이티브
- 머신러닝
- Stress test
- Semaphore
- devops
- nGrinder
- cloud native
- Spring
- ingress
- CRD
- 헬름
- kubernetes
- 코틀린
- Kotlin
- spring microservice
- ansible
- MSA
- Microservice
- decorator 패턴
- Adapter 패턴
- 쿠버네티스
- 익명클래스
- 마이크로서비스
- cloud native java
- Today
- Total
목록전체 글 (86)
카샤의 만개시기
서론 IT 전반에 있어 머신러닝을 이용한 효율화에 대한 고찰들이 이루어지고 있으며 강화학습을 이용한 정렬 알고리즘 뿐만 아니라 Cache를 효율적으로 사용함에 있어서도 이러한 고민들이 이루어지고 있다. 캐시는 컴퓨터 과학에서 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킨다. 캐시는 캐시의 접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우나 값을 다시 계산하는 시간을 절약하고 싶은 경우에 사용한다. 캐시에 데이터를 미리 복사해 놓으면 계산이나 접근 시간없이 더 빠른 속도로 데이터에 접근할 수 있다. 기존에 우리는 캐시를 효율적으로 사용하기 위하여 Cache Eviction 알고리즘을 도메인에 맞게 선택하여 사용해왔다. Cache Eviction Algorithms First-In-Fi..
도메인 주도 설계란 도메인 자동화된 비즈니스 프로세스나 현실 세계의 문제 도메인 전문가 해당 분야의 전문가 (ex. 은행의 업무 체계는 은행가가 도메인 전문가) 추상화 도메인을 표현한 모델 도메인 모델 도메인을 소프트웨어로 모델링한것. 특정한 다이어그램이 아니라 그 다이러그램이 전달하고자 한 아이디어 (에릭 에반스 said) 즉 도메인 전문가에의 지식을 선택적으로 추상화하여 조직화 한것. 도메인 모델을 만들때 정보를 조직화, 체계화하고 이를 작은 부분으로 나눠서 그 조각들을 다시 논리적 모듈로 그룹화하여 한번에 하나씩 다루어야 한다. 모메인 모델을 만들때 불필요한 요소들은 제거해야하며 이러한 요소는 명확하지 않을때도 있다. 도메인 모델을 이용하여 도메인 전문가, 설계자, 개발자들이 의사소통해야한다. 소프..
Mysql Architecture Mysql 엔진 Mysql 서버의 머리 역할을 담당한다 커넥션 핸들러: 클라이언트로부터의 접속 및 쿼리 요청 SQL 인터페이스: DML, DDL 등 인터페이스 제공 SQL 파서: 쿼리를 트리 구조의 작은 단위로 분리하는 작업을 수행 전처리기: 파서 과정에서 만들어진 파서 트리를 기반으로 쿼리에 문제가 있는지 파악 SQL 옵티마이저 쿼리 실행기: 스토리지 엔진에 쿼리 수행을 요청하며 이때 핸들러 API를 이용 캐시 & 버퍼 핸들러 API 쿼리 실행기에서 데이터를 쓰거나 읽어야 할때는 각 스토리지 엔진에 핸들러 요청을 수행해야 한다 스토리지 엔진 데이터 읽기/쓰기와 같은 Mysql 서버의 손과 발 역할을 수행한다 쿼리 캐시 데이터가 잦은 변경이 일어나는 경우에는 잦은 업데이..
쿠버네티스를 실무에서 사용하다 보면, Kubernetes annotations을 이용하여 nginx ingress에 커스터마이즈한 행동을 지정하곤 한다. 그 중에 configuration-snippet와 server-snippet 설정이 유사하게 사용되는것 같은데 정확히 어떤 차이가 있는지 궁금하여 정리해보았다. nginx.ingress.kubernetes.io/configuration-snippet: | ... nginx.ingress.kubernetes.io/server-snippet: | ...configuration-snippet 도큐먼트 NGINX location에 redirect/rewrite를 포함한 다양한 설정을 추가적으로 지정해줄수 있다. server-snippet 도큐먼트 Attenti..
NEXTSTEP, 인프런, 패스트캠퍼스, 카우치코딩.. 언젠가부터 개발자를 위한 온라인 강의들이 등장하더니 코로나 팬데믹 이후로는 온라인 교육 시장이 더 성장을 하고 있는거 같다. 근래에는 단순히 온라인 강의뿐만 아니라 NEXTSTEP 이나 카우치코딩 같이 현직 개발자들이 직접 코드리뷰를 해주는 매력적인 개발자 교육과정들이 많이 등장하고 있다. NEXTSTEP 교육과정 이펙티브 코틀린(Effective Kotlin) with TDD, Refactoring, Clean Code 평소에 책으로 공부하는것을 선호하는 편이지만 객체지향적으로 클린 코드를 작성하는법이나 비즈니스 로직의 변경에 따른 리팩토링 등을 어떻게해야 더 잘 할수 있는지는 책만으로 학습하기에는 조금 비효율적인 면이 있는거같다. 그러한 Need..
평온한 주말 속에 우연찮게 전시회 입장권 한장을 얻게 되었고, 단조로운 일상을 깨고자 나홀로 로즈 와일리 전시회를 다녀왔다. 오디오 북을 들으며 여러 작품들을 구경하던 중에 다른 작품들과는 거리가 멀어 보이는 한 작품이 있었는데, 얼핏보아도 지나가던 사람들의 이목을 끌만큼 강렬한 작품이었다. 다 사용한 유화로 보이는 페인트 통들과 물감들로부터 바닥을 보호하기 위해 너저분하게 흩어져있는 신문지들... 이 작품은 로즈 와일리의 작업실을 재현한 작품이라고 한다. 이 작품을 보면서 우리의 소스 코드와 많이 닮아 있다는 느낌을 받았다. 사용자에게 제공되는 서비스는 전시회의 다른 작품들처럼 예쁘고 쾌적하게 구성되어 있지만 때론 우리의 소스코드는 저 로즈 와일리의 작업실처럼 너저분하게 짜여지곤 한다. 만약 저렇게 쌓..
Operator와 CRD는 쿠버네티스의 철학과 동작 원리를 잘 나타낸다. Operator Operators are software extensions to Kubernetes that make use of custom resources to manage applications and their components. 오퍼레이터는 쿠버네티스와 쿠버네티스 이외의 것들을 둘 다 이해하는 쿠버네티스 컨트롤러이다. 이 두 영역에 대한 지식을 결합함으로써, 두 도메인을 모두 이해하는 실제 운영자가 필요한 작업을 자동화할 수 있다. Custom Resource Definition (CRD) In the Kubernetes API a resource is an endpoint that stores a collection..
Fluentd 빅데이터 시대가 오면서 데이터 수집기는 여러 방면에서 사용이 되는데, 대표적인 데이터 수집기는 ELK에서 사용되는 Logstash와 Fluentd로 나뉜다. Fluentd는 쿠버네티스와 같은 CNCF 재단에 속해 있는 범용 로그 수집용 오픈소스 프로젝트로써 C와 Ruby로 개발되었다. logstash에 비해 안정성이 높고 아키텍쳐가 단순한 편이며 메모리 또한 적게 쓰는 편이다. Fluentd 주요 특징 Unified Logging with JSON Fluentd의 데이터 구조는 JSON 형태로 되어 있다. downstream data processing이 JSON으로 제공되어 더욱 쉽고, 이는 유연한 스키마를 유지하면서 accessible한 structure를 제공해준다. Pluggable..