NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 학습
  • 매뉴얼

    학습


    기타 3부 - 개발자라면 알아야 하는 기본 원칙. (DRY, KISS, YAGNI)

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 코딩을 좀 더 고차원(?)적으로 하기 위해 알아야할 내용들을 정리하고 있는데요. 이전 내용이 궁금하신 분은 [ 여기 ]를 먼저 읽어보시면 좋을듯합니다. 개발 경력이 어느정도 되시는 분들이라면~ 누가 가르쳐주지 않아도 이미 현업에서 적용하고 있는 내용들일겁니다. 물론, 저도 그렇구요^^;

     

    1. DRY(Don't Repeat Yourself)

    같은 일을 두번 하지 말라는 뜻입니다. SonarQube 정적 분석 도구를 사용하고 있다면, 쉽고 빠르게 문제를 해결할 수 있습니다. 단순히 동일한 코드가 반복되는 경우 공통으로 사용할 수 있는 클래스에 넣어두는게 좋습니다. 같은 클래스의 기능안에서도 반복되는 경우가 있는데요. 이는 아주 안좋은 코딩입니다. 분석 도구를 사용해서 중복도를 낮추는것도 개발자가 해야하는 하나의 업무입니다. 코드의 중복도를 낮추면 재사용성이 높아지고 유지보수 비용이 줄어들게 됩니다.

     

    2. KISS(Keep It Simple, Stupid)

    단순하고 멍청하게 유지하라는 뜻입니다. 말이 좀 그렇긴한데요. 최신의 기술이 반영된 1줄의 코드보다 누구나 쉽게 읽을 수 있는 10줄의 코드가 좋다는 뜻입니다. 뭔가 의미를 함축하는게 모두에게 좋은건 아니거든요. 지금 진행하고 있는 S사 프로젝트가 어려운점이 여기에 있습니다. 함수나 데이터 모델등등... 축약어를 사용하다보니 한번에 파악하기가 어렵습니다. 이는 유지보수성을 해치고 비용을 증가시키는 요인중에 하나입니다. 맴버는 최대한 지양하고, 이벤트나 대리자도 제공되는 상위 모듈에서만 처리해야 합니다. 사람은 한번에 처리할 수 있는 용량에 한계가 있습니다. 이미 5단계를 넘어가는 소스 코드 추적은 분석에 도움이 되지도 않을뿐더러 시간을 낭비하게 만듭니다. 계속 5단계 이전의 코드를 봐야하니까요.

     

    3. YAGNI(You Ain't Gonna Need It)

    필요로 하지 않는 기능을 미리 만들지 말라는 뜻입니다. 앞으로 발생할일에 대해 미리 개발하기 보다는 요구사항에 집중해서 하나의 기능만을 완벽하게 만드는게 좋습니다. 파라메터 1개로 처리할 수 있는 부분을 앞으로 생길것이다라는 개인적인 판단으로 파라메터를 늘려가는건 좋지 않습니다. 또한, 2번의 KISS를 위반하게 되죠. 사용하지 않는 미리 만들어진 기능들은 분석에 어려움을 주고, 개발자가 어떤 의도로 작성했는지 파악하기 어렵게 합니다.

     

    적절한 예제들을 만들어서 좀 더 깊이있게 설명하고 싶지만~ 감기가 걸려서 억지로 글을 작성하다보니... 빨리 눕고 싶어지네요-_-; 언젠가 기회가 되면 현업에서 어떤 방식으로 코딩하고 유지보수하는지에 대해서 좀 더 깊이있게 다뤄보도록 하겠습니다. 지금은 약먹고 이불속으로 들어가야 할거 같아요^^;

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.