9월 서비스를 목표로 하는 프로젝트를 시작하게 되었습니다. 새로운 서비스를 만들어보는건 항상 설레는 일이긴합니다. 그런데 막상 프로젝트를 시작하면 머리가 지끈지끈 합니다. 프로젝트의 구조를 설계하는 셋업 단계에서 특히 더더욱 그런것 같습니다 ㅠㅠ 구조 설계 단계가 끝났고 이제 1차 스프린트를 시작하기에 앞서.. 시작하기도 전에 했던 여러가지 고민들과 결론에 대해서 말해보고자 합니다. 무슨 데이터베이스를 선택할까? 이번 프로젝트에서는 데이터베이스 선택부터 너무 힘들었습니다. 저는 주로 도큐먼트db인 MongoDB를 써왔고, 이번 프로젝트에서는 RDB를 써볼까하는 생각을 하였습니다. 혼자 하는 프로젝트이기도 하고 공부도 할 겸 TypeORM + PostgreSQL을 사용할 계획이였습니다. 하지만, 막상 하나..
작년 이맘 때, 2022 Smilegate winter 캠프를 진행했다. 다만 코로나 시기였던 만큼 오프라인으로 진행되었고, 적극적으로 참여하기 어려운 환경이였다. 올해, 운이 좋게도 좋은 기회로 다시 한번 스마일게이트의 2023 개발 캠프에 참가할 수 있었다. 작년과는 달리 오프라인으로 캠프를 진행하였고 지금부터 약 세 달간 진행한 개발 캠프에 대해서 글을 남기려고 한다. 개발 환경이 어때? 우선 Smilegate 개발 캠프의 장점 먼저 말하고 싶다. 캠프 중간 진행한 인터뷰(링크)에서 말 하였는데, 요약하자면 온전히 캠프와 개발에 집중할 수 있도록 모든 환경을 제공해준다. 모니터와 노트북, 하루종일 개발을 진행하고 자유롭게 회의할 수 있는 오프라인 공간, 가까운 곳에 계시는 현역 멘토님들, 빵빵한 탕..
이전 게시글에서 레벨업, 경험치를 관련해서 어떻게 구현을 할지 기초적인 설계를 진행했다. 추가적인 설계를 조금 진행한 후 구현에 들어가려고 한다. 데이터베이스 구조 설계 캐릭터 생성 시 그 캐릭터는 약 4~5개의 스텟을 지닌다. 또한 이 스텟은 추가되거나 삭제되거나 등의 변동성을 갖는다. 문제는 나의 요구사항에 따르면 각 스텟별로 레벨과 경험치가 존재하여 각 스텟의 변동 사항을 개별적으로 관리하여야 한다는 것이다. 따라서 캐릭터 내에 스텟을 임베디드 시키는 것과 참조 시키는 것 중에서 어떤 방식이 더 나을까를 판단했을 때, 참조 방식이 더욱 적절하다고 판단하였다. 따라서, 캐릭터와 스텟은 One to Many 관계를 갖는 참조 방식으로 설계를 진행하였다. 실행 흐름 설계 간략히 생각해본 경험치 상승과 레..
캐릭터를 육성하는 프로젝트를 하나 진행하고 있다. 퀘스트와 같은 행위를 완료할 경우 경험치가 증가하는 알고리즘을 작성해야하는데, 이를 위해 고려할 것이 조금 있다. 요구사항 특정 행동을 완료 했을 때 해당 행동의 카테고리에 속한 능력치의 경험치가 상승한다. 예를 들어 팔굽혀펴기를 하면 근력 경험치가 상승한다. 레벨이 상승할수록 행동에 대해 요구하는 역치가 증가한다. 예를 들어, 근력 레벨 1이 팔굽혀펴기 10개를 하면 힘들어 하지만, 레벨 3이 팔굽혀펴기 10개를 하면 쉬워한다. 이러한 것을 기반으로, 내가 구현할 것에는 다음과 같은 고민이 필요했다. 유저 행동은 정말 다양한데, 어떻게 카테고리화 시킬 것인가? 마찬가지로, 사람의 행동은 정말 다양한데 이것에 대한 경험치는 어떻게 정의할 것인가? 레벨 상..
1편 보러가기 - https://smaivnn.tistory.com/5 2편 보러가기 - https://smaivnn.tistory.com/6 팀 프로젝트의 시작 .. 개인 프로젝트를 마치고 드디어 팀 프로젝트가 시작되었다. 이번 글은 팀 선정의 과정부터 시작해 우리의 환경, 주제 선정, 설계, 기술적 우여곡절, 후기를 순서로 진행하고자 한다. 팀 선정 팀 선정은 스마일게이트 측에서 지역별 거점, 지원한 담당 분야, 개인 프로젝트를 모두 고려하여 임의로 팀을 배정하여주었다. 그렇게 모인 우리 팀은 총 4명이었으나, 추후 우리팀과 인연이 있던 다른 1명이 다른 조에서 우리 팀으로의 변경을 희망하여 결과적으로 총 5인으로 구성된 팀이 결성되었다. 프로젝트를 잘 마쳐서 우리 다 같이 판교로 가자는 의미로 to..
1편 보러가기 - https://smaivnn.tistory.com/5 3편 보러가기 - https://smaivnn.tistory.com/7 개인 프로젝트 이번 스마일게이트 winter dev camp는 12월부터 2월 24일, 약 3개월간 진행되었다. 그 중 12월은 스마일게이트 측에서 제시하는 주제에 해당하는 개인 프로젝트를, 그리고 1, 2월은 팀 프로젝트를 진행하였다. 개인프로젝트의 주제는 아래 3가지이다. 1. URL shortener 2. Blog 3. 인증시스템 나는 3번 인증 시스템을 선정하였다. 인증 시스템을 선정한 이유는 내가 백엔드 담당으로 지원했기 때문이다. 블로그의 경우 인증 기능은 이미 해결 했다고 가정하고 진행하는 프로젝트였으며 주로 클라이언트에게 권장되었다. 또 url sh..
2편 보러가기 - https://smaivnn.tistory.com/6 3편 보러가기 - https://smaivnn.tistory.com/7 안녕하세요. 이번 포스팅은 스마일게이트(smilegate)에서 주관한 2022 winter Dev Camp 후기입니다. 23년 2월 24일 금요일, 12월 부터 진행된 스마일게이트에서 주관하는 winter dev camp 일정을 모두 마쳤다. 이번 포스팅은 캠프를 진행하며 느낀 여러가지 것들에 대해 다뤄보려고 한다. 합격 이번 캠프는 이 전부터 있던 스토브 개발 캠프, 서버 개발 캠프와는 다르게 채용연계형이 아닌 개발 캠프이다. 따라서 따로 연계되는 채용 과정 등이 있지는 않다. 이번 캠프는 각 지방 거점에서 설명회를 진행 후 인원 모집을 진행하였는데 나는 강원 ..
프로젝트 선정 이유, 목표 현재 나는 컴퓨터 공학과 재학 중이며 학과에서 컴퓨터 동아리 활동을 하고 있다. 1학년 무렵 활성화되어 있던 동아리 홈페이지가 어느 날부터인가 비활성화되었고, 마침 이번 방학 동안 React, node.js를 활용한 프로젝트를 계획하던 나는 "동아리 홈페이지를 제작해 보는 것이 전반적인 클라이언트와 서버 간 통신 프로세스에 대해 알아가는 것에 많은 도움이 되겠다." 싶어 이 프로젝트를 선정하게 되었다. 설계, 설계 .. 가장 중요한 프로젝트의 설계 react : 이번 프로젝트에서 나는 리덕스 툴킷을 이용하였다. 이 때문인지 변수, 함수들의 관계를 어떻게 설정하고 관리할 것인가에 대해서 많이 골머리를 썩였다. 특히 리덕스 툴킷을 관련하여서 구글링을 해보아도 원하던 자료가 많지 않..