profile
기록에 성장을
post-thumbnail

Redis의 Read Through 과 Write back 패턴을 활용하여 상품 랭킹 구현

개인 프로젝트로 진행하는 쇼핑몰 프로젝트에서 상품 랭킹 서비스 구현을 Redis의 Write back 패턴을 활용하여 구현한 내용을 정리 해보자 📒 🧐기존 랭킹 구현 상태를 살펴보자 현재 프로젝트에서 사용자가 상품 조회요청을 보내면 Product-service에서

2024년 5월 3일
·
0개의 댓글
·
post-thumbnail

Redis의 Sorted set을 이용한 상품 랭킹 기능 구현

개인 프로젝트로 진행하는 쇼핑몰 프로젝트에서 상품 랭킹 서비스 구현을 Redis의 sorted set을 이용해서 구현한 내용을 정리 해보자 📒 🧐기존 랭킹 구현 상태를 살펴보자 현재 프로젝트에서 사용자가 상품조회를 요청하게 되면 Product-Service 에서

2024년 1월 22일
·
0개의 댓글
·
post-thumbnail

[Effecttive Java] 6장 열거 타입과 애너테이션 - 아이템 34. int 상수 대신 열거 타입을 사용하라

일정 개수의 상수 값을 정의한 다음 그외의 값은 허용하지 않은 타입그렇다면 이런 열거 타입을 왜 사용할까? 열거 타입 이전에 사용 했던 정수 열거 패턴을 살펴보며 이유를 알아보자!타입 안전을 보장할 방법이 없으며, 표현력 또한 좋지 않다.평범한 상수를 나열이기 때문에

2023년 12월 11일
·
0개의 댓글
·
post-thumbnail

[Effective Java] 3장 객체 생성과 파괴 - 아이템 17. 변경 가능성을 최소화하라

불변 클래스란? >불변 클래스란 간단히 말해 그 인스턴스의 내부 값을 수정할 수 없는 클래스다. 자바 플랫폼 라이브러리에도 String, BigInteger, BigDecimal가 여기 속한다.

2023년 11월 10일
·
0개의 댓글
·
post-thumbnail

[DB]Mysql Replication

사내 프로젝트를 진행하면서 고가용성과 성능향상을 위해 DB를 이중화하기로 하였고, 이를 Replication을 사용하기로 결정했습니다! 그렇담 이 Replication은 무엇인가?!간단하게 DB 즉 데이터베이스를 복제하는 행위그렇담 왜 하나의 DB를 사용하면 되지만

2023년 10월 24일
·
0개의 댓글
·
post-thumbnail

[Effective Java] 3장 객체 생성과 파괴 - 아이템 11. equals를 재정의하려거든 hashCode도 재정의하라

equals를 재정의한 클래스는 hashCode도 재정의 해야한다. 그렇지 않는다면 hashCode 일반 규약을 어기게 되어 HashMap이나 HashSet 같은 컬렉션의 원소로 사용할 때 문제를 일으키기 때문이다.equals비교에 사용되는 정보가 변경되지 않다면, 객

2023년 10월 12일
·
0개의 댓글
·
post-thumbnail

[JPA] 영속성 컨테이너

