1. 2022년 9월 ~ 2023년 5월 / 방황
- 국비 수료 후 취업, 수습 후 퇴사
- 본격적인 Spring Boot 공부
- 로스트아크 오픈 API로 여러가지 데이터 비교 (Spring Boot + JSP)
7월에 국비교육을 마치고 9월 쯤 4개의 프로젝트(라고 부르기 민망한)를 가지고 운좋게 취업을 빨리하였다.
PHP 기반의 보안 회사의 UI/UX 팀이였는데, 보안 회사라 그런가... 나랑은 좀 안맞았다
새로운 것을 배우고 무언가를 만들고 싶어 개발을 시작했는데 조금 다른 느낌...
그래서 2달의 수습을 마치고 퇴사를 하였다.
그리고 월급으로 인프런에서 김영한 강사님 인강을 다 샀다. 한 100만원 좀 넘었나..?
실력도 많이 오르고 사고방식도 달라지고 지금 2024년인데도 아직까지 반복해서 보고있다.
그러다 12월 7일 로스트아크에서 정식으로 오픈 API가 나왔다.
재밌어서 "오레하 제작 효율" 도 만들어보고
그때 당시 소나벨이 어려워서 하누마탄이 낫지않나 싶어
소나벨 VS 하누마탄 수익 비교도 만들어보고
카오스던전 1바퀴 돌면 얼마나 벌지? 싶어
카오스던전 수익 비교도 만들어보았다.
이렇게 이것 저것 만들어보고 공부도 하면서 스마일게이트에서 알바를 하였다.
게임 데이터 검수 아르바이트로 게임의 장르, 출시일, 회사가 정확한지 검수하는 아르바이트였다.
사람들이 좋아서 재밌게 다녔었다.
알바하면서 만들어본 개인 사이트
Spring Boot 와 JSP를 사용하였다.
2. 2023년 5월 ~ 2023년 7월 / 일단 시작
- 로아투두 개발의 시작 (Spring Boot + 타임리프)
어느날 지하철을 타고 가다가 같이 게임하는 지인이
"볼링님 레이드(숙제) 남은거 뭐있어요?" 라고 물어보았다.
"집에 가서 확인해봐야 할 것같아요."
빈아크라는 사이트로 체크는 하고 있지만, 로컬 PC에 저장하는 방식이다 보니 밖에서 확인할 수가 없었다.
구글 스프레드 시트를 사용하기도 했지만 핸드폰으로 보기 불편했었다
'이거를 그냥 DB에 저장하면 밖에서도 쓸 수 있지않나..?'
그렇게 로아투두 처음 개발을 시작하였다.
처음에 기획이랄 것도 없이 일단 생각나는 대로 만들었다.
이야... 지금 보니 참...
가장 핵심적인 일일 숙제(카오스 던전, 가디언 토벌) 체크와 그걸로 발생하는 예상 수익
예상 수익은 이 전에 심심해서 만들어본 거라 쉽게 적용할 수 있었다.
오른쪽은 예상 수익 내림차순으로 출력하여 골드를 많이 버는 순서대로 볼 수 있게 하였다.
'근데 너무 밋밋한데 캐릭터 사진을 넣을까?'
3. 2023년 7월 ~ 2023년 9월 / 중단과 시도
- 타임리프로는 어렵다... 프론트엔드 개발자를 구하자.
- 구하기 어렵네.. 내가 하자.
만들다보니 페이지가 많은게 아니고 한페이지에서 클릭으로 데이터 호출이 많다보니
기존 타임리프나 JSP로는 어려울꺼 같아 리액트나 뷰를 할 수 있으신 프론트엔드 개발자분을 구하려고 했다.
그런데....
내용 듣고 어려울 꺼 같다고 포기한 사람...
하다가 자기 취업했다고 나간 사람...
하다가 갑자기 잠수 탄 사람...
마음 맞는 팀원 구하기가 참 어렵다...
그래서 결국 내가 리액트를 배웠다. 없으면 뭐.. 내가 해야지
일단 클론코딩 책을 하나 사고 무작정 시작해보았다.
4. 2023년 9월 / 출시
- 개발 : Spring Boot + React(JavaScript) + MySQL
- 배포 : ElasticBeanstalk + Netlify
JavaScript로 useState 덕지덕지 되어있는 프론트와
어떻게 돌아가기는 하는 백엔드로 첫 배포를 하였다.
초기 기능은 로그인 + 캐릭터 불러오기 + 일일 숙제 체크 + 주간숙제 관리 + 캐릭터 순서 변경 정도 였다.
인게임에 휴식게이지라는 기능이 있어 게이지에 따라 예상 수익이 달라져서 퍼센트 바 디자인도 해보고...
홍보를 위해 로스트아크 커뮤니티 사이트에 글을 올렸다.
로스트아크 인벤에 출시글을 올리면 한... 100명은 가입하려나 싶어서 올린 후 반응을 살펴보았다.
2주만에 천명...
기대했던 것보다 훠워워월씬 많은 분들이 가입해주셨다
그 후 남은 기간동안 몰두하여 디자인과 기능을 수정하면서 어느정도 깔끔한 사이트가 완성되었다.
- 방명록 기능으로 버그 제보 받기
- 예상 수익 합 출력
- 주간 숙제 관문 분리 + 메모 기능 추가
5. 2023년 10월 / 퍼블리싱
- 퍼블리셔님 합류
그 당시에 나름 최선으로 디자인이 하여 나쁘지 않다고 생각했는데
한 퍼블리셔분이 디자인을 도와주신다고 연락이 오셨다.
감사한 마음으로 세팅을 도와드리고 작업을 시작하셨다.
이야... 이게 전문가와의 차이구나...
6. 2023년 10월 ~ 2024년 2월 / 계속되는 버그 수정과 개발 권태기
- 처음 하는 서비스 툭하면 나오는 버그...
- 계속되는 기능 개발
- 혼자 개발하면서 생기는 지루함...
와 이렇게나 버그가 많을 줄 몰랐네...
사용자가 많아지면서 계속해서 버그가 튀어나왔다.
그 중 가장 놀랐던게 메모리 부족으로 인한 서버 다운 (관련 링크)
더티체킹으로 업데이트 하던 로직이 데이터가 10만개가 넘어가니까 메모리 부족으로 서버가 재시작되었다.
그래서 벌크업데이트로 변경하였고 아직까지 문제없이 돌아가고 있다.
2024년 현재는 QueryDSL로 변경되었다.
그리고 오타 하나 때문에 로그인이 안되기도 하고...
물론 버그 수정하면서 기능도 추가하였다.
그 중 사람들이 가장 좋아하는 깐부(친구) 기능
로스트아크는 MMORPG로 혼자도 할 수 있지만 사람들과 같이 레이드 도는게 재밌다.
지금과는 다르게 탭으로 했는데... 그 때 사진이 없네...
지금은 수정해서 메인탭에 요약이 보이고, 오른쪽 Dial에서 바로 이동하는 식으로 바꾸었다.
디자인을 변경하였지만 저것도 가시성이 그렇게 좋지 못한다고 생각하여서 현재는 다른 디자인을 개발 중이다.
(2024년 11월 기획 끝, 개발 중인 다른 디자인)
그리고 Redis를 사용해서 좀더 나은 서비스를 만들고 싶었는데
AWS ElastiCache가 너무 비쌋다... ㄷㄷ
그리고 이 당시에 개발 권태기(?)가 살짝 왔다...
이때까지만 해도 거의 혼자서 공부하고 개발하는 생활이 1년이 넘어가고 있으니...
깃허브 잔디도 보면 2023 11월부터 조금씩 줄다가 24년 1월 ~ 4월까지는 거의 없다
7. 2024년 3월 ~ 2024년 6월 / 스타트업 백엔드 인턴과 프론트 공부
- 스타트업 인턴
- 프론트 공부 및 리팩토링: TypeScript + Recoil + React Query
- 프론트엔드 개발자분 합류
이때 스타트업에서 3개월 인턴을 했다.
인턴 하면서 개발에 대한 흥미가 다시한번 올라서 인턴도 하면서 프론트엔드쪽을 전반적으로 리팩토링하였다.
(왜 백엔드 인턴하면서 프론트엔드..? - 회사에서 백엔드하고 집에서 까지 백엔드하면 일하는 기분이라서 취미 느낌으로 프론트...)
그리고 이때 프론트가 useState만으로 되어있는데 진짜 계속 가다간 useState 지옥이 될거같다
최상단에 useState두고 내리고... 내리고... 내리고...
그렇게 여러가지를 찾아보다가 React-Query와 Recoil 그리고 타입스크립트를 쓰기로 하였다.
5~6월은 진짜 미친듯이 했다...
(중간에 Bragh는 회사 깃허브 계정... 점심시간에 한거...)
6월 1일 타입스크립트 버전이 완성되어 기존꺼와 교체하였다.
그리고 6월 12일 인턴하시던 회사 프론트엔드 개발자분이 프론트엔드쪽 도와주신다고 하셨다.
그 뒤로 지금까지 같이하시고 계시고 프론트쪽이 코드도 정리되고 서비스도 많이 안정화 되었다.
8. 2024년 6월 ~ 2024년 9월 / AWS 프리티어 끝, 계속되는 개선
- AWS CI/CD 구축
- 계속되는 기능 개선
1년이 지나고 AWS 프리티어가 끝나면서 본격적으로 서버 비용을 낮춰야했다.
기존 Elastic Beanstalk으로 배포하던 것도 갑자기 CPUrk 100% 문제가 생기rleh gkrh...
이참에 예약인스턴스(RI)로 비용도 낮춰야 하니 VPC부터 하나씩 설정하였다.
VPC -> 서브넷 -> 인터넷 게이트웨이 -> 라우팅 테이블 -> NAT 게이트웨이 (추후 NAT 인스턴스로 교체) -> 엔드포인트 설정
Code Pipeline, ECR, ECS
CI/CD 까지 구축해서 현재는 원클릭으로 배포가 되도록 되어있다.
그리고 현재까지 계속해서 버그를 수정하고 기능을 개선하고 추가하면서 꾸준히 업데이트를 한다.
그 결과 처음 생각과는 많이 다르게 감사하게도 많은 분들이 써주시고 계신다.
심지어 얼마전 오랜만에 인벤에 홍보글 올린날은 4000명 찍는줄...
---- 2024년 11월 추가----
9. 2024년 9월 ~ 2024년 11월 / 새로운 시도 중
로스트아크 전 디렉터님 이셨던 금강선님의 어록 중 좋아하는 말중 하나로
"온라인 게임은 계속해서 말랑말랑한 상태를 유지해야 한다. 노후된 부분을 계속 방치하면 오히려 게임에 악영향을 끼칠 수 있어 시간이 필요할 지라도 고쳐나갈 것이다."
이 말은 개발자한테도 어느정도 맞는 말이라고 생각한다.
기존 지식도 물론 중요하지만 새로운 지식을 계속 받아들이는 것도 필요하다고 생각한다.
그래서 Spring Boot 백엔드 개발 틀을 벗어나는 새로운 것들을 시도해보려고 한다. (물론, 백엔드 리팩토링과 기능 개발도 하면서)
1. 어드민 페이지 개발 (Svelte)
- 1순위로 필요한 서비스지만.... 어차피 백엔드는 혼자라서 굳이 라는 생각도 드는...
- 하지만 운영적으로 혼자서 감당하기 힘들어지면서... 사이트가 더 커지기전에 꼭 만들어야하는 서비스
- Svelte로 간단한 테이블만 만들고 방치 중....
2. 로그 분석 (ElasticSearch)
- 2023년 12월인가 넥토리얼 채용 박람회를 갔다가 인텔리전스랩스 발표를 들었다.
- 사용자들의 로그를 바탕으로 분석하고 새로운 서비스를 만드는 일이 흥미로웠다.
- 그래서 로아투두에도 적용해보고자 단순히 DB에 저장하는 서비스를 일단 만들었는데...
일주일도 안되서 10만건이 쌓이게 되서 감당하기 어려웠다. - 그 후 시간이 흘러 어디선가 ElasticSearch에 대한 내용을 들어 공부해보고자 하였다.
- 중간중간 일이 계속생겨 진도는 많이 못나갔다... ㅠㅠ
3. 앱 개발 (Flutter)
- 로아투두는 서비스 특성상 게임하면서 체크해야하다보니 스마트폰보다 데스크탑에서 사용하는 사람들이 많다.
(스마트폰은 외부에서 확인용) - 그래서 따로 앱 개발을 생각을 안했는데, 최근 SNS 서비스를 기획하면서 앱이 필요하다라는 생각이 들었다.
- 전에 프론트엔드 개발자를 구해보려고 했던 경험으로... 개발자를 구하는 것보다 내가 개발하는게 빠르다라는 생각이 들어서 플러터를 시작해보았다.
커뮤니티 (SNS) 서비스 기획
초기에는 모집 게시판을 기획하였으나 트렌드에 맞지 않다고 판단하여
스레드나 X(트위터) 형식의 서비스 기획 (방명록과 합칠 예정)
플러터 개발 시도 (뽀모도로 앱)