클린코드, 리팩토링, 시큐어코딩

상현·2023년 1월 15일
0

cs스터디

목록 보기
1/28
post-thumbnail

클린코드

  • 코드를 처음 보는 사람도 동작방식을 알 수 있게 해주는 깨끗한 코드
    • 가독성 있는 코드를 통해해석에 드는 시간과 노력을 줄여줌

가해성

  • 코드의 구성요소를 파악하는 데 도움을 주는 것들

  • 언어별 네이밍 방식을 지키는 것

  • 팀원간 IDE 포맷터 세팅을 통일화 하는 것
    • 파일당 행을 500줄 아래로
    • 파일은 두괄식으로 작성
    • 최대 가로 길이 통일화

  • 함수를 작게 구성함
    • 들여쓰기(if, for 등)가 많아지면 다른 함수로 대채
    • 하나의 객체는 반드시 하나의 동작만의 책임을 갖는다(단일 책임 원칙)
      • 다른 객체와의 의존성이 줄어들게 함
    • 함수가 한 화면을 넘어가지 않게 함

  • 주석을 최소한으로 사용
    • 중요도가 낮아 관리가 잘 안되기 때문
    • TODO/제한 사항
    • 특정위치에 몰아서 작성하여 관리하기 쉽게 함

가독성

  • 개발자들이 코드를 이해하기 쉬운지 어려운지를 나타냄

  • 추상화

    • 함수는 하나의 추상화 단계만을 처리함
    • n단계의 추상적인 함수는 n-1단계의 추상적인 함수로 이루어짐

  • 이름을 명확하게 짓기

    • 축약, 대명사, 생략을 사용하지 말 것
    • 서로 무관한 함수에 같은 이름을 사용지 말 것 (구분가능성)
    • 서로 연관된 함수에서 다른 이름을 사용하지 말 것(일관성)
    • 매직넘버, 매직 스트링을 사용하지 말 것
    • 하위 함수일수록 이름을 구체적으로
    • 하위 변수일수록 이름을 추상적으로

  • 인자가 많아지면 구조체나 클래스로 묶어서 보내는 것이 좋음



리팩토링

  • 결과의 변경 없이 코드의 구조를 재조정하는 것
    • 가독성을 높이고 유지보수를 편하게 하는 것이 목적
    • 기능을 변경하거나 버그를 고치는 작업은 아님

  • 리팩토링을 할 때는 기능을 추가하지 말 것
  • 리팩토링을 하는 이유
    • 중복되는 코드를 제거
    • 소프트웨어를 보다 이해하기 쉽게 만들어줌
    • 버그를 찾기 쉬워짐

  • 주의사항
    • 리팩토링 전에 코드가 정상적으로 돌아가는 지 확인해야 함


시큐어 코딩

  • 개발 단계에서 소프트웨어의 보안 약점을 제거함
    • 개발자의 실수, 코드상의 오류, 사이버 공격 등을 차단

  • 입력 데이터 검증 및 표현
    • SQL 인젝션을 막기 위해 입력데이터를 검증하여 안전하게 만듦
    • 공격 의심문자를 html상의 코드로 바꿔 해당 코드의 실행을 막음

0개의 댓글