(코딩 삽질) => return
1. 모든 곳을 꼼꼼히 살펴보자.
부모와 자식의 관계로 이루어진 재귀함수를 구현하는 패턴에서
재귀함수 안에서의 로직만 살펴보다가
정작 밖에 있는 조상 부모의 값을 바꾸지 않아 에러가 났었다.
이렇듯 작은 것 하나를 빼먹어서 오류가 생기는 경우가 있으니
이곳저곳을 유심히 봐야 한다.
2. 값을 대입해보자.
값이 변수에 담긴채로 코드가 진행되다 보니
변수가 가리키는 게 잘못돼 있어 오류가 나는 경우가 허다하다.
값을 하나하나 넣어서 어떤 식으로 코드가 흘러가는지 살펴보자.
그러다보면 어디에서 잘못됐는지를 찾을 수 있다.
3. 콘솔 로그를 이용하자.
오류가 났을 때 코드가 복잡하게 얽혀 있는 곳을 먼저 의심하게 된다.
어려워서 눈에 잘 들어오지도 않기 때문에 콘솔 로그를 써서
진행되는 값이 의도한 대로 잘 적용되는지 파악할 수 있다.
파악해보니 별 다른 문제가 없어 시선을 돌리니
다른 곳에서의 작은 실수를 발견할 수 있었다.
4. 변수 이름을 명확히 하자.
변수 이름을 대충 a, b, c 등으로 지으면
도대체 이녀석이 무엇을 가리키는지 알 수가 없다.
조금 길어지더라도 정확하게 파악할 수 있도록 변수 작명에 고민하고
객체의 객체들을 타서 변수를 지칭하는 코드가 길어질 경우에도
눈에 안들어오니 변수에 넣어서 이름 지어주자.
5. 주석을 적극적으로 이용하자.
주석에는 어떤 짓을 해도 상관없다.
그런데 활용하지 않고 두는 것은
연필을 앞에 두고 공부하는 학생과 같다.
인자를 함수로 받는 콜백 함수는 봐도 봐도 헷갈린다.
함수를 통째로 복사해 가까운데 붙여 넣어서 주석 처리해
머리를 굴렸더니 전보다 쉬워졌다.
6. 노트에 그림을 그려서 이해하기 쉽게 만들자.
주석을 이용해서 그려도 좋지만
불가능한 경우에는 노트에 직접 그림을 그리자.
자료구조의 트리가 어떤식으로 작동하는지 파악하기 위해
노트에 끄적였더니 머리의 과부하가 많이 줄어들었다.
7. 경우의 수를 적어보자.
코딩에 입문하고 계산기를 구현할 때
사용자의 입력에 따라 다양한 조건들이 일을 복잡하게 만들었다.
그러나 각각의 경우들을 적어서 if로 나눠주니
코드의 흐름을 보기에도 편하고 오류 발생을 줄일 수 있었다.
Jest와 같은 테스터도 이를 활용한 게 아닌가.
8. 복잡한 문제를 단순히 쪼개자.
가장 필요한 역량이지 않을까 싶다.
아무리 복잡한 문제도 잘게 나눠서 다시 보면 분명 더 쉬워진다.
복잡한 코드를 잘 지은 이름의 변수로 묶어 주는 것,
하나의 문제 해결 과정을 함수로 정의 하는 것,
수도 코드 등을 작성하는 것,
Simple is the Best.
문제 해결 방법을 먼저 정리하는 것이
글자를 매개로 단순화하는 작업과 같으니
복잡한 문제일수록 코딩에 앞서서 해야겠다는 생각이 든다.
'개발자 여정' 카테고리의 다른 글
고난도 레거시 코드에서 살아남는 방법 (0) | 2022.02.22 |
---|---|
php 시작하기 (0) | 2020.09.22 |
코드스테이츠 이머시브 코스에서 느낀 것들 (4) | 2020.06.27 |