-
나쁜 코드 & 인지 부하 줄이기클린 코드(Clean Code)/프로그래머의 뇌 2024. 1. 22. 00:01반응형
코드 스멜은 인지 부하를 만들어낸다
마틴 파울러가 22가지 코드 스멜에 대한 리팩터링이란 책을 소개하였습니다.
예를 들어 긴 매개변수, 긴 메서드등은 효율적인 청킹을 막고 단기 기억 용량을 초과시킵니다.
또한 메서드의 이름등이 부정확한 경우도 인지 부화를 초래합니다.
예를 들어 getProfiles이지만 내부에서는 프로필을 반환하고, 업데이트를 수행하는 경우에는 getProfilesAndUpdate로 변경하는 것이 좋습니다.
또는 isValid 변수명이지만 boolean 타입을 가지지 않고 List를 반환하는 경우라면? 더 헷갈릴 수 있습니다.
복잡한 문제를 더 잘 해결하는 방법
책에서는 첫 번째로 "자동화"라는 개념을 소개합니다.
자동화의 의미는 특별히 생각하지 않고도 수행하는 작업을 의미합니다.
예를 들면 우리는 양치질을 할 때 특별히 생각하지 않고 수행합니다.
하지만 양치질을 처음 했다면?
자연스럽게 양치질에 신경을 많이 써야 합니다.
양치질을 하기 위한 방법을 공부해야 할 것이고 다른 일과 병행해서 하기 힘들어집니다.
프로그래밍적으로는 우리는 처음 배열의 인덱스를 배울 때 0부터 시작한다는 것을 배우게 됩니다.
나중에는 자연스럽게 인덱스를 계산할 때 항상 1을 빼면서 자연스럽게 연산을 수행합니다.
두 번째로는 "풀이된 예제"입니다.
다른 사람들이 어떻게 문제를 해결했는지 의도적으로 연구함으로써 그렇지 않은 경우 보다 5배 빠른 효과를 얻을 수 있습니다.
대게 자기 스스로 해결하는 게 좋다고 생각하지만 다양한 분야의 연구결과에 효과가 입증되었습니다.
프로그래밍적으로는 best practice를 찾는 연습을 많이 수행하기도 합니다.
또한 책을 읽거나 다른 사람이 잘 작성한 코드를 보면서 의도적으로 학습합니다.
'클린 코드(Clean Code) > 프로그래머의 뇌' 카테고리의 다른 글
생각의 버그 & 이름 잘 짓기 (1) 2024.01.16 코드를 더 깊이 있게 이해하기 & 문제 더 잘 해결하기 (1) 2024.01.12 프로그래밍 문법 빠르게 배우기 & 복잡한 코드 읽는 방법 (0) 2024.01.08 코딩 중 겪는 혼란에 대한 이해, 신속한 코드 분석 (0) 2024.01.01