2022 회고

개발자로서 성장할 수 있었던 한 해, 그리고 게이머로서 아쉬움이 많았던 한 해를 되돌아 보았다.

다사다난했던 2022 년을 보내고, AAA 게임이 쏟아지는 2023 년을 맞이하며 ..

개발자로서

프로그래머라는 직업이 선망받는 세상이 왔다. 너무 신기하다. 나는 단순한 계기로 컴공을 나와, 흘러흘러 십여년차 프로그래머가 되었는데; 학원까지 다니면서 이 업계로 오고 싶어 하는 사람들이 이렇게나 많다니. 그 분들에게 응원의 박수를 보낸다. 할 수 있어요 !! (나도 하는데..!!!

이게 진짜 Spring Boot 프로젝트

PHP 개발자로 시작해서, 운 좋게 Java 개발자로 전환할 기회를 얻은 지 3 년정도 된 것 같다. 2019 에 처음 Spring Boot 를 접했을 때에는 '뭔가 대단한 것 처럼 얘기하지만, 막상 코드를 보니 PHP 랑 다를 것도 없네' 라고 생각했다. 실제로 그렇게 짜여져 있었으니까.

언어는 다 거기서 거기인지라, 문법 읽는 것은 익숙하고, 도메인 자체도 복잡한 것이 아니어서 크게 힘들지는 않았다. 물론 ... 그때 내가 본 것이 Spring 을 가지고 Spring 스럽지 않게 만든 무엇인가라는 것을 지금은 알지만 (..).

작년에 이 회사에 입사해서, 12 월 정도에 Spring Boot 로 신규 프로젝트를 시작했다. 우리 파트에는 나 포함 BE 개발자가 세명 있었고, 두 분은 Spring Boot 경험이 꽤 있으신 것으로 알고 있다. 그 분들과 함께 일을 하게 되면서, Spring 을 Spring 답게 사용하는 것이 무엇인지 알게 되었다. 알게 되었다고 했지, 잘 쓰게 되었다고는 하지 않았다 아, 이게 진짜 Spring Boot 프로젝트구나.

OOP 를 조금은 이해하게 되었다

과거 SNS 에 OOP 가 어쩌고 하는 글을 썼더랬다. "과거의 오늘" 에 올라오는 것을 보니 '쥐뿔도 모르는게 이딴 글이나 써 제꼈구나;' 싶다. 신기한 점은, OOP 를 모르면서도, 방향성이 크게 엇나가지는 않았다는 부분이다. 반대방향이 아닌 게 어디야

그때의 나는 "OOP 는 수정범위를 최소화 하기 위해 중복 코드를 제거하는 것" 이라고 생각했다. OOP 의 궁극적인 목표는 "효율 추구" 이고, 결과적으로 "빠른 퇴근을 위한 것" 이라고 생각했으니까. (반쯤은 웃자고 하는 말 이지만, 지금도 그 생각은 크게 다르지 않다. 빠른 퇴근!)

계기가 정확히 기억나지는 않지만 <DDD> , <오브젝트> 책을 읽으며 코드를 보는/짜는 관점이 조금 바뀌었다. 같은 팀 시니어 개발자의 조언도 한몫 했다. "메소드가 너무 클 때 분리하는 것은 좋지만, 굉장히 절차지향적으로 짜고 있다." 라는 말을 들었을 때의 충격이란. OOP 를 하려고 하고 있었다는 얘기는 아니지만

아무래도 바닐라 PHP (5.x 이하 버전) 를 오래 하다보니 ; 자연스레 몸에 절차지향적인 방식이 밴 듯 하다.

<오브젝트> 책을 읽고 나서는,  (1) 객체에게 더 많은 일을 시키게 되었고 (2) 비즈니스를 처리하기 위해 객체를 소환하는 부분을 서비스에서 처리하도록 짜게 되었다. 예전에는 객체 = 데이터를 들고 있는 존재라고 여겼다면,  지금은 객체 = 내 일은 내가 알아서 하는 주체적인 존재라고 여기고 있달까.

아직 내가 OOP 를 제대로 하고 있다는 의미는 아니고, 언제 그게 가능하게 될 지 모르겠다. 다만 2023 년에는 조금 더 깨우치는 한 해가 되었으면 좋겠다.

가계부를 만들기 시작하다

시작이 반이라는 말이 있다. 나 벌써 50% 나 한 거임 ..?? 맞는 말. 쳐 맞는 말 남편에게 가계부 얘기를 꺼내면 치를 떤다. "만들기나 해..." 라면서. 작년에는 정말로 가계부를 만들기 시작했다.

예전에 선뜻 손이 가지 않았던 이유는 크게 두 가지가 있다.

(1) 도메인을 잘 모르겠다. 가계부 만들자고 회계 공부까지 해야 하나?
(2) OOP 로 해 보고 싶은데, 어떻게 해야 할 지 모르겠네

OOP 에 대한 관점이 약간 바뀌고, DDD 를 흥미롭게 읽게 되면서 .. 자연스레 '만들어볼까...?' 라는 마음이 생기게 되었다. 진도가 팍팍 빠지고 있냐면, 그건 아니지만 .. 일단 시작한 게 어디야. ;

마음 속 수 많은 feature list 중에 하나를 끝냈을 뿐 이지만, 꽤나 뿌듯하다. 올해는 JPA 까지 엮어보자.

게이머로서

게임 얘기를 안할 순 없지. 2022 년은 할 게임이 없는 한 해였다. 그래서 정말 이 게임 저 게임 전전하며 지냈는데, 액션게임 하면 빼놓을 수 없는 게임을 둘 다 플레이 했던 해 이기도 하다. 바로 <엘든링> 과 <몬스터 헌터>. 두둥 몬헌 얘기까지 하면 너무 길어지니 엘든링만 까고 넘어간다.

엘든링

난이도가 너무 높은 게임을 좋아하지 않기 때문에 소울류를 거르던 내게, "젤다" 를 언급하며 다가온 엘든링은 호기심 가는 불모지였다. 이 게임을 통해 소울류에 재미를 느끼게 되지 않을까 ? 하는 기대감이 있다. 지금은 없다는 얘기다

이런 저런 이유로 이 게임에 대한 원한이 깊기는 하지만, 사실 꽤 재미있는 게임이다. 그 부분은 인정하지 않을 수 없다. 최다 GOTY 를 받는 것도 있을 수 있는 일이라고 본다. 소울 장르 팬들이 엘든링에 열광하는 이유도 이해한다. 다만 내가 화나는 지점은, 감히 <젤다의 전설 브레스 오브 더 와일드> 에 비벼보려고 했다는 것이다. (맞다. 내가 이 구역의 젤다무새;;;;)

엘든링이 재미있다는 점은 동의하지만, 젤다와 비교하기에는 부족한 점이 많다.

가장 치명적인 것은 젤다가 없었다면, 엘든링이 나올 수 없었을 것이라는 점이다. 스스로 인정하기도 했고, 실제로 젤다에 영향을 받은 부분이 꽤 많다. (젤다를 안해봤다면 모...) "젤다에서 영향을 받은 부분이, 젤다를 뛰어넘지 못했다" 라는 점도, 상대적인 평가를 깎아먹는 지점이다.

나는  "시스템을 세계에 얼마나 잘 녹여냈는가" 를 중요하게 생각하는데, 엘든링은 그 지점이 약하다. 플레이 할 때 나를 가장 짜증나게 만든 것은 "플레이 중 사망하거나 화롯불에서 휴식을 취하고 나면, 몹이 전부 리젠된다." 는 시스템이다. 그 시스템 자체도 그닥 좋게 보이지는 않지만, "시스템에 대한 설명을 세계관에 녹여내려는 노력을 하지 않은 것" 때문에 더 부정적인 감정이 들었다.

위쳐 3 의 위쳐 센스라거나, 젤다의 붉은 달 같은 장치가 있었다면, 화는 나도 '이런 세계니까 어쩔 수 없지.' 라는 마음이 들었을 것도 같다. 최소한의 노력도 없이 "원래 이런 게임임ㅋ" 이라는 말로 모든 것을 퉁치려는 것이 아니꼬운 것이기도 하다.

할 말은 정말로 많지만, 여기까지만 쓰련다. 재미있게 하기도 했고, 엔딩을 못보기도 했고, 사랑 받는 타이틀이기도 하고, 게임이야 어차피 취존이니까 ㅎㅎ (그래도 젤다랑 비교하는건 못참아...)

2023 목표

  • PS5 구매
  • 젤다:왕눈 무사히 끝내고 디아블로4 남편이랑 같이 즐기기
  • 갓 오브 워
  • 가계부 Debit <-> Credit 상호작용 JPA 엮는 것 까지는 하기
  • Spring Boot 에 대해 더 알아보기
  • OOP , TDD , DDD 를 더 이해하기
  • 특히, 테스트 환경에 대한 공부
  • 자신감 올리기