728x90 전체 글230 [Kafka] docker compose 로 kafka 띄우기 docker compose 를 이용하여 kafka 로컬 환경 세팅을 쉽게 할 수 있다. docker compose 에 대해 궁금하다면? https://yonikim.tistory.com/155 kafka 와 영혼의 단짝인 zookeeper, 추가로 kafka 운영 모니터링 툴 중 하나인 akhq 까지 해서 총 3개의 서비스를 띄워볼 것이다. Kafka 와 Zookeeper 란? Kafka 와 Zookeeper 는 대규모 분산 시스템에서 메시지 브로커 및 분산 데이터 저장소를 구축하는데 사용되는 두가지 주요 서비스이다. ※ Kafka 1. 역할 kafka 는 분산 데이터 스트리밍 플랫폼으로, 대용량의 실시간 데이터를 효과적으로 처리하고 저장할 수 있다. 고성능, 내결함성, 확장성을 갖춘 메시지 브로커 역할.. 2024. 1. 8. [Docker] Docker Compose 는 무엇인가 Docker Compose 란? Docker Compose 는 여러개의 도커 컨테이너를 정의하고 실행하기 위한 도구이다. Docker Compose 를 사용하면 복잡한 멀티 컨테이너 도커 애플리케이션을 쉽게 관리할 수 있다. 여러개의 서비스가 함께 동작하는 애플리케이션을 개발, 테스트, 배포할 때 특히 유용하다. Docker Compose 는 yaml 파일을 사용하여 도커 애플리케이션의 구성을 정의한다. 이 yaml 파일에는 애플리케이션에 필요한 서비스, 네트워크, 볼륨 등의 설정이 포함된다. 또한, 여러 서비스간의 의존성, 실행순서, 환경변수 등을 지정할 수 있다. Docker Compose 파일의 구성요소 간단한 docker-compose.yml 파일의 예시를 살펴보자. version: '3' ser.. 2024. 1. 7. [MySQL] 트랜잭션 (Transaction) 트랜잭션(Transaction) 이란? 트랜잭션(Transaction) 의 사전적 의미는 거래이고, 컴퓨터 과학 분야에서 트랜잭션(Transaction) 은 더 이상 분할이 불가능한 업무처리의 단위 를 의미한다. 이것은 하나의 작업을 위해 더이상 분할될 수 없는 명령어들의 모음. 즉, 한꺼번에 수행되어야 할 일련의 연산모음을 의미한다. 데이터베이스와 어플리케이션의 데이터 거래에 있어서 안전성을 확보하기 위한 방법이 트랜잭션인 것이다. 따라서 데이터베이스에서 테이블의 데이터를 읽어 온 후 다른 테이블에 데이터를 입력하거나 갱신, 삭제하는 도중에 오류가 발생하면 결과를 재반영 하는 것이 아니라 모든 작업을 원상태로 복구하고, 처리 과정이 모두 성공하였을 때만 그 결과를 반영한다. MySQL 트랜잭션 MySQ.. 2024. 1. 5. [JAVA] 리플렉션 (Reflection) 리플렉션 (Reflection) 이란? 리플렉션은 구체적인 클래스 타입을 알지 못하더라도 그 클래스의 메소드, 타입, 변수들에 접근할 수 있는 자바 API 를 말한다. 자바의 리플렉션은 클래스, 인터페이스, 메소드들을 찾을 수 있고, 객체를 생성하거나 변수를 변경하거나 메소드를 호출할 수 있다. 리플렉션은 언제 사용할까? 동적으로 클래스를 사용해야 하는 경우 코드를 작성할 시점에는 어떤 타입의 클래스를 사용할지 모르지만, 런타임 시점에 지금 실행되고 있는 클래스를 가져와서 실행해야 하는 경우 프레임워크나 IDE 에서 이런 동적 바인딩을 이용한 기능을 제공한다. IntelliJ 의 자동완성 기능, 스프링의 어노테이션이 리플렉션을 이용한 기응이다. 리플렉션을 사용하여 가져올 수 있는 정보는 다음과 같다. .. 2023. 12. 22. [OOP] 객체지향 설계의 5가지 원칙 (SOLID) Design Principles and Design Patterns 모든 개발이 그렇듯 프로젝트 초반에는 완벽하게 설계가 된 것 같고 견고하게 구조를 다듬어 나아가는듯해 보이지만, 개발을 하면 할수록 나의 코드와 구조의 틀이 점점 어긋나기 시작한다. 결국 어쩔 수 없이 리팩토링을 하게 되는데 그럴 때마다 항상 떠오르는 기본중의 기본 원칙, 바로 이번에 소개하는 개발지향 설계의 5가지 원칙을 항상 떠올리게 된다. SOLID 설계 원칙은 OOP 의 4가지 특징(추상화, 상속, 다형성, 캡슐화)와 더불어, 객체 지향 프로그래밍의 단골 면접 질문 중 하나이다. 또한 앞으로 배우게 될 여러 디자인 패턴(Design Pattern) 들이 SOLID 설계 원칙에 입각해서 만들어진 것이기 때문에, 표준화 작업에서부터 .. 2023. 12. 22. [JAVA] Garbage Collection(가비지 컬렉션) 알고리즘 종류 JVM 이 메모리를 자동으로 관리해주는 것은 개발자의 입장에서 상당한 메리트이다. 하지만 문제는 GC 를 수행하기 위해 Stop The World 가 발생되고, 이 때문에 애플리케이션이 중지된느 문제점이 발생하게 되었다. 또한 자바가 발전됨에 따라 Heap의 사이즈가 커지면서 애플리케이션의 지연(Suspend) 현상이 두드러지게 되었고, 이를 최적화하기 위해 다양한 Garbae Collection(가비지 컬렉션) 알고리즘이 개발되었다. Serial GC 서버의 CPU 코어가 1개일 때 사용하기 위해 개발된 가장 단순한 GC GC 를 처리하는 쓰레드가 1개(싱글 쓰레드)여 이기 때문에 stop-the-world 시간이 가장 길다. Minor GC 에는 Mark-Sweep 을 사용하고, Major GC 에는.. 2023. 12. 22. 이전 1 ··· 16 17 18 19 20 21 22 ··· 39 다음 728x90 반응형