2024년 2월 16일 금요일

변수 네이밍 #1 - 상태 변수 - status vs state

 

프로그래머의 중요한 역량 중에 하나가 이름짓기(네이밍)라고 생각한다.

프로그래밍 월드 내에서의 개념들을 만들고,

객체를 만들고, 

그들간의 관계를 만들고,

동작하게 한다.

객체를 지칭하는 네이밍이 와닿지 않으면 혼동하기 쉽고 오류에 빠지기 쉽다.


코딩 할 때에는 영어를 써야 한다.

단어의 미묘한 차이가 개념의 혼동,혼란,적확성을 결정하기 때문에, 영어를 잘 해야 한다. 


status, state 는 객체의 상태를 나타내는데 인기 있는 단어이다.

status 는 상하로 움직이는 사회적인 지위를 나타내는 경우에 쓰이고,
state 는 state machine 에서의 상태, 전이 상태를 나타내는 경우에 쓰인다고 생각한다.
대부분 state 로 쓰면 더 맞다.

그 외의 상태를 나타내는 단어들을 더 조사해서, 이 글을 업데이트 해 봐야겠다.

2024년 2월 12일 월요일

잡 꿈

 

잡꿈


간만에 여러 생각을 하게 하는 꿈을 꿨다.


첫사랑이 나한테 이제라도 대학을 다시 들어가라는 조언을 해 주고,

친구가 나와서 우리 이제 새로운 꿈을 갖고 일해보자라는 말을 해 주고,

구상 하던 사업 아이템 관련 아이디어가 구현되는 모습도 보이고...


아쉬움과 욕망

한마디로, '아쉬움과 욕망'의 잔재물이 내 마음속에 남아 있다는 말이다.


인생을 반바퀴 돌면서 정말 많은 생각을 하고 산다.

사회화가 아닌 반사회화, 개인화가 이제 더 중요해지는 것 아닌가 싶고,

아쉬움을 떨치거나 가볍게 이루거나 평화롭게 살고 싶다는 생각을 한다.


지난 두어달은 아이디어를 다듬는 고독한 시간 


지난 두어달을 게임을 하며 게임 기획을 하려고 폐인처럼 지냈는데,

게임 기획도 쉬운 일은 아니다.

코딩과 같은 개발에 집중해 있을 때도 행복했었지만,

다른 차원의 고민을 해야 한다.

실마리를 찾아야 하는 고민들을 한다.

개발에는 대부분 답이 있는데, 기획에는 답이 없어보이고, 점점 미궁으로 빠져든다.

다른 사람들에게 경력 10년,20년이면 (나처럼) 답을 찾을 수 있어야 하지 않냐고 질타했던 내가 부끄러워진다.

과연 기획 아이디어를 잘 찾는 방법들을 경력자들은 갖고 있을까?


개발을 오래 했던 탓에 이제는 개발이 재미가 없고, 기획이 더 재밌고, 의미있게 느껴진다.

그러나 기획의 어려움은 구현이 된 완성체를 빨리 확인하기 어렵다는데에 있다.

업무를 하던 동안에는 숙련된 프로토타입 개발팀이 유능한 기획자를 보조할 수 있는 시스템이 되어 있어야 한다고 생각했었다.

혼자서 아이디어를 다듬고 방향성이 일관된 기획을 하고 스스로 검증하는 고독한 과정이 필요하긴 하다.

그런 과정에서 아이디어를 토론할 수 있는 상대자는 엄청난 즐거움이자 효율책이 될 것이다.


앞으로는 어떻게 할까?


폐인모드로 지내다보니, 루틴의 중요성을 다시 한번 실감한다.

너무 하나에만 매몰되서 하루를 지내는 것보다는

하루에 30분짜리 반복적이고 생산적인 일정들을 소화 했었더라면, 지금은 좀 더 나은 상태였을 것이다.

무너진 생활을 다시 다잡아야 한다.


인생도 문제 해결의 과정


아무것도 모르고 태어나 세상에 던져져서 살았다.

부모님과 선생님들,친구들의 사랑이 아니었으면 나는 아무것도 아니었을 것이다.

사람들이 돈 벌고 사는 방식을 가만히 보면,

결국 문제를 해결해주는 것이다.

사소하고 반복적인 문제부터, 그것들이 합쳐져 큰 문제를 해결하는 회사까지...

결국 가치 있는 문제를 해결하면 된다.

예전에 어르신들이 '그걸 하면 떡이 나오냐 밥이 나오냐 헛소리 마라' 했던 일들이

이제는 사람들이 각광하는 일들이 되어 있는 경우가 있다.

'노래와 춤'이라던지, '게임'이라던지...

나는 어떤 문제를 찾고 해결 할 수 있는 사람인가?

인생 3막에서 이제 스스로 다시 묻고 꾸준히 갈 수 있어야 한다.









Through the ages

 

문명 게임


