Cache를 적용하여 API 기능을 개선해보자 (2) Redis repository와 Redis Template
·
🌱 Spring
이 글은 당근마켓을 모티브로 한 프로젝트 Secondhand 구현시 이슈 사항을 정리한 글입니다. 2023.11.24 - [🌱 Spring] - Redis Cache를 적용하여 Read API 기능을 개선해보자 (1) 이론학습 앞서 기본적으로 Cache에 대해서 학습하고 어노테이션을 적용해서 캐시 저장을 해보았는데요. 여기까지 학습과정 중에 아쉬웠던 점은 캐시 추상화 어노테이션을 사용하는 것만으로는 팀원과 구현해보기로 한 `write-back` 을 구현하기 힘들었다는 것입니다. `write-through`는 이런 방식으로 구현할 수 있습니다. @Service public class MyService { @Cacheable(value = "myCache", key = "#id") public String ..
Cache를 적용하여 Read API 기능을 개선해보자 (1) 이론학습
·
🌱 Spring
이 글은 당근마켓을 모티브로 한 프로젝트 Secondhand 구현시 이슈 사항을 정리한 글입니다. 사실 처음 시작은 조회수 구현을 어떻게 효율적으로 할 수 있을까에서 출발하였습니다. [조회수 관련해서 참고한 블로그 글] 세션별로 중복되지 않게 일정 시간동안 1회씩 카운팅하고 싶은 욕심이었습니다. 그런데 학습을 하다보니 레디스 Cache를 읽기 API에서도 사용해보고 싶더라고요🔥 API 성능을 개선해본 뒤 차근차근 조회수도 개선해보도록 하겠습니다. Cache에 대하여 캐시 Cache는 자주 사용하는 연산에 대하여 속도가 빠른 임시 공간에 저장해두어 애플리케이션 연산 속도를 높일 수 있습니다. 애플리케이션 연산 속도는 DB I/O작업을 얼마나 줄이느냐에 비례하는데요. 캐시를 사용해서 DB는 물론, 어플리케이..
`@Cachable` 사용시 SpelEvaluationException 발생
·
🪲 bugs
발생 상황 Spring data Redis 의존성 주입 후, @Cachable 적용하여 테스트하다가 다음의 에러를 만났습니다. 2023-09-18 10:44:26.783 ERROR 7339 --- [nio-8080-exec-4] c.t.secondhand.global.dto.ErrorResponse : EL1030E: The operator 'SUBTRACT' is not supported between objects of type 'java.lang.Long' and 'null' org.springframework.expression.spel.SpelEvaluationException: EL1030E: The operator 'SUBTRACT' is not supported between objects..
컴퓨터의 구조
·
👩🏻‍💻 Computer Science
🤔 컴퓨터의 구조는 왜 알아야 하는 걸까? 1. 문제 해결 능력을 기를 수 있다. 문제가 생겼을 때 거리낌없이 컴퓨터 내부를 들여다볼 수 있어야 한다. 컴퓨터를 미지의 대상으로서 두려워하지 말고, 내려다보며 코딩하자. 2. 성능, 비용, 용량을 비교하며 프로그래밍을 할 수 있다. 결국 좋은 프로그래밍이란 '비용'에 대한 이야기를 빼놓을 수 없다. 최소의 비용으로 최선의 결과를 추구해야 한다. 컴퓨터의 구조 컴퓨터의 구조는 컴퓨터가 이해하는 정보, 컴퓨터의 핵심 (물리적)부품으로 나뉜다. 컴퓨터가 이해하는 정보 데이터 명령어 컴퓨터의 핵심 부품 CPU 메모리 보조기억장치 / 입출력장치 컴퓨터가 이해하는 정보 데이터 정적인 정보. 컴퓨터와 주고받는 혹은 내부에 저장된 정보를 [ic]데이터[/ic]라 통칭하기..