There are 17 posts.

NamedLock은 락으로 사용하기에 적절하지 않아! - 1편 Lock

October 12, 2024

1편 Lock에서는 NamedLock에서 겪은 문제를 말씀드리기 전 사전 지식이 되는 Lock에 대해 설명하도록 하겠습니다. Lock이란? 여러분은 락에 대해서 자세하게 알고 계신가요? Lock은 사전에 나오는 것 처럼 잠금이라고 할 수 있습니다. 그럼 소프트웨어 즉, 컴퓨터에서의 잠금은 무엇을 의미하는 것일까요? 우선 잠금을 알아보기 전, 컴퓨터에서 …


[OMG-8] 일일 캐릭터 조회 랭킹 Redis Sorted Set으로 개선하기

June 07, 2024

1. 랭킹 서비스에 대한 이해 1.1 랭킹 서비스 개선 전 플로우 저번에는 일일 캐릭터 조회 랭킹 서비스를 위 그림과 같이 구성하여 진행했습니다. 아래에 다시 정리해보자면 클라이언트가 랭킹 데이터를 요청합니다. SpringBoot 서버에서 JPQL을 이용하여 랭킹 쿼리를 날립니다. 쿼리를 통해 조회된 데이터들이 클라이언트에게 전달됩니다. 랭킹 서비스를 …


중심 좌표로부터 특정 거리에 속하는 데이터 불러오기

May 18, 2024

중심 좌표로부터 특정 거리에 속하는 데이터 불러오기 1. 기능 저희 프로젝트에서는 위 사진처럼 사용자의 실시간 좌표 또는 특정 좌표를 받아서 해당 좌표를 기준으로 특정 거리에 속하는 게스트 모집(경기) 글을 불러와야합니다. 좌표를 이용하여 특정 거리에 속하는 게스트 모집글을 불러오는 방법은 아래와 같이 직각삼각형과 피타고라스의 정리를 이용하면 됩니다. 1…


[OMG-7] 일일 캐릭터 조회 랭킹 구현하기

March 15, 2024

저번 글까지는 클라이언트가 게임을 선택하고 그 게임에 맞는 Input 값을 입력하면 캐릭터가 조회되며 캐릭터에 대한 상세 정보를 보여주는 기능을 만들었었습니다. 이번에는 사용자들에게 조금 더 재미 요소를 추가하고자 하루동안 검색된 캐릭터들의 횟수를 구하여 메인페이지 조회시 랭킹을 보여주려고 합니다. 랭킹 기능 아키텍처 현재까지 구현된 캐릭터 조회 기능만 …


[OMG-6] 나 백엔드인데 프론트(?)도 할 수 있다.

March 15, 2024

우선 MVP를 먼저 만들어서 1차 배포를 하려고 합니다. 백엔드의 최소 기능은 벌써 구현이 되었고, 이제 프론트엔드를 구현해보려고 합니다. 기술 선택 사실 처음에는 타임리프를 이용해서 처리하려고 하였으나, 아무래도 Single Page Application 느낌을 내려면 돔 요소를 직접 추가하고 삭제하면서 많은 코드 작성과 생산성에 있어서 좋지 못하다고 …


[OMG-5] dev 인프라 환경 ci/cd 구축하기

March 01, 2024

일전에 기획 단계의 글에서 QA를 위해 dev 환경과 prod 환경을 구분짓기로 결정했었다고 했습니다. 아직 운영 단계까지 가려면 시간이 걸리기 때문에 prod 환경은 나중에 만들기로하고 우선 테스트를 위한 dev 환경을 구축해보도록 하겠습니다. Synology NAS의 Docker로 Ubuntu 구축하기 아무래도 dev환경은 테스트 환경이고, 개인 프로…


[OMG-4] 외부로 API 요청시 계속 Null이 나와요!

February 29, 2024

문제 Spring 서버에서 다른 게임사 서버로 API 요청시, 응답 값을 모두 null로 반환하는 문제가 발생했습니다. GameService.java MapleStoryMRestTemplate.java CharacterBasic.java 위는 API를 요청하는 코드와 응답 객체이며 getCharacterBasic에도 응답 값에 대한 설정으로 Charact…


[OMG-3] API 요청 흐름에 대한 기능 설계 및 구현

February 28, 2024

안녕하세요. 저번 글에서는 프로젝트에서 구현할 기능들과 간단한 서비스 흐름도를 그려보며 설계를 해보았습니다. 이번 글에서는 프로젝트의 핵심 주요 기능에 대한 흐름을 설계하여 그림으로 좀 더 자세하게 표현하고 설명해보고자 합니다. 우선 OMG 프로젝트의 기본 기능 흐름도는 아래와 같습니다. 기본 기능 흐름도 클라이언트가 메이플스토리M의 캐릭터 명과 캐릭터…


[OMG-2] 기획자가 되어보자!

February 27, 2024

앞 선 글에서는 이 프로젝트의 기획 배경 및 동기에 대해서 설명드렸습니다. 이 글에서는 앞으로 어떤 기능을 만들고, 서비스 명과 설계는 어떤식으로 할지에 대한 것을 적어보고자 합니다. 서비스 명 우선 서비스 명은 간단하면서 눈에 띄어야하고 url 검색이 쉬운 짧은 이름이었으면 좋겠다고 생각했습니다. 처음엔 메이플스토리M만 생각해서 MM(MapleStory…


[OMG-1] 나 취업도 못했는데 실서비스 운영 한다!

February 26, 2024

제목을 보고 흥미로운 생각에 클릭해서 들어오신 분들, 우선 사과드립니다. 🙏 사실 실서비스를 운영하는 것은 아니고, 실서비스를 운영하기 위한 개인 프로젝트를 진행해보면서 그 기록들을 남겨보면 재밌을 것 같아 그 기록을 시작해보려고 합니다. 기획 배경 저는 개발을 시작한 순간부터 언젠간 꼭 내가 만든 프로젝트를 실서비스 해봐야지! 라는 생각이 있었습니다.…