지인의 추천을 받고, 문명(Civilization) 게임의 축소판인 '쓰루 더 에이지스'를 해 봤다.


보드게임이었는데, 앱으로 나와 있다.

보드게임은 안 해 봤는데, 튜토리얼을 통해서 룰을 대강 익힐 수 있었고,

몇시간만에 도전과제를 클리어할 수 있었다.


빌드 오더


이 게임의 핵심은 '빌드 오더'이다.

문명 게임의 핵심 재미 중의 하나인, 결정에 따라서 문명의 운명이 바뀌는 

문명의 축소판이다.

'선택의 재미'인 증명된 재미를 핵심만 더 파고들어서 새로 만든 게임이라고 볼 수 있다.



턴마다 할 수 있는 액션 수의 제한이 있고,

액션 수보다 3배 많은 카드 중에서 액션을 선택하여 수행하여 문명의 경쟁력을 키우고, 다른 경쟁자를 견제하고 전쟁하기도 한다. 

전쟁구현은 4X 게임이 아니기 때문에, 간단한 공격력 방어력 수준으로 구현하고, 일방적으로 밀려서 괴멸되지는 않도록 적절히 밸런싱 되어 있다.

고대 시대부터 현대 시대까지 시대마다 영웅 리더를 적절히 채용해서 그 특성을 활용해야 한다.

처음에 하면 Easy Mode 도 Easy 하지 않다. 

아직 베스트 빌드 오더를 찾지를 못했다.

몇시간 한 상태에서 개인적으로 끌리는 순서는 

아리스토텔레스 -> 징기스칸 -> 나폴레옹 -> 처칠로 이어지는 전쟁 위주의 진행이다.

정치적인 행위에는 약탈,전쟁,조약 등이 있는데 세력 차이가 많이 나야 약탈,전쟁에서 효과적이기 때문에 이득을 크게 볼 수는 없지만, 아드레날린 나오는 조합은 역시 전쟁위주의 진행인 듯 하다. ㅎㅎ

영웅들의 특성은 해 보면 쉽게 알 수 있는 수준이지만, 잘 활용 하기는 힘들다.

여간해서 Medium 이상 레벨에서의 챌린지를 이기기는 쉽지 않다.




2,3,4 인 플레이어까지 할 수 있다.

위의 그림은 2인용에서 첫 승리를 한 기념 샷이다.


육성 시뮬레이션에 적용 가능?


하다보니, 내가 기획하고 있는 게임에도 적용할 수 있는 로직이 있을 것 같다.

육성 시뮬레이션 게임에 빌드 오더를 이런 식의 로직으로 적용할 수 있지 않겠는가?

선형적인 육성 시뮬레이션은 재미가 떨어지기 때문이다.

이 게임에서의 1차,2차,3차 산업에 대한 성장 선택 과정은 어떤 육성 시뮬레이션에도 적용할 수 있는 로직일 듯 하다.


예를 들어, 걸그룹 육성 시뮬레이션이라면,

보컬, 댄스, 매력의 분야에 맞춰서 

다양항 액션(어떤 액션들이 있을까?) 카드로서 육성을 시키고,

영웅적인 트레이너에 의해서 육성이 영향을 받고,

다른 연습생 경쟁자와 겨룰 수 있는 구도로 하고, 

1위를 해야만 서바이벌 하는 게임으로 만들면 될 듯 하다. 

ㅎㅎㅎ


즐겜.





2024년 1월 3일 수요일

나는 솔로 - "이상형이 뭐에요?"

 

SBS Plus 채널의 프로그램인 '나는 솔로'를 즐겨본다.

1기부터 지금까지 다 봤다. ㅎㅎㅎ

눈물도 웃음도 인생도 들어있다. ㅋㅋㅋ

16기에 너무 피곤해서 멀리하게 되긴 했는데, 

최근 기수에서 희한한(?) 여성을 보게 되서 적어본다.


썸타거나, 소개팅 할 때 흔히 묻는 말

'이상형이 어떻게 되세요?'

대개 그 답들은 예측가능하고 정해져 있는 편 아닌가?

그런데,

한 여성 출연자가

'야망 있는 남자'라고 말하더라.


우와~ 

난 그런 남자 이상형을 원하는 여성이 있을 수 있다는 것에 너무 놀랐다!

역시 나의 뇌에 세상을 가두고 사는 것이다.

그런 이상형이 있을 수 있다는 것을 알았다면,

나는 그런 이상형을 찾는 여성을 찾았을 것 같다. 푸학학~

다시 말하자면, 그런 이상형이 있을 수 있다는 것 자체를 생각을 못했었다.

보통은 그저 내가 생각하는 여성들의 이미지 중에서 

제일 끌리는 사람과 함께 하게 되지 않는가?


커플 매칭 서비스를 만든다면, 

내 이상형이 어떤 것인가?

나는 어떤 사람인가?

