| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
- LV03
- 프로그래머스
- CI/CD
- LV.02
- 포트폴리오
- 일정관리프로젝트
- Redis
- docker
- JPA
- 디자인 패턴
- 이것이 자바다
- 알고리즘
- 데이터 베이스
- Kafka
- S3
- CoffiesVol.02
- 코테
- Java
- jvm
- Join
- LV02
- SQL
- Lv.0
- 일정관리 프로젝트
- 연습문제
- LV01
- GIT
- mysql
- spring boot
- LV0
- Today
- Total
목록전체 글 (205)
코드 저장소.
목차1.Dokcer?2.Docker의 사용이유3.Docker의 아키텍처 1.Dokcer?Docker는 애플리케이션을 컨테이너(container)로 패키징, 배포 및 실행할 수 있게 해주는 오픈 소스 플랫폼입니다. 이 컨테이너는 애플리케이션과 그에 필요한 모든 라이브러리, 의존성, 설정 파일 등을 포함한 일종의 가상 환경을 제공합니다. 이를 통해 애플리케이션이 어떤 환경에서도 일관되게 실행될 수 있도록 해줍니다.2.Docker의 사용이유환경 일관성도커를 사용하면 개발, 테스트, 프로덕션 환경 간의 차이를 최소화할 수 있습니다. 컨테이너는 애플리케이션과 그에 필요한 모든 것을 포함하고 있기 때문에, 어디서 실행하든 동일한 환경에서 동작하게 됩니다. 이는 "로컬에서는 잘 작동했는데, 서버에서는 문제가 발생한다..
목차1.문제 상황2.고안 3.적용 및 결과 1.문제 상황가게 정보를 직접 입력을 하는 것보다는 가게정보를 카카오맵에서 가져와서 정보를 다루는 것이 낫다고 해서 크롤링을 함. 기존의 방식은 사진과 같습니다. 이 방식에서 여러 문제가 있는데 보완을 해 볼점은 다음과 같습니다.한번 작업을 완료를 하는데 시간이 많이 걸림크롤링에서 가게가 중복으로 저장크롤링 작업시 예상치 못하게 작업이 중단된 경우 중단된 곳까지 저장이 됨.2.고안 우선은 현 상황에서의 문제점을 해결하기 위해서 다음과 같은 생각을 해봤습니다. 크롤링 작업 속도가 느리다.Redis를 사용해서 작업 동시에 가게 정보를 캐싱하기.크롤링에 중복으로 저장되는 가게내용크롤링 작업시 미리 csv파일을 만들어서 데이터 백업 겸 중복으로 저장을 하지 않게 1차로..
목차1.문제상황2.분산락?? 3.코드 및 검증 1.문제상황현재 내 프로젝트에서 자유게시글에서 조회수와 좋아요 기능과 가게 댓글에 좋아요 기능에서 게시글과 댓글에 좋아요를 눌렀을 경우 좋아요의 수가 제대로 카운팅이 되지 않는 상황이 발생을 했다. 현재 좋아요의 공통적인 로직은 다음과 같습니다. 좋아요 엔티티에서 좋아요 여부를 확인 -> 데이터가 없으면 좋아요 추가와 좋아요 수 증가-> 데이터가 있으면 좋아요 취소 좋아요 수감소 하지만 이 로직에서의 문제점은 다음과 같습니다. 1. 경쟁조건 여러 사용자가 동시에 같은 게시글이나 댓글에 좋아요를 누르거나 취소할 때, 다음과 같은 문제가 발생할 수 있습니다.중복된 좋아요/싫어요: 이미 좋아요를 누른 사용자가 다시 누르거나, 싫어요를 누른 사용자가 다시 싫어요..
목차1.Redis의 자료구조2.String3.List4.Hashes5.Sets6.Sorted sets 1.Redis의 자료구조Redis는 기본적으로 다야한 형태의 자료구조를 제공을 하고 있다. Redis의 자료구조는 다음과 같습니다.Strings : Vinary-safe한 기본적인 key-value 구조Lists : String element의 모음, 순서는 삽입된 순서를 유지하며 기본적인 자료구로 Linked List를 사용Sets : 유일한 값들의 모임인 자료구조, 순서는 유지되지 않음Sorted sets : Sets 자료구조에 score라는 값을 추가로 두어 해당 값을 기준으로 순서를 유지Hahses : 내부에 key-value 구조를 하나더 가지는 Reids 자료구조Bit arrays(bitMap..
목차1.무중단 배포?2.무중단 배포의 필요성?3.무중단 배포 전략 1.무중단 배포?무중단 배포는 말 그대로 서비스가 중단되지 않은 상태로 새로운 버전을 배포를 하는 방식을 말합니다. 그리고 무중단 배포를 위해서는 최소 서버가 2대 이상은 필요로 합니다. 2.무중단 배포의 필요성?기존에 서버가 1대만 운영이 된다고 가정을 합시다. 기존에 운영되고 있는 서비스1이 있고 새로운 기능이 추가된 서비스2가 있습니다. 서비스2를 배포를 하려면 서버가 1대이고 포트번호가 같으므로 기존의 서비스1을 중단을 하고 서비스2를 빌드후 재배포를 해야 합니다. 이러다 보면 사용자 입장에서는 서버가 배포가 되는 동안 사용을 할 수 없는 시간이 있는데 이것을 다운타임이라고 합니다. 무중단 배포를 사용을 하면 이러한 다운타임을 줄일..
목차1.Redis keys -> Scan2.코드 적용 1.Redis keys -> ScanSpring Data Redis에서 KEYS 명령어는 Redis에 있는 전체 키 목록을 가져옵니다. 하지만 KEYS는 몇가지의 문제점을 가지고 있습니다. 우선 KEYS의 문제점은 다음과 같습니다. 속도 저하 문제KEYS는 Redis에 있는 모든 key를 찾는 방식입니다. 키의 갯수가 많아지면 속도 저하에 문제가 생길 수 있습니다.블로킹KEYS의 경우에는 실행을 하는 동안에는 다른 요청을 할 수가 없기 때문에 성능에도 문제가 생길 수 있습니다.그럼 이러한 문제점을 해결을 하기 위해서 찾아본 것이 Redis에 SCAN이라는 명령어가 있어서 사용을 하게 되었습니다. Scan의 설명과 특징은 다음과 같습니다.설명:Scan명..