Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

♻️ refactor: Redis 동작 메서드 캡슐화 #10

Merged
merged 7 commits into from
Jan 9, 2025

Conversation

asn6878
Copy link
Member

@asn6878 asn6878 commented Jan 8, 2025

📋 작업 내용

feed-crawler 내 redis-access 의존성 추가

다른 부분과 동일하게 RedisConnection 인스턴스도 의존성 주입방식을 통해 관리하도록 처리 하였습니다.
재사용성이 낮을것으로 생각되어, DatabaseConnection과 달리 RedisConnection은 별도의 인터페이스를 통해 추상화 하지 않았습니다.

애플리케이션 내 RedisConnection 동작 메서드들 구현

사용중이던 Redis 관련 메서드들을 메서드화 하였습니다. 대부분의 메서드 들은 실제 redis 객체에 접근해 사용하는 것과 큰 차이가 없도록 구현하였으나, 몇가지 특이사항 있는 부분들은 아래와 같습니다.

  • scan()
    scan() 메서드는 중복 데이터를 반환할 가능성이 있기에, 매 반복문 마다 필요한 데이터를 찾아 처리해주는 로직을 직접 작성하는 것이 옳다는 판단을 내렸습니다.

  • executePipeline()
    pipeline() 메서드는 ChainableCommander 이라는 객체에 접근해 레디스 명령 함수들을 실행시키는 형태로 동작들을 수행하는데, 이때 ChainableCommander 내 함수들의 목록을 받도록 구현해야 완전한 캡슐화가 가능합니다.
    하지만 이는 제겐 다소 복잡하게 느껴져 ChainableCommander를 매개변수로 전달 해주고, 함수들의 모음인 콜백 함수만 받는 형태로 설계 하였습니다.

  • 그 외 실제 구현체와 차이점
    실제 구현체에서는 대부분의 key값이나 데이터들을 string | number | Buffer 형태로 다양한 타입을 지원합니다. 하지만 본 PR의 커스텀 구현체에서 Buffer는 사용할일이 없다고 판단해 별도로 지원하지 않도록 하였습니다.

@asn6878 asn6878 added the 🔨 Refactor 리팩토링 (구조 변경) label Jan 8, 2025
@asn6878 asn6878 self-assigned this Jan 8, 2025
@asn6878 asn6878 changed the title ♻️ refactor: sismember, zincrby 추가 ♻️ refactor: Redis 동작 메서드 캡슐화 Jan 8, 2025
Copy link
Collaborator

@Jo-Minseok Jo-Minseok left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

어이고;; 이렇게 보니 Redis 참 많이 썼네요 ㅋㅋ ㅠㅠ 고생 많으셨어요! LGTM!

Copy link
Collaborator

@CodeVac513 CodeVac513 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!
민석님 말씀하신대로 우리 Redis 기능을 생각보다 많이 썼네요.
수고 많으셨습니다!

@asn6878 asn6878 merged commit 93d781e into main Jan 9, 2025
1 check passed
@asn6878 asn6878 deleted the refactor/redis-encapsulation branch January 9, 2025 07:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🔨 Refactor 리팩토링 (구조 변경)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants