무엇을 모르는지 모를때는 바카라으로 돌아갑니다

AI시대에도 여전히 개발 도서가 필요한 이유

by생계형 개발자

주니어 시절에는 학교에서 배운 이론을 실무에 적용하면서 심도 있게 익히곤 했는데요 연차가 쌓일수록 순서가 바뀌고 있다는걸 느낍니다. 언제나 50% 이상 부족한 상태로 코드와 인프라를 먼저 경험하고 한발 늦은 스터디를 통해 이론을 심도 있게 배우게 됩니다.


탄탄히 스터디를 완료한 상태로 시작하면 좋겠지만 현업에선 언제나 시간은 넉넉하지 않습니다. ‘일단 만들자’ 모드로 시작하죠. 튜토리얼을 통해 사용방법을 빠르게 익히고 간단한 MVP를 만들어보고 문제를 발견하고 해결해가며 조금씩 갈피를 잡아갑니다.


그러다 프로젝트가 궤도에 이르고 짜투리 시간이 생길 즈음에 바카라을 통해 소프트웨어와 관련된 이론을 접하게 됩니다. 그리고 깨닫습니다. 아, 내가 경험한 소프트웨어는 촘촘한 이론에 맞춰 설계 되었다는 것을 말이죠.


예를 들면 클릭하우스의 경우 쿼리 읽기 성능을 최적화 하기 위해 프로젝션이라는 기능을 제공하고 있습니다. 프로젝트 중에는 단순히 사전적인 의미에서 프로젝션이라고 이름을 붙였거니 하고 쉽게 넘어갔죠. 그런데 CQRS 패턴 이란걸 배우고 나니 프로젝션이라는 설계 용어가 있었고 쓰기와 읽기의 로직을 분리하면서 성능을 높이기 위한 동기 프로젝션 구조였다는 것을 알게 됐습니다. 프로젝션이라는 단어는 사전적 의미에만 그친게 아니었습니다.


서비스 코드도 마찬가지입니다. 프로젝트에선 패키지 이름을 infrastructure, domain, application 으로 구분했었습니다. 레디스, 몽고디비 같은 데이터베이스 관련 코드는 infrastructure 패키지, 서비스 클래스처럼 비즈니스 로직과 관련된 클래스는 application 패키지에 보관해서 관리 했습니다.


처음에는 단순히 관련된 것들끼리 묶어서 보관하는게 직관적으로 좋아서 이와 같이 구현한 것인줄 알았습니다. 그런데 패키지 이름은 계층형 아키텍처에서 사용중인 용어였고 프로덕션 코드는 설계 이론을 따르면서 비즈니스 로직 관리와 장기적 유지 보수까지 고려한 구조를 채택하고 있었습니다.


공부하기전까지는 겉으로 드러난 부분을 만지작 거리고 있었다면 이론을 공부한 다음부터는 소프트웨어의 핵심 철학을 깨닫게 된 것 같습니다. 어렴풋이 짐작 해온 부분들에 대해서도 이해하게 되고 아직 접하지 못한 기능들에 대해서도 나름 예측을 해볼 수 있게 됩니다. 만든 사람의 입장에서 소프트웨어를 바라보게 되니 시야가 넓어진 기분이 듭니다.


바카라이나 강의를 듣지 않았다면, 저는 여전히 겉부분만 만져보며 ‘안다고 착각’했을 지도 모르겠습니다. 뼈대를 알고 이해하는 것과 겉으로 드러난 알고 있는건 확실히 차이가 있습니다.


AI는 물어보는 질문에만 척척 답변만 해줄 뿐, 내가 무엇을 모르는지를 알려주진 못합니다. 나에게 필요한 공부를 찾는건 아직 개발자의 몫이며 저는 바카라이 ‘무엇을 모르는지’를 확인해주는 좋은 도구라 생각합니다. 컴공을 졸업한지 10년이 넘었지만 지금도 꾸준히 바카라을 통해 공부를 하는 이유입니다.

카지노 게임의 이전글몰입의 조건