코딩

BiteSnail·2023년 12월 7일
0

코딩 작업

코딩 개요

코딩이란 각 모듈에 대한 소스코드를 작성하며 문서화하는 단계로 설게서를 기본으로 진행해야 합니다.

코딩 단계 특징

코딩 단계에 할당하는 시간은 다른 단계의 작업보다 대체적으로 적습니다. 하지만 그 결과는 소프트웨어 품질에 미치는 영향이 매우 크기 때문에 정확하고 올바른 소스코드를 생성하는 것이 중요합니다.

신속하고 빠른 작성은 이차적인 목표로 견고한 코드를 작성하는 것을 우선시해야 합니다.

코딩 오류

컴파일이 가능한 프로그래밍 언어의 경우 컴파일 단계에서 대부분의 오류를 잡을 수 있지만, 이것이 불가능할 경우 런타임 중에 어떤 오류를 나타낼 지 알 수 없습니다.

흔히 발견되는 오류는 정해져 있는데 다음과 같습니다.

할당과 해제 오류

  1. 메모리 누수
    1. 할당을 해제하지 않은 메모리가 쌓여 메모리를 가득 채우는 것을 의미합니다.
  2. 중복된 프리 선언
    1. 이미 할당 해제된 메모리를 다시 해제하려고 할 때 발생합니다.

메모리 접근 오류

  1. NULL의 사용
    1. NULL은 아무 것도 없음을 가리킬 수도 있지만 메모리상의 0번째 인덱스를 가리킬 수도 있습니다. 이 경우 커널에 접근하는 것이기 때문에 시스템이 종료됩니다.
  2. 배열 인덱스 오류
    1. 할당된 배열의 인덱스를 벗어날 때 발생합니다. 보통은 out of range가 발생하지만 아주 우연하게 다음 인덱스가 할당되어 있다면 추가적인 문제가 발생할 확률이 높습니다.

사용자 주의 오류

  1. 별칭의 남용
    1. 레퍼런스 타입의 사용은 불변성을 해칠 수 있습니다.
  2. 수식 예외 오류
    1. 0으로 나누는 등의 수식 오류입니다.
  3. 하나 차이에 의한 오류
    1. 부등호의 실수 등에 의해 발생하는 오류입니다.
  4. 사용자 정의 자료형 오류
    1. 검증되지 않은 자료형은 오류를 발생할 수 있는 원인이 될 수 있습니다.

문자열 관련 오류

  1. 스트링 처리 오류
    1. 보통 C 언어에서 많이 발생합니다.
  2. 버퍼 오류

멀티스레드 환경에서의 오류

  1. 동기화 오류
    1. 다수의 스레드가 공통 자원을 접근하려고 할 때 발생합니다. (블루스크린)

코딩 표준

코딩 표준은 코딩할 때 서로 지키는 규칙들이며 만들어진 코드의 가독성을 향상시킵니다.

코딩 표준은 프로그래밍 언어마다 다를 수도 있고 프레임워크 종류에 따라서도 다를 수 있습니다. 그래서 공통된 코딩 표준을 사용하는 것이 중요합니다.

표기법

표기법이란 클래스나 메소드 및 변수 이름 등에 대한 이름 규칙입니다.

대표적으로는 카멜 케이스(camelCase)와 파스칼 케이스(PascalCase), 헝가리안 케이스(Hungarian Notation), 스네이크 케이스(snake_case) 등이 있습니다.

헝가리안 케이스는 변수명 등의 앞에 자료형을 붙이는 것을 말합니다. 자료형이 중요한 c언어 진영에서 많이 사용되었으며 다른 언어에서는 거의 사용하지 않는 것 같습니다.
ex) int iSum = 50;

형식

표기법 뿐만 아니라 들여쓰기나 괄호 또한 코딩 표준에 해당합니다. 이는 프로그램 구조를 명확하게 하기 위해 사용합니다.

들여쓰기는 공백 문자를 사용하는데, 이때 공백문자는 tab 보다는 space를 이용하는 것을 권장합니다. tab은 설정에 따라 크기가 달라질 수 있기 때문입니다.

괄호는 코드 블럭을 구분하는 단위로 사용됩니다. 코딩 표준에 따라 다르지만 한줄의 코드를 실행하는 분기문이라고 할 지라도 구분을 위해 괄호를 사용하는 것을 권장하고 있습니다.

이 외에도 키워드 뒤에 공백을 넣거나 여는 중괄호의 위치 같은 사소한 것도 코딩 표준이라고 할 수 있습니다.

리팩토링

리팩토링(refactoring)이란 결과의 변경 없이 코드의 구조를 재조정하는 것을 의미합니다. 여기에서 중요한 것은 결과의 변경이 없어야 한다는 점 입니다.

코드스멜

코드스멜(code smell)은 리팩토링이 가능한 요소가 남아 있다는 신호라고 할 수 있습니다.

코드 스멜은 다양한 요소로 존재할 수 있습니다.

코드 품질 개선 기법

코드 인스펙션

코드 인스펙션이란 프로그램을 눈으로 보고 확인하는 방법입니다.

보통은 정적 분석도구를 이용한 검사를 끝내고 이루어지며 효율성이나 결함 등을 찾아내는 작업입니다.

정적 분석

보통 IDE에서 제공하는 Warning Information등에 해당하며 데드코드나 사용하지 않는 변수 등을 찾아서 제거합니다.

페어 프로그래밍

페어 프로그래밍은 애자일 개발법에서 두명이서 짝을 지어 코딩하는 것으로 서로가 프로그래밍과 검증을 진행하는 방법입니다.

테스트 주도 개발

테스트 주도 개발에 대한 간략한 설명을 적어놓았습니다.

테스트 주도 개발

profile
느리지만 조금씩

0개의 댓글

관련 채용 정보