요즘 책을 읽고 있는데 객체지향 파트가 궁금해서 먼저 읽어보게 되었다. 프론트엔드에서 이미 객체 지향을 하고 있다는 것, Class가 객체 지향이 아니라는것을 얘기하면서 우아한 형제들의 한 팀에서 사용하고 있는 React 아키텍처를 설명하고 있다. 결국에 핵심은 뷰(View)와 비즈니스 로직을 분리하는 것이고, 배달의 민족과 같은 도메인 복잡도가 높은 서비스라 그런지 Business Logic에서도 여러 모듈들로 분리되어 있는 것을 확인할 수 있었다. 실제로 적용할때는 컴포넌트에서 비즈니스 로직을 먼저 떼어내고, 그 이후에 복잡도가 높아짐에 따라 비즈니스 로직에서도 객체간의 협력을 다양하게 가져가면 좋을 것 같다.
오늘 최종 면접으로 컬처핏 면접을 봤는데 값진 시간이었다. 많이 배려를 해주시고, 좋은 얘기를 나눌 수 있어서 좋았다. 실제로 필드에서 엔지니어에게 요구하는 역량들과 팀의 색깔을 알 수 있었던 것 같고 나도 함께 프로덕트를 개발하고 문제를 해결할 수 있도록 팀에 조인하고 싶다는 생각이 들었다. 물론, 이후의 일은 내가 제어할 수 없기 때문에 이제 덮어두고 다시 역량을 쌓아나가야겠다.
리액트 컴포넌트를 잘 설계하는 것은 계속 의식적으로 생각해야 할 문제인 것 같다. '컴포넌트를 만들 때, 컴포넌트 내에 선언된 컴포넌트의 동작에 이 컴포넌트를 사용하는 측의 관심사가 섞여들어가지 않도록 주의해야 한다' '컴포넌트를 적절한 책임과 역할로 분리하는 것이 필요하다' 위와 같은 코멘트들을 보면서 설계에 대한 생각을 많이 해보게 되었고 나만의 생각을 지속적으로 정리해야 할 것 같다.
'왜?' 라는 질문을 의식적으로 던져보았다. 같은 책이라도, 같은 문서라도, 같은 코드라도 '왜?'로 시작하면 다르게 보이기 시작한다. 이 세상에 이유없이 존재하는 건 거의 없더라. 있다면 부모님의 사랑이 아닐까? 제대로 가는 것은 정말 중요한데, 이러한 과정속에서 무언가를 탐험하고 발견하는 재미를 느끼고 있는 것 같다.