2024. 2. 20. 20:52ㆍTIL
오늘 작업한 내용
1. 테스트코드 작성 및 DB연결
2. RedisLock 공부
1. 테스트코드 작성 및 DB연결
동시성 제어를 위한 테스트 코드를 작성한 후 이를 테스트용 DB에 연결하도록 코드를 작성하였다.
이번 테스트를 위해 사용한 DB는 h2 데이터베이스
테스트용으로 걸맞는 가벼운 DB이다.
기록용으로 Yml 파일을 남겨놓음
spring:
data:
redis:
host: 3.39.34.103
port: 6379
jpa:
hibernate:
ddl-auto: update
properties:
hibernate:
format_sql: true
highlight_sql: true
use_sql_comments: true
default_batch_fetch_size: 500
logging:
level:
org:
hibernate:
SQL: debug
orm:
jdbc:
bind: trace
springframework:
security: debug
auth:
jwt:
issuer: team.sparta.com
secret: ${JWT_SECRET}
accessTokenExpirationHour: 168
---
spring:
config:
activate:
on-profile: test
data:
redis:
host: 3.39.34.103
port: 6379
jpa:
show-sql: true
hibernate:
ddl-auto: create
properties:
hibernate:
format_sql: true
open-in-view: false
h2:
console:
enabled: true # 콘솔을 enable 해야 H2 콘솔에 접근할 수 있다.
path: /h2-console
datasource:
driver-class-name: org.h2.Driver
url: jdbc:h2:tcp://localhost/~/test
username: sa
password:
auth:
jwt:
issuer: team.sparta.com
secret: PO4c8z41Hia5gJG3oeuFJMRYBB4Ws4aZ
accessTokenExpirationHour: 168
위의 작업을 수행하면서 yml 파일의 프로필을 나누는 방법, Redis를 연결하는 방법등을 배웠다.
2. RedisLock 공부
내가 원래 하려던 방식으로는 도커를 설치후 레디스를 설치하는 방식으로 하려했지만
승환님이 ac2를 이용하여 개인서버를 구동시켜서 거기에 도커설치 > 레디스 작동 을 구현하자고 하셨다.
ac2 관련 자료
이후에는 레디스를 이용한 락 부분중 Lettuce와 redisson 2가지가 있고 두 방식의 차이점, 장단점등을 알아본 다음
Lettuce
Redisson
우선 Lettuce는 별도의 타임아웃 코드가 작성되어있지 않으면 락을 점유하고 풀어주지를 않는 오류같은게 발생했을 시 다음 순서에서 락을 점유하려고 무한루프를 도는 오류등이 발생할수도 있다.
그에 따라 Redisson 방식이 추천되고는 하는데 좀더 구현이 쉬운 방식은 Lettuce인것 같다.
하지만 우리가 먼저 구현해볼 방식은 Lettuce 이므로 관련 자료들을 좀더 찾아보았다.
https://velog.io/@guns95/%EB%8F%99%EC%8B%9C%EC%84%B1-%EB%AC%B8%EC%A0%9C-Lettuce-%EC%82%AC%EC%9A%A9
남은 기간으 3일이지만 마지막날에는 과제제출 및 발표시간이 대부분이기에 실질적으로 남은기간은 2일이다.
지금 페이스 대로라면 충분히 완성 가능할것 같다.
'TIL' 카테고리의 다른 글
20240222 (목) 대용량 트래픽 프로젝트 - 동시성 제어 프로젝트 7일차 (0) | 2024.02.22 |
---|---|
20240221 (수) 대용량 트래픽 프로젝트 - 동시성 제어 프로젝트 6일차 (0) | 2024.02.21 |
20240219 (월) 대용량 트래픽 프로젝트 - 동시성 제어 프로젝트 4일차 (0) | 2024.02.19 |
20240216 (금) 대용량 트래픽 프로젝트 - 동시성 제어 프로젝트 3일차 (1) | 2024.02.16 |
20240215 (목) 대용량 트래픽 프로젝트 - 동시성 제어 프로젝트 2일차 (0) | 2024.02.15 |