시니어와 주니어의 차이점이 무엇일까?
다른 말로, 코더와 프로그래머의 차이점 이라고 보고 있습니다. 가끔은 이런생각이 들어요, "어차피 구현은 누구나 한다면, 프로그래머란 무엇일까? 시니어와 주니어의 차이는 뭐지?" 이런 생각과 관련해서 요즘 개발자분들과 많은 얘기를 나눴습니다. 예전과 비교하면 많은 기술셋이 생겼죠, 이젠 누구나 쿠버네티스를 알아야하고, 머신러닝도 누구나 한번쯤 들어보았고, 그렇다면, 이렇게 변화무쌍한 기술셋 안에서 시니어와 주니어의 차이는 무엇일까? 결국에 중요한건 "번복하지 않게끔, bfs적인 관점에서 시스템설계를 하는 능력" 인것 같습니다. 여러언어와 툴과 여러 프로젝트와 운영하면서 여러 상황을 만나, 설계없는 프로젝트에서 번복도 해보고, 설계 A 안으로 갔을때, 예상치 못한 이슈를 발견해, 다른 접합부분도 만들면서, 결국에는 유연한 시스템 설계를 하는 것이 결국에 개발자로서 나아가야하는 것 * 유저수가 100만으로 늘어났을때, * 추가 스펙이 들어왔을때, 접합하기 쉽게 * 혹은 스키마 변경에 유연하면서도 * 현재 상황에 현재 팀원 기술셋과 프로젝트 마감일자를 고려한 그런 설계를 향해 나아가는 과정에서 시니어가 되는 것이 아닐까요? 라는 생각과 함께 시스템 설계에 관한 최고의 책 20권이라는 추천글을 링크에 남겨보려합니다. 2023년의 책으로는 "데이터 집약적 애플리케이션 설계"를 읽어봐야겠어요