전체 글

전체 글

    서킷브레이커 정리 및 resilience4j 적용기

    서킷브레이커 정리 및 resilience4j 적용기

    resilience4jMSA 환경에서 서킷브레이커, 유량제어는 매우 중요한 개념으로 보다 더 안전한 서비스 운영을 위해 사용되는 개념이다.서비스가 확장되면서 같은 팀 내에서 분리된 서비스가 한 쪽으로 의존(트래픽)을 하면서 A의 서버가 B의 API를 비동기로 호출하면서 데이터를 가져오는 상황이 발생한다.A의 서버를 개발하는 나는 몇 가지 상황을 대비해야한다.B의 서버가 죽어있다면?B의 서버가 CPU 자원 부족으로 죽기 직전이라면?B의 서버가 순간적인 에러를 뱉는다면?여기서 A서버는 B의 서버가 회복할 수 있도록 기다려줌과 동시에 장애가 전파되지 않도록 막아야한다. 여기서 내가 가져올 수 있는 것은 서킷브레이커이다.서킷브레이커란? 집에서 사용하는 두꺼비집이라 불리는 누전차단기, 회로차단기가 서킷브레이커이다..

    [CS] SOLID

    SOLID에 대해서 이전의 글이 있으나, 사내 스터디에서 SOLID 부분을 맡게 되었고 다시 한번 보면서 디깅하는 시간을 갖도록 하기로 하였다. 이전 글 https://kbcoding.tistory.com/63SOLID단일 책임 원칙(SRP : Single Responsibility Principle)개방 폐쇄 원칙(OCP : Open-Closed Principle)리스코프 치환 원칙(LSP : Liskov Substitution Principle)인터페이스 분리 원칙(ISP : Interface Segregation Principle)의존성 역전 원칙(DIP : Dependency Inversion Principle)단일 책임 원칙(SRP : Single Responsibility Principle)“..

    [Java] 릴리즈 버전별 특징

    Java 8 LTS (2014.03)지원 기간 : 2030.12람다 표현식 (Lambda Expressions)스트림 API (Streams API)새로운 날짜와 시간 API (java.time)Ex) LocalDateTime인터페이스의 디폴트 메서드 (Default Methods)메타공간 (Metaspace) 메모리 관리Permanent Heap 영역이 제거 - Perm은 JVM에 의해 크기가 강제되던 영역Metaspace영역은 OS레벨에서 관리하는 영역이 되기에 Metaspace가 Native메모리를 이용함으로서 개발자는 영역 확보의 상한에 대한 오버헤드가 감소한다.Java 9 (2017.09)모듈 시스템 (Project Jigsaw)Jigsaw는 모듈을 만들고 모듈에 명시적으로 외부에서 호출할 수 ..

    [JAVA] Arrays.sort() Collection.sort() 정렬 알고리즘

    [JAVA] Arrays.sort() Collection.sort() 정렬 알고리즘

    Java에서 정렬에 대해서 크게 Arrays.sort()와 Collection.sort()가 존재하는데 이 두 메서드는 내부 구현에 차이가 있어 정리를 하고자 한다.Arrays.sort()배열을 정리하는데 사용된다. 원시 타입 배열(int[], char[], etc.)와 객체 배열(String[], Integer[], etc.) 모두 정렬할 수 있다.정렬 방식원시 타입 배열의 경우, Dual-Pivot Quicksort 객체 배열의 경우, TimSortCollection.sort()List를 정렬하는데 사용되어 List 인터페이스를 구현한 모든 컬렉션(ArrayList, LinkedList 등)을 정렬할 수 있다.정렬방식TimSort 방식으로 정렬을 하는데 TimSort를 정렬에 Arrays.sort()..

    [CS] 멀티 프로세스 (Multi Process) 멀티 스레드 (Multi Thread)

    컴퓨터 성능의 극대화를 위해 병렬처리는 필수적인 요소이다. 병렬 처리를 구현하는 주요 방법으로 멀티 프로세스와 멀티 스레드가 있다. 이 두 가지 방법은 각기 다른 장단점을 가지고 있으며, 상황에 따라 적합한 방법을 선택하는 것이 중요하다. 이번 글에서는 멀티 프로세스와 멀티 스레드의 차이점을 비교하고, 각 방법의 장단점을 살펴본 후 상황에 맞는 적합한 방법을 제안하고자 한다.멀티 프로세스 (Multi Process)멀티 프로세스는 여러 개의 프로세스를 생성하여 병렬로 작업을 수행하는 방식으로 각 프로세스는 독립적인 메모리 공간을 가지 별도의 자원을 사용한다.장점안전성: 각 프로세스는 독립적인 메모리 공간을 가지므로 하나의 프로세스가 비정상적으로 종료되더라도 다른 프로세스에 영향을 미치지 않는다.병렬성: ..