SERIES

취업도 못해본 개발자의 우당탕탕 실서비스 개발 및 운영 이야기

8 Posts·Last updated on June 07, 2024

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

February 26, 2024

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


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

February 27, 2024

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


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

February 28, 2024

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


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

February 29, 2024

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


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

March 01, 2024

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


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

March 15, 2024

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


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

March 15, 2024

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


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

June 07, 2024

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