일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Java
- GIT
- spring boot
- 일정관리 프로젝트
- JPA
- 연습문제
- 배열
- SQL
- 데이터 베이스
- Redis
- CoffiesVol.02
- 코테
- Lv.0
- 포트폴리오
- Til
- 일정관리프로젝트
- Join
- 이것이 자바다
- 알고리즘
- S3
- LV02
- LV03
- LV.02
- 디자인 패턴
- LV01
- 프로그래머스
- LV0
- mysql
- docker
- LV1
- Today
- Total
목록포폴 (33)
코드 저장소.
목차1. 멀티모듈을 도입한 이유?2.멀티모듈의 특징3.프로젝트에 적용할 모듈 구조4. 각 모듈의 역할 기술5. 의존성 환경과 헥사고날 구조 1. 멀티모듈을 도입한 이유?이번 프로젝트에서는 단일 구조(Monolthic)이아닌 멀티모듈의 구조로 진행을 하려고 한다.기존의 프로젝트에서는 모놀리식구조로 프로젝트를 진행을 하다보니깐 여러문제점이 있었는데 그것은 다음과 같았다.패키지끼리 의존성이 강해서 하나의 수정을 잘못하면 다른곳에서 에러가 속출하는 점시간이 지날수록 기능이 추가되면 무거워진다는 점.간략하게 이야기를 하면 각 패키지의 레이어간의 의존성이 강해져서 시간이 지날수록 코드의 유지보수가 점점 어려워진다는 점이다. 이러한 단점을 해결을 하기 위해서 멀티모듈을 도입을 해봤습니다.2.멀티모듈의 특징그럼 멀티모..
목차1. 문제 상황2.해결책 1. 문제 상황일정 프로젝트를 진행을 하면서 아래와 같은 경고 문구가 나왔다.2025-01-27 18:15:42 [http-nio-8082-exec-2] [f88939bd-064c-4a9f-916c-14a228ece179] [] WARN o.s.d.w.c.SpringDataJacksonConfiguration$PageModule$WarningLoggingModifier - Serializing PageImpl instances as-is is not supported, meaning that there is no guarantee about the stability of the resulting JSON structure! For a stable JSON structure,..

목차1.문제 상황2.고안 3.적용 및 결과 1.문제 상황가게 정보를 직접 입력을 하는 것보다는 가게정보를 카카오맵에서 가져와서 정보를 다루는 것이 낫다고 해서 크롤링을 함. 기존의 방식은 사진과 같습니다. 이 방식에서 여러 문제가 있는데 보완을 해 볼점은 다음과 같습니다.한번 작업을 완료를 하는데 시간이 많이 걸림크롤링에서 가게가 중복으로 저장크롤링 작업시 예상치 못하게 작업이 중단된 경우 중단된 곳까지 저장이 됨.2.고안 우선은 현 상황에서의 문제점을 해결하기 위해서 다음과 같은 생각을 해봤습니다. 크롤링 작업 속도가 느리다.Redis를 사용해서 작업 동시에 가게 정보를 캐싱하기.크롤링에 중복으로 저장되는 가게내용크롤링 작업시 미리 csv파일을 만들어서 데이터 백업 겸 중복으로 저장을 하지 않게 1차로..

목차1.문제상황2.분산락?? 3.코드 및 검증 1.문제상황현재 내 프로젝트에서 자유게시글에서 조회수와 좋아요 기능과 가게 댓글에 좋아요 기능에서 게시글과 댓글에 좋아요를 눌렀을 경우 좋아요의 수가 제대로 카운팅이 되지 않는 상황이 발생을 했다. 현재 좋아요의 공통적인 로직은 다음과 같습니다. 좋아요 엔티티에서 좋아요 여부를 확인 -> 데이터가 없으면 좋아요 추가와 좋아요 수 증가-> 데이터가 있으면 좋아요 취소 좋아요 수감소 하지만 이 로직에서의 문제점은 다음과 같습니다. 1. 경쟁조건 여러 사용자가 동시에 같은 게시글이나 댓글에 좋아요를 누르거나 취소할 때, 다음과 같은 문제가 발생할 수 있습니다.중복된 좋아요/싫어요: 이미 좋아요를 누른 사용자가 다시 누르거나, 싫어요를 누른 사용자가 다시 싫어요..
목차1.Redis keys -> Scan2.코드 적용 1.Redis keys -> ScanSpring Data Redis에서 KEYS 명령어는 Redis에 있는 전체 키 목록을 가져옵니다. 하지만 KEYS는 몇가지의 문제점을 가지고 있습니다. 우선 KEYS의 문제점은 다음과 같습니다. 속도 저하 문제KEYS는 Redis에 있는 모든 key를 찾는 방식입니다. 키의 갯수가 많아지면 속도 저하에 문제가 생길 수 있습니다.블로킹KEYS의 경우에는 실행을 하는 동안에는 다른 요청을 할 수가 없기 때문에 성능에도 문제가 생길 수 있습니다.그럼 이러한 문제점을 해결을 하기 위해서 찾아본 것이 Redis에 SCAN이라는 명령어가 있어서 사용을 하게 되었습니다. Scan의 설명과 특징은 다음과 같습니다.설명:Scan명..
목차1.문제상황 및 해결 방안 2.적용 1.문제상황 및 해결 방안만들고 있는 기능 중에 회원의 위치를 기준으로 해서 가까운 거리에 있는 카페를 카카오맵으로 보여주는 기능에서 서버에서 카카오맵api를 사용해서 가게 정보를 가져오는데 가끔씩 연결이 끊기는 문제가 생겨서 데이터를 못가져오는 경우가 간간히 발생. 그래서 스프링에서 제공을 하는 @Retryable을 사용하면 api의 재시도와 예외처리를 설정을 할 수 있어서 적용하기로 했습니다. 2.적용2-1.build.gradle에 주입을 한다.implementation 'org.springframework:spring-aspects'implementation 'org.springframework.retry:spring-retry' 2-2.설정 클래스 작성@E..