YAGNI는 You aren't gonna need it 의 줄임말으로써, 프로그래머가 필요하다고 간주할 때까지 기능을 추가하지 않는 것이 좋다는 원칙이다.
실제로 필요할 때 무조건 구현하되, 그저 필요할 것이라고 예상할 때에는 절대로 구현하지 말라는 것이다.
프로그램을 작성하다보면, 현재는 사용하지 않지만 나중에 사용할 것 같은 또는 나중에 확장될 수 있을 것 같은 작업을 미리 해두는 경우가 가끔씩 있는 것 같다.
이전 개발을 할 때, 쌓였던 경험들로 인해 내 코드의 미래가 보여지기 시작하면서, "현재는 필요없지만, 나중을 위해서 이 기능을 추가해 놓으면 편하다." 라는 생각이 든다.
예를 들어서, 어떤 웹사이트를 만들고 있는데, 기능 요구사항에는 모달을 사용하는 것이 있다.
그런데 현재 내가 개발하는 시점에서는 모달이 필요없는 페이지이다.
그럼 나중에 어차피 사용할 테니, useModal 커스텀훅을 미리 코드에 넣어 놓는다던지,
또는 이번에는 상태관리로 redux-saga를 사용할거야 라는 마음에 미리 redux-saga를 설치해놓는다던지 하는 모든 행위가 YAGNI에 위반되는 행동인것 같다.
나중에 필요할것 같아서 미리 추가해놓는 행위는, 혹여나 나중에 필요없어질 경우에 다시 제거하는 비용이 들고, 제거를 간과하여 코드의 복잡성 및 가독성을 떨어뜨릴 수도 있기에 되도록 필요한 것을 필요한 시점에 적용하는 습관을 기르는 것이 좋은 것 같다.
'개발 > FrontEnd Interview' 카테고리의 다른 글
관리자 또는 상사가 리팩터링을 거부할 경우에는 어떻게 할 것인가? (0) | 2021.05.29 |
---|---|
언제 리팩터링을 해야하나요? (0) | 2021.05.29 |
리팩터링을 해야하는 이유는 무엇인가요? (0) | 2021.05.29 |
리팩터링이란 무엇인가요? (0) | 2021.05.29 |
왜 styled-component를 사용하셨나요? (1) | 2021.05.14 |