영속성 컨텍스트는 엔티티를 영구 저장 하는 환경 이다. 영속성 컨텍스트는 애플리케이션과 DB 사이에서 객체를 보관하는 가상 DB 역할을 하며, 엔티티 매니저를 통해 엔티티를 저장하거나 조회하면 엔티티 매니저는 영속성 컨텍스트에 엔티티를 보고나하고 관리한다.비영속(new

2023년 10월 6일
·
0개의 댓글
·
post-thumbnail

[Effective Java] 2장 객체 생성과 파괴 - 아이템 9. try-finally보다는 try-with-resources를 사용하라

얼마전에 작성했던 try-with-resources의 대한 내용이 책에서도 나오는것을 보면 많이 사용되는 개념인것 같다. 앞서  try-with-resources 예외 처리여기서 설명했지만 각설하고 다시 정리해보도록 하자자바의 InputStream, OutputStre

2023년 9월 26일
·
0개의 댓글
·
post-thumbnail

[Effective Java] 2장 객체 생성과 파괴 - 아이템 8. finalizer와 cleaner 사용을 피하라

자바에서 두 가지 객체 소멸자인 finalizer과 cleaner를 제공한다. 하지만 이를 사용하는 것은 지양해야한다. 자바 9 에서 finalizer은 deprecated 되었고, clenaner가 대안으로 나왔으나 여전히 예측할 수 없고, 느리며, 불필요 하다.Fi

2023년 9월 21일
·
0개의 댓글
·
post-thumbnail

[Effective Java] 2장 객체 생성과 파괴 - 아이템 7. 다 쓴 객체 참조를 해제하라

C,C++ 와는 다르게 자바에서는 GC(가비지 컬렉터)을 통해 메모리를 회수해 가지만. 그렇다고 메모리 관리를 하지 않아도 된다고 오해해서는 절대 안된다간단한 스택을 구현한 코드이다. 특별한 문제는 없어 보이지만, 이스택을 사용하는 프로그램을 오래 실행하다 보면 가비지

2023년 9월 20일
·
0개의 댓글
·
post-thumbnail

[Effective Java] 2장 객체 생성과 파괴 - 아이템 6. 불필요한 객체 생성을 피하라

문자열 a,b,c는 결국 동일한 "test"라는 문자열을 가지군다. 하지만 실행될때 마다 String 인스턴스를 새로 만들어 버린다. 이렇게 되면 메모리를 할당하기 때문에 낭비가 발생되어 버린다.그렇기 때문에 문자열 리터럴을 사용하여 이러한 메모리 낭비를 줄여야 한다.

2023년 9월 15일
·
0개의 댓글
·
post-thumbnail

[Effective Java] 2장 객체 생성과 파괴 - 아이템 5. 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라

클래스가 하나 이상의 자원에 의존하고, 자원에 따라 동작이 달라지는 클래스에는 정적 유틸리티 클래스나 싱글턴 방식이 적합하지 않다.이 자원들을 클래스가 직접 만들게 해서도 안 된다. 대신 필요한 자원을 생성자에 넘겨주자. 의존 객체 주입이라 하는 이 기법은 클래스의 유

2023년 9월 15일
·
0개의 댓글
·
post-thumbnail

[Effective Java] 2장 객체 생성과 파괴 - 아이템 4. 인스턴스화를 막으려거든 private 생성자를 사용하라

정적 메서드와 정직 필드만을 담은 클래스를 만들고 싶을 때가 있다. 예를 들어 java.lang.Math, java.util.Arrays 처럼 기본 타입 값이나 배열 관련 메서드들을 모아 놓을 수 있다. 혹은 java.util.Collections처럼 특정 인터페이스를

2023년 9월 14일
·
0개의 댓글
·
post-thumbnail

[Effective Java] 2장 객체 생성과 파괴 - 아이템 3. private 생성자나 열거 타입으로 싱글턴임을 보증하라

싱글턴이란 인스턴스를 오직 하나만 생성할 수 있는 클래스를 말한다. 싱글턴의 전형적인 예로는 함수와 같은 무상태 객체, 설계상 유일한 시스템 컴포넌트를 말한다. 하지만 싱글턴 클래스는 타입을 인터페이스로 정의하고 그것을 구현체로 정의한 것이 아니라면 테스트하기 어려워질

2023년 9월 14일
·
0개의 댓글
·
post-thumbnail

[Effective Java] 2장 객체 생성과 파괴 - 아이템 2. 생성자에 매개변수가 많다면 빌더를 고려하라

점층적 생성자 패턴 정적 팩터리와 생성자에는 선택적 매개변수의 수가 많을 때 대응하기가 어렵다. 이럴 때 점증적 생성자 패턴을 사용할 수 있다. 하지만 매개변수 개수가 많아지면 클라이언트 코드를 작성하거나 읽기가 매우 어렵다. 자바 빈즈 패턴 자바빈즈 패턴은 매개

2023년 9월 13일
·
0개의 댓글
·
post-thumbnail

[Java] try-with-resources 예외 처리

프로젝트를 진행하면서 요약하자면 파일 다운로드 하는기능을 만들다가 오류가 발생했는데 디버깅 하기가 쉽지 않았다 그저 close()에서 오류가 발생했다고만 나오고 자세히 기술되어 나오지 않았기 때문이다. 대략적인 코드이다그래서 try-with-resources으로 바꾸었

2023년 9월 11일
·
0개의 댓글
·
post-thumbnail

[Effective Java] 2장 객체 생성과 파괴 - 아이템 1. 생성자 대신 정적 팩터리 메소드를 고려하라

개요 일반적으로 클래스의 인스턴스를 얻는 방법으로는 public 생성자다. 일반적인 클래스에선 public 생성자만응로도 충분히 생성이 가능하지만, 생성자 외에 정적 팩터리 메서드를 제공하면 사용자 입장에서 의도한 대로 인스턴스를 만들기 쉬워지는 경우가 종종 있다.

2023년 9월 10일
·
0개의 댓글
·
post-thumbnail

Docker Compose를 이용하여 Kafka를 실행해보자

docker-compose up -d 명령을 통해 컨테이너를 실행한다.

2023년 9월 6일
·
0개의 댓글
·
post-thumbnail

[JS] 함수 표현식과 함수 선언식

일반적인 프로그래밍 언어에서의 함수 선언과 비슷한 형식이다JS 언어의 특징을 이용한 선언 방식호이스팅이란 코드 구현 위치와 관계없이 자바스크립트 해석시 맨 위로 끌어 올려지는 현상을 말한다.예를 들어보자실행을 한다면 자바스크립트는 호이스팅에 의해 아래와 같이 인식할 것

2023년 9월 4일
·
0개의 댓글
·
post-thumbnail

Kafka Cluster를 구성해 보자.

kafka 설치 폴더 아래 config 폴더에 접속하여 server.properties 파일을 수정 및 복사한다.broker.id, lesteners, log.dirs을 수정한다kafka의 설치된 폴더로 이동한다zookeeper-server-start bat 파일을 이

2023년 8월 31일
·
0개의 댓글
·