Home
Slowly but Surely
Cancel

도커 컴포즈로 그라파나+프로메테우스 실행시키기(1/2)

프로젝트 진행 중 서버 모니터링 환경을 구축하게 되어 프로메테우스와 그라파나를 도커 컴포즈를 사용해서 도커라이징 한 경험을 공유하고자합니다. 준비 사항 우선, 스프링 부트 프로젝트에 아래 의존성을 추가해줍니다. implementation 'org.springframework.boot:spring-boot-starter-actuator' imple...

[LeetCode] valid-palindrome

문제 링크 valid palindrome 문제 설명 입력으로 주어지는 문자열에서 공백과 따옴표를 제거하고, 대문자인 경우 모두 소문자로 변경합니다. 그리고 양 끝이 다를 경우 False, 모두 같을 경우 True를 반환하는 문제입니다. 그리고 입력 문자열에는 영어와 숫자가 포함됩니다. 코드 class Solution: def isP...

레디스를 사용해 선착순 요청 처리하기

개인적으로 Redis를 잘 사용하게 되면 서비스의 읽기 성능을 개선할 수 있을 것 같아서 공부를 하던 중, 선착순 이벤트와 같은 경우 Redis의 분산락을 활용해서 처리하는 것이 가능하다는 생각이 들어 공유하게 된 게시글입니다. 분산락 예를 들어 100장의 쿠폰이 선착순으로 특정 시간에 구매할 수 있다고 했을 때, 100명 이상이 동시에 구매를 ...

여러 요청에 대해 비동기적으로 처리해보기

AS-IS 전에 작성했던 챗 GPT의 API를 사용해서 이력서 내용에 개선할만한 점이 있는지에 대해 조언을 받는 서비스를 개발 중에 있습니다. 현재 사용자에 대한 요청 폼이 아래와 같이 되어있습니다. 검토 받길 원하는 내용을 하나만 받아 요청을 처리하고 있는 것입니다. 그러나 만약 검토를 받고싶은 분야가 여러가지일 경우 같은 행위를 여러번 ...

도메인 설계에 대한 고민

제가 첫 프로젝트인 퍼디를 개발하면서 고민했던 도메인 설계에 대한 내용을 공유하고자합니다. 퍼디는 전문가 기반 질의응답 서비스입니다. 프로젝트 설명은 여기에서 확인할 수 있습니다. AS-IS 프로젝트 초기 단계에서 “퍼디”의 핵심 기능 중 하나인 “전문가” 기능에 대해 고민하게 되었습니다. “전문가”는 일반 사용자와 다르게 특정 조건을 만족한 ...

스프링 부트에서 챗 GPT를 사용해보자

프로젝트 진행중 챗 GPT를 사용해서 이력서 내용 중 개선할만한 점이 있는지 검토를 받기 위해 OPEN AI의 외부 API를 사용했던 점을 공유하려 합니다. 준비 사항 챗 GPT를 사용하기 위해 외부 라이브러리중, 가장 별이 많은 아래 라이브러리를 사용했습니다. https://github.com/TheoKanning/openai-java 저는 ...

url 변수 동적으로 받을 수 있도록 개선하기

미션으로 스프링과 유사한 역할을 하는 MVC 프레임워크를 구현하던 중, 기존의 매핑 URL에 대해서 고정적인 위치에서 url 변수를 얻어오던 것을 위치에 상관 없이 동적으로 관리할 수 있도록 개선한 점을 공유하고자합니다. AS-IS 문제가 된 예제 코드 Rq 클래스의 메서드는 다음과 같습니다. public String getPathParam(St...

연관 관계를 고려한 N+1 문제 해결하기

제 퍼디 프로젝트 중, N+1 문제가 발생하여 연관관계를 다시 수립하고 N+1 문제를 개선했던 경험을 공유하고자 합니다. 글 이해를 돕기 위해 간략하게 설명하면, Question 테이블은 User 테이블과 다대일(@ManyToOne) 관계를 맺습니다. 이는 하나의 사용자가 여러 질문을 게시할 수 있음을 의미합니다. 또한, Questio...