Closed heemanglee closed 5 months ago
@Minseok-2001 님 궁금한 게 있습니다!
이번에 레디스 설정하는 과정에서 빌드에서 계속 오류가 터지더라구요.
해결하는 과정에서 깃헙액션에 시크릿 값으로 ISSURE_URI
값이 등록되어 있더라구요. 근데 ci.yml 보시면 ${ secrets.ISSUER_URI }
로 작성되어 있더군요...? ( ISSUER != ISSURE )
그렇다면 빌드하는 과정에서 env 값을 못 찾아서 오류가 발생해야 했을 것 같은데 왜 정상적으로 빌드가 된 걸까요?? (일단 ISSUER_URI는 제가 방금 추가했습니다!)
@Minseok-2001 @JinseongHwang
민석님, 진성님 안녕하세요! 레디스와 관련하여 질문이 있습니다.
마지막으로 조회된 댓글과 좋아요 시간을 다음과 같이 레디스에 저장하고 있습니다.
sectionId_5: {
"comment": "2024-05-16T18:49:07.631569",
"like": "2024-05-16T18:49:07.633276"
}
sectionId_5에서 '5'는 section 엔티티의 ID 값입니다.
보통은 레디스에 어떠한 형태로 값을 저장하는지 궁금합니다. 위처럼 진행해도 문제가 없을까요?
@w1shope
정답이 없긴 한데요, String 타입으로 저장할 계획이시라면
key: last_commented_at:section:5
/ value: 2024-05-16T18:49:07.631569
key: last_liked_at:section:5
/ value: 2024-05-16T18:49:07.633276
요런 구조는 어떨까요? 다만 value에 저장되는 시각이 utc0 기준인지 한국 기준인지 그런건 명확하게 정해야 할 듯 합니다
NIT: 지금 코드에서 redisTemplate을 직접 다루고 있는데, Redis에 접근하는 코드가 service에 private 메서드로 섞여있어요. Spring Data JPA를 쓰면서 Repository layer를 쉽게 만들 수 있었고 역할과 책임이 명확해졌어요. Redis에 접근하는 것 또한 Repository layer라고 생각하고 다른 계층으로 구분해보는게 어떨까요?
https://docs.spring.io/spring-data/redis/reference/redis/redis-repositories/usage.html 여기 나와있는 예제를 보시면 마치 JPA 처럼 Redis를 쓰는 방법을 알 수 있어요. 이미 선배 개발자들이 다 만들어 놓은걸 저희는 잘 가져다 쓰면 됩..
@w1shope
정답이 없긴 한데요, String 타입으로 저장할 계획이시라면
key:
last_commented_at:section:5
/ value:2024-05-16T18:49:07.631569
key:last_liked_at:section:5
/ value:2024-05-16T18:49:07.633276
요런 구조는 어떨까요? 다만 value에 저장되는 시각이 utc0 기준인지 한국 기준인지 그런건 명확하게 정해야 할 듯 합니다
생각해보니까 저희 프로젝트가 UTC 시간대를 사용하고 있었네요! UTC로 수정하였습니다 ㅎㅎ🙇
NIT: 지금 코드에서 redisTemplate을 직접 다루고 있는데, Redis에 접근하는 코드가 service에 private 메서드로 섞여있어요. Spring Data JPA를 쓰면서 Repository layer를 쉽게 만들 수 있었고 역할과 책임이 명확해졌어요. Redis에 접근하는 것 또한 Repository layer라고 생각하고 다른 계층으로 구분해보는게 어떨까요?
https://docs.spring.io/spring-data/redis/reference/redis/redis-repositories/usage.html 여기 나와있는 예제를 보시면 마치 JPA 처럼 Redis를 쓰는 방법을 알 수 있어요. 이미 선배 개발자들이 다 만들어 놓은걸 저희는 잘 가져다 쓰면 됩..
Crud를 편하게 할 수 있네요...? 다만 redis에 시간이 update가 안돼서 확인을 해보니 반드시 save를 호출해야 하군요... JPA처럼 더티체킹 해주는 줄 알았습니다...!
이번에 레디스 설정하는 과정에서 빌드에서 계속 오류가 터지더라구요. 해결하는 과정에서 깃헙액션에 시크릿 값으로 ISSURE_URI 값이 등록되어 있더라구요. 근데 ci.yml 보시면 ${ secrets.ISSUER_URI } 로 작성되어 있더군요...? ( ISSUER != ISSURE )
그렇다면 빌드하는 과정에서 env 값을 못 찾아서 오류가 발생해야 했을 것 같은데 왜 정상적으로 빌드가 된 걸까요?? (일단 ISSUER_URI는 제가 방금 추가했습니다!)
ci.yml에서는 ./gradlew build -Plocal 으로 Gradle build만 하는데 이떄 아마 컴파일 단계에서는 해당 환경변수가 필요가 없어서 오류가 안나는 것 같네요 ㅎㅎ...!!
빌드 타임에선 소스 코드 컴파일, jar파일 만드는 정도로 알고 있어서 실제로 로컬에서 환경변수 지우고 ./gradlew build -Plocal 치면 정상적으로 잘 되네요!
요건 왜 닫으신건가요?
요건 왜 닫으신건가요?
코드 설계를 다시 했는데 현재 PR과 다른 부분이 많은 것 같아... 다시 올리려고 합니다!
개요
214
변경 사항
테스트
배포 계획