"기술부채" 라는 말을 처음 들었다.
요컨대, 알고는 있지만 지금 당장은 해결할 수 없어서, 혹은 시간이 없어서,
개선해야 할 필요성을 느끼고 있지만 나중에 해결하려고 빚처럼 쌓아둔
코드를 말한다고 한다.
아주아주 무서운 이야기.
실전 프로젝트를 시작했을 때 부터,
코드를 짜는 방법론에 대해서 굉장히 고민을 많이 했다.
코드를 길게 짜다보면 동작은 하지만 과연 효율적인 코드일까 ?
중복된 코드를 더 줄일 수 없을까 ?
함수로 분리할 수 없을까 ?
Hook 으로 관리할 수 없을까 ?
변수 이름을 이렇게 지어도 괜찮을까 ?
조금 더 알아보기 쉽게 작성할 수는 없을까 ?
고민뿐이다.
고민뿐이라고 말하는건 노력을 하지 않는다는 의미는 아니다.
체계화된 어떤 나만의 방식을 아직은 찾지 못했다는 의미.
그에 대한 고민에 여러가지 시도를 해봤는데,
이번주에 가장 흥미롭게 시도했던 내용은 컴파운드 컴포넌트 디자인 패턴이다.
컴파운드 컴포넌트 디자인 패턴은 이름은 생소하지만 익숙한데,
가장 대표적으로 리액트 부트스트랩이 이런 모양이다.
여러개의 간단한 구성 요소를 조립해 하나의 구성요소로 그룹화 하는 느낌.
코드의 재사용성을 높일 수 있고 더 작고 관리하기 쉬운 부분으로 나누어
단순화 할 수 있다.
아코디언
아코디언 컴포넌트를 만들어본다던가,
팀 프로젝트의 드롭다운 메뉴 등을 만들어보았다.
장단점이 뚜렷하다.
위에 설명한 재사용성이나 유지보수가 쉬운 부분이 장점이라고 할 수 있겠지만,
여러개의 컴파운드 컴포넌트를 사용하게 되면 오히려 구조가 복잡해지고
결합 및 중첩이 많아지면 많아질수록 퍼포먼스도 오히려 떨어질 수 있다.
https://www.realworld.how/
멘토님께서 말씀해주신 프로젝트 중에 realworld 라는
음, 오픈소스 프로젝트? 라고 해야하나
CRUD가 들어간 똑같은 웹 사이트를 여러가지 기술로 구현한,
지금 코드 트렌드는 이렇습니다- 하고 소개하는 프로젝트로 보인다.
정말 여러 개발자분들의 코드를 보고있으면
정말정말 멋지고.. 감탄하게 되어버린다.
언젠간 이런 예쁘고 멋진 코드를 짤 수 있을까 ?
마치 코드로 예술을 하는 것 같은 사람들이
세상에는 너무 많다.