글을 쓰게된 배경

최근에 토스 프론트엔드 펀디멘탈을 비롯해서 코드 가독성, 유지보수성 등과 관련해서 ‘좋은 코드란 무엇일까?’에 대한 주제로 작성한 여러 블로그 글들을 읽었다.

이런 글들을 읽으면서 나는 그간 프로젝트들을 하면서 이런 부분을 거의 신경쓰지 않고 코드를 작성했다는 것을 깨닫게 되었다.

팀 프로젝트를 할 당시에는, 나를 비롯한 팀원들 모두가 개발을 배우는 초기 단계였기 때문에 이런 것들을 신경쓰지 못한 것은 어쩔 수 없었고, 후에 개인 프로젝트를 진행할 때는 혼자서 코드를 작성하고 유지보수했기 때문에 이런 것들의 중요성을 알기가 힘들었다.

이런 배경이 있었기 때문에, 좋은 코드를 작성하는 연습 차원에서, JOA HAIR 프로젝트를 리팩토링 해보고자 계획했고 특히 소프트웨어 개발 원칙 중 아주 유명한 SOLID 원칙을 공부하고 그 중 가장 핵심적인 원칙인 단일 책임 원칙(SRP)을 적용해서 JOA HAIR 프로젝트의 Header 컴포넌트를 리팩토링한 내용을 기록하고자 한다.

SOLID란?

SOLID란 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙으로, 시간이 지나도 유지보수와 확장이 쉬운 시스템을 만들고자 할 때 적용할 수 있는 원칙들을 말한다.

5가지 원칙은 다음과 같다.