씨발
구현도 못해보고
구현할때 해결해야할 문제를 정의할줄도 모르는 사람들한테
국비교육과정에서 맨날
클린코드 객체지향 이지랄만 하는데
애초에 개발할때 사고가 발생하는 인과관계가


구현을 할줄모른다
=> 해결해야할 문제를 알맞게 정의하지못하고 엉뚱하게 정의해서 뻘짓만 한다
=> 코드가 쓸데없이 더러워지고 산만해진다 +
구현도 실패하고 자기가 쓴 코드도 못 알아보게 된다 +
일부 이상적인 케이스에서만 동작하는 코드가 되고 일반적인 케이스에서 모두 동작하는 구현에는 실패한다
=> 요구사항이 아주 살짝만 바뀌어도 본인이 작성한 모든 코드를 다 갈아엎어야해서 그 과정에서 예상치못한 새로운 문제가 발생한다
=> 갈수록 점점더 개판이 나고 온갖 지랄과 예상할수없는 별의별 문제가 발생한다
=> 본인이 맡은 파트가 박살나고 수습기간에 해고당한다


결국 본질은 클린코드가 아니고
수많은 사례의 구현 경험을 통해서
문제를 올바르게 정의하고
어려운 문제도 쉽게 정의하는 요령이다
그 요령이 쌓이면 자연스럽게 클린코드가 되지않을수가 없고

온갖 디자인패턴과 리팩토링 기법은
한참더 경력 쌓이고서 천천히 봐도 무방하고
어차피 그때가면 자연스럽게 이해가 되는거



그리고 이건 웹프론트엔드 개발 기준으로 쓴글이라서
백엔드,데브옵스,인프라,네이티브앱개발,로우레벨개발
등등에는 해당이 안되거나 덜될수도 있음