개발자에게 도메인 지식은 얼마나 중요할까?

2021-04-23(금)이호준 멘토님과의 대화내용 요약

개발자에게 도메인 지식은 얼마나 중요한가?

개발자는 코드로만 기술을 풀 것 같지만, 똑똑하다면 1년차, 늦어도 3년차면 '코드'로만 풀 수 있는 문제는 매우 일부분이라는 것을 알게 된다.

게임에서 푸시알림을 날리려고 하는데, 아무리 로직을 개선해도 동시접속자들에게 푸시 알림을 다 날리는데 40분이 걸렸다. DB I/O 속도에 근본적인 병목이 있었기 때문. 이 문제를 어떻게 풀지 고민하다가 결과적으로 퓨전 I/O 라는 하나에 몇천만원하는 장치를 꼽아서 해결했다. 코드에만 갇혀있었다면 문제를 해결하지 못했겠지.

다른 예시를 볼까? 가령 기획자가 '쿠폰을 10장씩 뿌리려고 합니다. 돼요?' 라는 식으로 문의하면, 어떻게 풀 것인가? 그냥 요청을 지레짐작하면서 거절해버리면 안된다. 쿠폰을 10장씩 뿌리는 상황이 이벤트에 참여한 사람들에 한정되는 건지, 실시간으로 지급되어야 하는 것인지, 일정 시간이 지난 후 지급되면 되는 것인지 등을 파악한 다음 선택지를 만들어줄 수 있어야한다. 그래야 '문제를 해결하는 개발자'가 될 수 있다.

흠 생각해보면 이전 직장에서도 개발자와 대화할 때도 '배경, 목적, 요청'을 명확히 나눠서 요청해야 했었다. 그럼 개발자가 개발이 굳이 필요없는 해결책도 제안해주는 경우가 있었는데, 결과적으로 문제를 제대로 해결할 수 있었고, 사실 요청하기 전에 해결책을 찾아버리는 경우가 많았다.

내가 몸 담고 싶은 도메인은 어떤 기준으로 고민하면 좋을까?

소비자 관점이 아닌 생산자 관점으로 고민하자.

개발자 입장에서 좋지 않은 직장은 무엇으로 거를 수 있을까?

개발 일정이 기획자 등으로부터 막무가내로 들어오는 곳이 나쁠 확률이 크다. 개발 입장에서는 '건물을 3센티 옆으로 옮겨달라'는 식의 작아보이지만 큰 일일 수 있고, 이런 일을 일정 쫒기며 하다간 막 코딩만 주구장창하게 될 수 있다.

자바 스프링을 쓰는 큰 기업으로 가면 체계적인 코드를 볼 수 있을까?

간단한 코드를 바꾸더라도 항공모함을 개조하듯 많은 텍스트와 고려를 거쳐서 바꾸게 될 것이다. 다만 레거시는 체계적이지 않은 경우가 많다. 우리가 보는 카카오나 네이버도 급하게 생산한 코드들을 기반으로 커진 것이다. 환상은 가지지 않을 필요가 있다.

Last updated