본문 바로가기
생각정리

개발자란 무엇일까

by for2gles 2023. 12. 30.
반응형
세상은 단순한 것들의 조합으로 움직인다. 이 단순해보이는 것들에는 복잡한 깊이가 있고 놀라운 힘을 보여준다. GPAM원칙또한 단순해 보이지만, 많은 문제를 풀 수 있을 정도로 강력하다.
도서 `개발자 원칙` - 목표를 달성하는 나만의 기준, GPAM 中 내용을 일부 요약/추출 및 각색

 
사실 책에서는 `단순한 것` 이 아닌 `단순한 규칙`이었다. 하지만, 세상은 단순한 규칙 뿐만 아니라 단순한것들의 집합체 라고 나는 생각했다.
인식하고 있지는 않았지만, 내가 평소에 생각 해오던 것 들을 말로 풀어내준 구문이었다.

글에서는 스포츠의 규칙을 짧게 예로 들었지만, 평소에 야구를 굉장히 좋아하던 나로서는 너무 크게 와닿았다.

간단하게 야구가 어떠한 스포츠인지 생각해보면, 투수는 공을 던지고 타자는 그 공을 치는것을 하는것이다.

하지만 투수는 그 공을 던지는데 굉장히 많은 변화구들과 그립들이 존재하고, 구속과 제구력을 늘리기 위해 무수히 많은 노력과 훈련 그리고 이에 맞는 근육을 늘리기 위해 노력해야한다.

타자 또한 공을 치기위해 무수히 많은 공들을 보며 연구하고, 내가 상대하는 투수는 특정상황에 주로 어떤공을 던지는지 미리 공부 해 두어야하며, 볼카운트에 따라서 직구일지 변화구 일지 예측 할 줄 알아야하고, 확신이 들었을 때는 스윙을 할 줄알아야한다. 그리고 타자별 가진 힘과 근력에 따라 타격자세 및 타격 각도 또한 달라진다.

모든걸 나열하지도 않았지만 벌써부터 야구에서의 복잡한 깊이가 무엇인지 와닿을 것이다.
이러한 간단해보이는 것들 속에서 복잡한 깊이를 이해하고 연구하고 노력함을 통해 본인의 것으로 만들어내고, 또 이것들을 조합해 낼 수 있는 선수야 말로 정말 놀랍고 강력한 야구선수라고 생각한다.


사실 이는 개발자와 같다고 생각한다.
게시판을 만든다라고 한다면, 단순하게 제목, 게시글만을 데이터베이스에 넣고, 해당 목록을 보여주며 댓글/대댓글, 회원/비회원기능, 게시글/댓글 비밀번호, 관리자기능, 관리자가 디자인을 설정할 수 있는 기능, 검색기능들을 가진 게시판일수도 있겠지만, 여기에 눈에 보이지 않는 CSRF/XSS 보안 등 보안 요소를 추가하고, 로그를 남기며, 순간적로 동시에 많은 양의 요청들을 처리하기위해 LB 혹은 MQ시스템 구축, 캐싱, 연도별 DB Partitioning, HA 등등 최적화를 위해 추가하려면 끝도없이 많아질 수 있을 것 같다.
개발자는 이러한 간단해보이는 목적들 속에서 복잡한 깊이를 이해하고 조합 및 활용하여 비즈니스팀에서 필요한 기능을 안정적이고 정확하게 표현해나가는 사람이 개발자 인 것 같다.
이를 위해 개발자는 끊임없이 공부해야하고, 원리를 공부함 뿐만 아니라 비즈니스팀의 요구사항을 이해하고 이를 만들어 내고자 노력해야한다고 생각한다.
(이제 시니어가 된다면 '관리'라는 항목이 추가되겠지..?)

계속적으로 반복되어 나오는 말이 있는데, '끊임없이' 이다.
훌륭한 개발자가 되기 위해서는 지속적으로 공부를 이어가야하는데, 이 때 중요한것이 '꾸준함'인 것 같다.
개발직은 정말 방대하고 엄청난 양의 단순한 원리들을 공부하고, 그것들이 쌓이고 쌓여 깊이가 되어 프로덕트를 만들어내는 어려운 직종이라고 생각한다.
이 방대하고 엄청난 양의 지식은 서로가 얽히고 얽혀있어 이해하는데 시간이 많이걸리고, 심지어 공부해야하는 양도 방대하다.
이 때문에 스스로가 지치지 않도록 속도를 조절해주는것도 굉장히 중요하고, 지속적인 호기심과 같은 원동력으로 공부해나가는 사람이 훌륭한 개발자가 될 수 있는 것 같다.

반응형

댓글