Even하게 익지 않은 코드는 냄새가 날수 있습니다!
일주일만에 돌아온 개미핥기 입니다. 연말이 가까워 질수록 일이 점점 바빠지면서 글을 쓸 시간이 부족해지내요 ㅠㅠ.
나다 개미핥기
요즘 일 말고도 아는 분들과 프로젝트도 하고 스터디도 하고... 뭐 하여튼 나름 하는게 많아서 블로그 글을 예전만큼 쓰지 못하는거 같습니다.
물론 저만 바쁜거는 아니고 제 프로젝트 팀원분들도 많이 바쁘신거 같더라구요.
팀이 프로젝트를 진행할때 바쁘면 생기는 문제가 꼭 있습니다... 프로젝트 진행이 안되는거 말고 바로 코드 리뷰가 힘들다는겁니다.
다들 자기가 맡은 태스크를 하느라 바빠 남의 코드 리뷰 하는거에 시간을 활당하는게 아주 어렵더라구요. 그래서 어떻게 할까 하다가 생각난 툴이 있었습니다.
솔직히 저도 하기 귀찮습니다.. 허허
이런?
바로 ...
소나큐브 (SonarQube) 입니다. (위 사진은 소나큐브를 만든 소나소스의 로고입니다)
소나큐브가 뭐 하는지는 공식 웹사이트에서 정의된 정보로 알려드리겠습니다.
SonarQube is an open-source platform developed by SonarSource for continuous inspection of code quality to perform automatic reviews with static analysis of code to detect bugs and code smells on 29 programming languages. SonarQube offers reports on duplicated code, coding standards, unit tests, code coverage, code complexity, comments, bugs, and security recommendations
출처: 위키백과
간단하게 말해서 정적 코드 분석을 하며 버그, 반복되는 코드, 유닛 테스팅, 보안 추천 등등을 해주는 툴이라고 생각하면 됩니다.
소나큐브를 사용하면 버그와 냄새나는 코드 (code smell)을 쉽게 알수 있고 이 정보를 토대로 코드를 더 관리하기 쉽고 안전하게 짤수 있도록 도와줍니다. 즉 클린 코드를 짤수 있게 도와줍니다!
물론 모든걸 봐주는건 아니라 (특히 코드 로직 같은거는 잘 안됩니다) 완벽하지는 않지만 저희가 코드 리뷰를 해주더라도 잡기 힘든 (버그 같은) 부분들을 잘 잡아줍니다.
그리고... 무료입니다! 조건이 붙긴 하지만 퍼블릭 레포에서 사용을 할시 무료입니다!
자체적으로 호스팅 (Self-Hosted)을 하시면 당연히 무료고 SaaS로도 제공을 하는 SonarCloud 기준 퍼블릭 레포는 무료입니다.
사용을 하시면 아래와 같이 풀 리퀘시 코드 분석을 합니다.
실패한거는 귀엽게 넘어가주세요 데헷
아래는 잘 통과한 좋은 예시
대부분 개발자들이 그냥 코드 스멜이라고 하시는데 코드에 냄새가 난다고 하면 많은 이유가 있을수 있습니다.
아~~~주 쉽게 생각해서 클린 코딩과 반대라고 하면 됩니다. 대부분의 냄새나는 코드는 결국 나중에 문제를 만들어냅니다.
냄새나는 코드는 결국 미래에 리펙토링을 통해서 잡아주지 않으면 계속 안좋은 코드가 쌓입니다. 그 리펙토링을 하면서 쓰는 인권비, 시간, 등등을 생각하면 초반에 잡아주는게 아주 중요합니다.
그래서 보통 이런 부분들을 Code Maintainability라고도 합니다. 코드의 유지 및 관리가 얼마나 좋은지 확인 하는거죠. 서로 읽기 쉽고 재사용이 쉬운 코드를 짜는건 회사 같은 협업 공간에서는 아주 중요한 기술입니다!
제 블로그글들을 읽어보신분들은 잘 아시겠지만 저는 특정 기술을 소개를 잘하지만 그거에 대한 사용법(?)은 깊게 쓰지 않습니다. 사실 모르거덩여
하지만 소나큐브는 업계에서 잘 사용하는 툴이기도 하고 협업 프로젝트에서는 거의 필수로 써도 괜찮은 툴이라고 생각을 합니다. 그래서 댓글을 남겨 주시면 더 자세한 글을 써보도록 하겠습니다!
물론 소나큐브 하나만 가지고 코드 리뷰가 필요 없어지는건 아닙니다. 하지만 리뷰를 해야되는 영역이 줄어들고 리뷰를 해도 놓칠수 있는 부분들을 잡아주는 아주 좋은 툴이라고 생각하면 되겠습니다.
이제 gpt 코드 리뷰도 Github Actions에 붙여두면 코드 리뷰에서 해방?
이런?
위 같은 실수 하시지 마시고 모두 즐거운 코드 리뷰 되시길 바라겠습니다!
읽어주셔서 감사합니다.