코드를 짤 때 이것만 지키면 좋은 것들.
이 것은 나의 기준으로 작성한 것이며 개발자라면 코드를 짤 때 올바른 습관을 가지면서 짜는 것이 가장 중요하다고 생각한다.
같은 결과 값이 나올 때 누가 짜느냐의 따라 다르지만 코딩 내용만 보고도 이 사람은 개발을 해본 사람이다. 이 사람은 개발을 해본 사람이 아니다. 이 사람은 개발 숙련도가 높을 것 같다. 등 판별할 수 있는 근거가 있기 마련이다.
이전 포스팅에서 클린 코드의 법칙의 대해 업로드 해 보았다. 보통 정보처리기사 문제 범위 중 하나이며 면접 시 소프트스킬 검증 할 때 클린 코드가 무엇이며 클린 코드를 구성할 때 사용 원칙 등 한 번쯤 질문받았을 것이며 코드 리뷰 역시 잘 짠 코드인지 왜 그렇게 짰는지도 검증 작업도 진행될 것이다.
필자는 개발을 진행할 때에는 쓸 때 없이 긴 코드를 사용하는 것을 싫어하는 편이며 if문 남발하거나 중복이 지나친 코드를 싫어하는 편이다. 짧으면서도 효과적으로 짤 수 있고 로직 구성 시 최선의 경우가 아닌 최악의 경우로 고려하여 코드로 짠 코드를 개발한 코드라고 여기는 편이다.
특히 IT 서비스 업체에서는 효율적이고 리소스 덜 잡아먹는 코드를 짜는 것이 기본이고 무엇을 짜든 간에 항상 변수적인 부분을 제거하고 짜는 것이 가장 중요하게 여기는 것이다.
간혹 아웃풋만 내고 결과만 좋으면 끝인 개발자가 존재하기도 한다. 나는 그런 마인드로 개발을 하는 사람이라면 아마 같이 하기 싫을 것이다. 실제 코드 상태가 모듈화가 덜 되어 있고 잘게 안 쪼개는 코드와 겹치는 코드가 다량 존재한 경우 declear 코드를 남발해서 사용하는 경우 나는 절대 좋은 코드라고 생각하지 않는다.
먼저 잘 짠 코드라고 불리는 리스트를 간단하게 설명하자면 아래와 같이 말해보고자 한다.
1. 사용 기능은 함수나 클래스로 정의하여 사용한다. 특히 중복이나 각 기능별 정의를 할 경우 각 기능별로 어떤 역할을 수행하고 유지보수하기 편하다.
2. 모든 기능은 main함수 안에 넣지 말자. main 함수 안에 다 넣을 경우 절대 좋은 코드가 아니다. 다시 개발해야 하는 참사가 올 것이다.
3. if문안에 if문 남발은 지양한다. 이는 유지보수에 불편하다.
4. 코드는 가급적 짧게 사용하자. 가독성이 향상한다.
5. 컨벤션 코드 규칙을 지키자. 프로젝트 단위마다 이미 정해진 코드가 있으면 프로젝트에 적합한 코드로 작성하기
6. 모듈화 필수! 컴포넌트화 필수! 단위별 기능으로 구성하는 것도 필수! 쪼갤 수 있으면 최대한 쪼개기
7. 로직에 하드코딩 사용 금지. 값을 숫자나 문자를 넣을 경우 상수로 표현
8. 코드 구성 시 성능 우선으로 코드 짤 것. 단 최선의 방법이 아닌 최악의 방법으로 고려하여 구성할 것.
9. 코드 짤 때는 어떠한 변수라도 차단하면서 구성하기. 단, 요구사항은 언제든지 뒤바뀔 수도 있다.
10. 코드 짤 때는 개발로만 끝내는 코드는 절대 아니다. 운영을 생각하며 짜여야 한다.
11. 개발도 제품을 만드는 작업이라고 생각하는 마음으로 진행하라. 결국 프로그램들은 제품이다.
12. 변수명도 신중이 생각하여 선언한다. 사실 변수명 짓는 게 개발에서 가장 어려운 부분 중 하나이다.
13. 한 가지 언어만 잘한다고 해서 다 잘하는 건 아니다. 각 프로젝트 특성에 맞는 언어로 사용해야 한다.
여기까지 개발의 원칙을 작성해 본다. 개발이라는 것은 원래 클린코딩을 중시하여 구성을 할 경우에는 빠르게 만들어지지 않는다고 생각한다.
간혹 고객사가 개발 일정을 쪼고 빨리빨리 해달라는 말 한마디로 인해 유지보수 코드를 무시하고 당장의 아웃풋만 내는 코드만 작성하다보니 이에 익숙해지는 과정으로 겪는 경우가 존재한다.
이러한 과정을 반복적으로 겪다 보면 결국 나쁜 습관에 베기 시작할 것이고 좋은 코드를 만들지 못하게 된다.
원래는 신입 시절부터 잘 잡고 개발 숙련도를 올리는 것이 가장 좋은데, 현실은 그렇지 못하는 환경이 존재하기 때문에 그러한 습관을 가질 수 밖에 없는게 현실인거 같다.
신입 시절 부터 SI 투입하게 될 경우 멘땅의 헤딩으로 시작하기 때문에 어쩌면 제대로 된 코딩실력을 배우지 못하고 넘어가기 마련인거 같다.
이렇게 경력을 쌓다보면 반복적인 것만 익숙해져 좀 더 난이도가 높은 개발을 하게 될 경우 고생하게 되는 경우가 존재하기도 한다.
만일 나는 후배 개발자가 생길 경우 코딩 할 때 대충 짠 코드는 그냥 넘어가지 않고 가독성 있는 코드와 재사용성 있는 코드로 짜라고 하게 할 것이며 나쁜 습관을 버리라고 하게 할 것이다.
이것 역시 개발자라면 갖춰야 할 습관이라고 볼 수 있다