일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 항해99
- 가상컴퓨팅
- jsp
- spring
- DB
- 99클럽
- 코딩테스트준비
- js
- 99클럽 #코딩테스트준비 #개발자취업 #항해99 #til
- 개발자취업
- 공개키 암호화
- generic class
- dbms
- sql
- mybatis
- 알고리즘
- 암호학
- Java
- Algorithm
- 코딩테스트
- javascript
- 자바의정석
- 자료구조
- 크루스칼
- BFS
- Queue
- til
- JPA
- python
- 코테
- Today
- Total
목록분류 전체보기 (137)
PLOD

주요 내용Redis를 통한 상품 정보 캐싱상품 아이디(Key)를 기반으로 상품 정보를 Redis에 캐싱했습니다.Redis는 인메모리 데이터베이스로, 디스크 기반 DB보다 훨씬 빠른 속도를 제공합니다.캐싱을 통해 반복적인 DB 접근을 줄이고, 응답 시간을 단축했습니다.부하 테스트 환경JMeter를 사용해 10,000명의 동시 사용자를 시뮬레이션했습니다.테스트 조건Thread 개수: 10,000Ramp-up 시간: 30초 (10,000명의 사용자가 30초 동안 점진적으로 접속)Loop Count: 1 (각 사용자가 1번만 요청)접근 페이지: [GET] http://localhost:8082/product-service/product/2성능 비교캐싱 전: DB에서 직접 상품 정보를 조회하는 방식.캐싱 후: R..

이커머스 프로젝트에서 선착순 구매와 같은 대규모 트래픽이 예상되는 서비스를 설계할 때, 동시성 문제와 성능 이슈를 해결하는 것이 핵심입니다. 이 글에서는 Redis를 활용해 동시성 문제를 해결하고, 분산 락을 통해 데이터 정합성을 유지하는 방법을 설명합니다. 또한, MySQL과 Redis를 함께 사용해 재고 관리 시스템을 구현한 사례를 소개합니다.1. 동시성 문제란?동시성 문제는 여러 스레드나 세션이 동일한 데이터를 동시에 접근할 때 발생합니다. 예를 들어, 한 상품의 재고를 여러 사용자가 동시에 수정하려고 할 때, 데이터의 정합성이 깨질 수 있습니다. 이를 해결하기 위해 분산 락(Distributed Lock) 기법을 사용합니다.2. Redis를 활용한 동시성 문제 해결Redis는 분산 락을 구현하기에..

캐싱(Caching)캐시는 데이터나 연산 결과를 임시로 저장하여 나중에 동일한 요청에 빠르게 응답할 수 있는 메모리 또는 저장공간을 의미한다.대규모 트래픽 처리에서 캐시는 반복적으로 요청되는 데이터나 연산을 캐싱하여 서버의 부하를 감소시키고 응답시간을 단축시킨다. → 효율적인 자원 활용 + 높은 확장성 , 높은 성능 제공 RedisRemote Dictionary Storage모든 데이터를 메모리에 저장하고 조회하는 in-memory DBkey-value 구조의 데이터 관리 시스템No-SQL실시간 처리가 요구되는 응용 프로그램에서 사용Redis 장점빠른 I/O 처리레디스는 데이터를 메모리에 저장하여 빠른 읽기와 쓰기 작업을 가능하게 한다캐싱, 세션 저장, 실시간 분석등에서 높은 처리 속도가 요구 되는 ..

MSA작고 독립적으로 배포 가능한 각각의 기능을 하는 서비스들로 구성된 아키텍쳐모놀리식 서비스에서 각각의 비즈니스 로직을 분리하여 개별 프로젝트로 생성한 뒤 가장 앞단에 API Gateway와 같은 분배기를 통해 각 서비스 서버에 요청을 분산하여 관리 애플리케이션을 느슨하게 결합된 서비스의 모임으로 구조화하는 서비스 자향 아키텍쳐서비스는 기능별로 구분서비스의 교체가 쉽다각 서비스의 최적인 개발언어 DB, HW , 소프트웨어 환경을 사용하여 구현각 서비스는 독립적인 배포가 가능MSA 장단점장점서비스별 스케일링 가능서비스별 다른 프레임워크 사용 가능 (서비스 별 독자적 운영)하나의 서비스가 off 되더라도 나머지 동작 가능부분적으로 로직 업데이트 가능단점초기 구성의 난이도시스템이 돌아가지만 특정 서비스가 o..

@PathVariable경로 변수를 표시하기 위해 메서드에 매개변수에 사용된다경로 변수는 중괄호 {id}로 둘러싸인 값을 나타낸다URL 경로에서 변수 값을 추출하여 매개변수에 할당한다경로변수는 값을 반드시 가져야 한다 → 값이 없으면 404에러 출력주로 상세 페이지, 수정, 삭제와 같은 작업에서 리소스 식별자로 사용된다서버에 보내려는 데이터를 URL 경로에 표시할 수 있다. // GET http://localhost:8080/hello/request/star/Robbie/age/95@Controller@RequestMapping("/hello/request")public class RequestController { @GetMapping("/star/{name}/age/{age}") @Resp..