1. 좋은 코드란 무엇인가
코드란 무엇인가
- 컴퓨터 또는 기계에게 어떤 연산이나 행동을 지시하는 문서
- 그런데 내가 작성한 문서 내용과 관련된 모든 사람이 씹고 뜯고 맛보고 즐기는...
- 그래서, 내가 작성한 문서를 누군가가 검토해주거, 또는 가져다가 쓸 경우가 반드시 발생한다.
- 이를 대비하기 위해 문서 작성시, 가독성은 높게, 수정은 편하게 작성해야 한다
좋은 코드란 무엇인가?
- 성능은 당연하고, 본인 뿐만 아니라 다른 사람이 읽거나 가져다 수정하기 편하게 작성된 코드
→ 읽기 편한(적절한 주석과 읽는 사람의 배경지식을 반영한 + 일관성) 코드, 중복이 없는 코드, 가져다 쓰기(확장성 있는) 편한 코드 등등
1. 읽기 쉬운 코드?
- 내가 만약 공고문을 작성해서 모든 사람들에게 뿌렸다고 가정해보자
- 그 공고문에 주석이 덕지덕지 붙어있으면 오히려 가독성이 떨어질거다
- 또한, 공고문을 작성하면서 상사의 피드백에 의해 이런저런 내용이 수정되다 보면 수정된 내용이 주석에 반영되지 않을수도 있다
- 게다가, 주석을 적절히 사용해서 읽기 쉬운 공고문을 작성하였다 해도, 그 안에 쓰여진 용어들이 그 공고문을 읽는 사람들의 지식 배경에 따라 이해하는 정도가 다를것이다
- 따라서, 읽기 쉬운 코드를 작성한다는 것 -> 내 코드를 읽는 사람들의 배경지식을 반영하여 적절히 주석까지 겻들여서 작성한 코드
2. 중복이 없는 코드?
- 문서에서 어떤 한 내용을 중복해서 쓰게되면, 문서량이 쓸 데 없이 방대해지며, 한 곳에서 수정을 하게되면 중복된 내용이 쓰여진 모든 부분에서 수정사항을 반영해야 함에 따라 불필요한 비용이 발생한다
- 이렇게되면, 독자도 작성자도 상당히 피곤해진다
- 코드도 마찬가지이다.
- 반복된 내용은 별도로 추출을 해놓는 게 가독성 측면에서, 유지 보수 측면에서 모두 좋다
- 하지만, 중복 없는 코드가 만능인 것은 아니다
- A라는 기능을 하는 코드가 중복이 발생하여 별도로 추출였다고 하자
- 만약, A라는 기능을 하는 코드가 필요에 의해 A + a 기능을 하는 코드로 수정이 필요해지면 그것에 따르는 비용이 발생한다
- 따라서, 중복이 없애기 위한 코드를 작성할 때, 별도로 추출한 코드에서 변경 사항을 반영해야 할 경우가 발생할 수 있으며, 그에따른 비용도 발생할 수 있음을 숙지해야한다.