그런 나를 원하는 사람들이 얼마나 되는가?

을 핵심으로 만들어볼 수 있을 것 같다.

뻔한 이야기로 들리겠지만...

그걸 잘 구현하는 것은 다른 일일 것이다.


겪어봤을지도 모르겠지만,

내가 좋아하는 이상형, 내가 이상형인 그대는 훨씬 아름답고, 설레인다.


나와 맞는 사람과 산다는 행복.

그게 얼마나 소중한 가치인가?

인생에서 제일 소중한 가치일지도 모른다.





2024년 1월 2일 화요일

기술적으로 아직도 포기 못하겠는 일

 

30년을 엔지니어로 일했지만, 아직도 혼자라도 해보고 싶은 것들이 있다.

한마디로 말하면, 정말 좋은 게임 서버 만들기.


rust , go, c++, c# , python 등을 혼합하여 만들 것 같고,

대용량 트래픽 처리는 기본이고, 계정 관리, 게임 객체의 저장, 관리, 분산 액터로서의 역할, 로그 관리, 요즘 필요한 AI 서버, 온라인 게임에서 필수적으로 필요한 게임 클라이언트와의 동기화를 쉽게 구현할 수 있는 게임 서버가 되어야 할 것이다.

간단한 모바일 게임 서버부터, 메타버스까지 모두 아우르며 만들 수 있는 게임 서버가 되어야 하겠지.

내가 엔지니어로서 가장 잘 할 수 있는 일이니까, 마무리는 해 놓고 싶다.


틈날때마다 설계하고, 한땀한땀 하다보면 어느 순간 다 되어 있지 않을까?

10년전에도 20년전에도 생각만 하고 하지 못하지 않았는가? ㅎㅎㅎ


게임 서버 말고도, 사실 게임 엔진도 만들고 싶은데, 이번 생은 200살까지 살지 않는 한 힘들 것 같기도 하고... ㅎㅎ 틈틈히 좋은 게임 엔진을 공부하며 잘 쓰기만 해도 좋겠네. 


다짐만 이렇게 쓰다가, 나중에 이 글을 보면 부끄럽겠지? 

실천합시다! 실천! 

2024년을 맞이하며

 

2023년 회고는 못 했지만, 2024년 포부를 써 보고자 한다.


추진력이 필요하다.


결론부터 말하자면, 매우 불안하지만, 더 건강해지고 추진력을 갖추면 가능성이 있다.


지난 2년간 사업의 본질에 대해서 많이 고민 했던 것 같다.

사업의 진행은 본질에 대한 깨우침, 니치 마켓을 찾아 목표 세우기, 목표에 따른 계획 세우기, 실천의 과정을 거쳐야 하는 듯 하다.

작년에는 본질과 목표에 대해서만 생각 했던 것 같다.

나 자신이 너무 나태해서 계획도 못 세우고, 실천도 제대로 못 했다.

다행히 아직도 추진하고 싶은 목표가 있고, 그 시장은 아직 유효해 보인다.

그래서, 2024년은 추진해야 한다!

추진하기 위해서는 건강해야 한다! 그리고 매일 매일의 의미를 부여하며 보람차게 살아야 한다.

놀만큼 놀았고, 방황할만큼 방황했다.

더 이상 좌고우면하며 방황하고 탐험하는 것이 재미가 없다.

추진하는 것만이 재미가 있는 상태가 되었다.


핵심 가치


내가 만들고 싶은 프러덕트인 게임의 핵심 가치를 정했다.

1. 인재의 숨은 스탯을 AI(LLM)으로 말하고, 유추하여 좋은 팀원을 구하는 구인 게임.

2. 팀원들을 좋은 포지션에 맞춰서 팀을 구성하여, 좋은 퍼포먼스를 내도록 튜닝하고, 경쟁시키는 매니징 게임

3. 실제 인물과 매칭이 되는 인재로 가상의 목표를 이뤄가며 돈 버는 시뮬레이션 게임


이렇게만 말하면 뭐가 뭔지 잘 모를 것이지만, 더 정확히 말하긴 어렵다.

이 정도만 말해도 알 사람들은 알 것 같다.

어쨌든 AI First Game 이다!!! 

잘 만들어서 투자 받고 날아올랐으면 좋겠다!


버티고 개척하자


사업을 영유하는 일은 매우 어려운 일이다.

돈 벌며 유지하고, 회심의 새로운 프러덕트나 서비스를 출시하여, 새로운 시장을 개척해야 의미가 있을 것이다.

시간을 아끼고 의미있게 써야 한다.

버티려면, 알바나 외주도 해야 할 것이고, 소소하게 돈 버는 일들도 마다하지 말아야 할 것이다. 

그럼에도 메인 업무의 일정이 흐트러지지 말아야 할 것이다.


기술을 연마하고, 좋은 사람들을 만나는 것도 게을리하지 말아야 할 것이다.


화이팅!