자바 및 spring boot
-
메세지 큐 비동기자바 및 spring boot 2024. 6. 20. 13:28
https://velog.io/@choidongkuen/%EC%84%9C%EB%B2%84-%EB%A9%94%EC%84%B8%EC%A7%80-%ED%81%90Message-Queue-%EC%9D%84-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90 [서버] 메세지 큐(Message Queue) 을 알아보자안녕하세요 오늘은 메세지 큐(Message Queue) 에 대해 전반적인 이해와 대표적인 종류을 알아보겠습니다.메세지 큐 를 본격적으로 알아보기 전에 메세지 지향 미들웨어(MOM) 에 대해 알아보겠습니다.velog.iohttps://dongwooklee96.github.io/post/2021/03/29/%EB%A9%94%EC%8B%9C%EC%A7%80-%ED%81%90%EB%A5%BC-%..
-
쓰레드 풀 설정 및 크기 구하는 법자바 및 spring boot 2024. 6. 18. 21:42
https://medium.com/@10x.developer.kr/%EC%8A%A4%EB%A0%88%EB%93%9C-%ED%92%80%EC%9D%98-%EC%A0%81%EC%A0%88%ED%95%9C-%ED%81%AC%EA%B8%B0%EB%A5%BC-%EA%B5%AC%ED%95%98%EB%8A%94-%ED%95%A9%EB%A6%AC%EC%A0%81%EC%9D%B8-%EB%B0%A9%EB%B2%95-7af84b615623 스레드 풀의 적절한 크기를 구하는 합리적인 방법안녕하세요! 10배 더 뛰어난 개발자가 되는 법, 10x 개발자 입니다.medium.com스레드 풀의 크기가 50 이고 평균 요청 처리 시간이 한 요청에 100 ms 라면 이 스레드 풀 크기로 우리가 1초 당 처리할 수 있는 요청 수 는 대략..
-
대용량 트래픽 처리자바 및 spring boot 2024. 6. 18. 20:56
https://www.nextree.io/seupeuring-daeyongryang-teuraepig-ceori/ 스프링 대용량 트래픽 처리#0. 대용량 트래픽 처리의 필요성 * 웹 서비스를 다루는데 있어 트래픽을 처리하는 구조를 설계하고 적용하는 것은 개발자의 필수 역량이다. 특히 서비스의 규모가 커질 수록 개발자가 의도한 대www.nextree.iohttps://medium.com/coupang-engineering/%EB%8C%80%EC%9A%A9%EB%9F%89-%ED%8A%B8%EB%9E%98%ED%94%BD-%EC%B2%98%EB%A6%AC%EB%A5%BC-%EC%9C%84%ED%95%9C-%EC%BF%A0%ED%8C%A1%EC%9D%98-%EB%B0%B1%EC%97%94%EB%93%9C-%E..
-
성능 최적화 기법 (동기화 반대)자바 및 spring boot 2024. 6. 2. 16:08
`synchronized` 키워드는 자바에서 스레드 동기화를 통해 안전한 공유 리소스 접근을 보장하는데 사용됩니다. 그 반대로, 스레드 간의 동기화를 피하고 성능을 최적화하기 위해 몇 가지 기법이 존재합니다. 동기화의 반대 개념을 구현하는 방법들을 살펴보겠습니다: ### 1. **비동기 프로그래밍** 비동기 프로그래밍은 특정 작업이 완료되기를 기다리지 않고 즉시 다음 작업을 수행할 수 있도록 합니다. 이는 동기화 오버헤드를 피하는 방법 중 하나입니다. ### 2. **스레드 로컬 변수 (ThreadLocal)** 각 스레드마다 별도의 인스턴스를 제공하여, 공유 리소스를 피하고 데이터 일관성을 보장할 수 있습니다. ```java public class ThreadLocalExample { private s..
-
Asynchronous 비동기자바 및 spring boot 2024. 6. 2. 16:07
비동기 프로그래밍(Asynchronous Programming)은 작업이 완료될 때까지 기다리지 않고 다른 작업을 계속 수행할 수 있게 하는 프로그래밍 방식입니다. 이는 동시성 문제를 해결하고, 시스템의 응답성을 높이며, I/O 작업을 효율적으로 처리하는 데 유용합니다. 비동기 프로그래밍의 주요 개념과 이를 구현하는 방법에 대해 자세히 설명하겠습니다. ### 주요 개념 1. **비동기 작업**: 비동기 작업은 시작된 후 즉시 반환되어 호출 스레드가 다른 작업을 계속할 수 있게 합니다. 작업이 완료되면 콜백 함수, 이벤트, 또는 미래(future) 객체 등을 통해 결과를 처리합니다. 2. **콜백(callback)**: 작업이 완료된 후 실행될 함수를 말합니다. 비동기 작업이 완료되면 시스템은 이 함수를 ..
-
synchronized 동기화자바 및 spring boot 2024. 6. 2. 16:01
`synchronized`는 Java에서 멀티스레딩 환경에서 동기화(synchronization)를 위해 사용하는 키워드입니다. 이는 특정 코드 블록이나 메서드가 한 번에 하나의 스레드만 접근할 수 있도록 제한하여, 여러 스레드가 동시에 접근할 때 발생할 수 있는 데이터 불일치 문제를 방지합니다. ### 기본 사용법 `synchronized`는 주로 두 가지 방식으로 사용됩니다: 블록 수준 동기화와 메서드 수준 동기화입니다. 1. **블록 수준 동기화**: 특정 객체를 대상으로 동기화 블록을 정의합니다. 이 경우 해당 블록 내의 코드가 실행될 때, 지정된 객체에 대한 잠금을 획득한 스레드만 접근할 수 있습니다. ```java public class Counter { private int count = 0..