728x90

DAMP 원칙은 DRY 원칙과는 반대로, 코드를 구체적으로 만들어 유지보수하기 쉽게 만드는 것이다.
(DRY 원칙 참고 - https://cotist.tistory.com/33)

DAMP 원칙은 코드를 더 직접적이고 구체적으로 작성하여, 코드의 의도를 더 잘 나타내도록 하는 것을 권장한다. 예를 들어, 코드의 함수나 변수 이름을 더 구체적으로 작성하고, 불필요한 추상화를 피하는 등의 방식으로 DAMP 원칙을 따르는 것이다.

DAMP 원칙은 DRY 원칙과는 다르게, 중복 코드를 가능한 한 피하지 않고, 코드를 보다 직접적이고 구체적으로 작성하는 것을 강조한다. 이를 통해 코드를 더 쉽게 이해하여 유지보수를 할 수 있다.

그러나 DAMP 원칙도 과도하게 적용할 경우, 코드의 가독성을 저해하고 코드의 복잡도를 높일 수 있다. 따라서 DAMP 원칙을 따를 때는, 코드의 가독성과 유지보수성을 유지하면서, 불필요한 추상화를 피하는 등의 균형을 유지해야 한다.

 

DRY 원칙을 고수하여 코드 작성 효율성 높이기

DRY란 Don't Repeat Yourself의 약자로, 코드에서 중복되는 부분을 최소화하여 코드의 유지보수성을 향상시키고, 코드 작성의 효율성을 높이는 소프트웨어 개발의 원칙이다. 예를 들어, 같은 로직이 여

cotist.tistory.com

 



예를 들어, 다음과 같은 코드가 있다고 가정해보자.

function calculate(shape) {
  if (shape.type === 'square') {
    const area = shape.side * shape.side;
    console.log(`The area of the square is ${area}`);
  } else if (shape.type === 'rectangle') {
    const area = shape.width * shape.height;
    console.log(`The area of the rectangle is ${area}`);
  } else if (shape.type === 'triangle') {
    const area = (shape.base * shape.height) / 2;
    console.log(`The area of the triangle is ${area}`);
  }
}


위의 코드에서는 객체를 인수로 받아 해당 객체의 `type` 프로퍼티를 기반으로 면적을 계산한다. 그러나 위의 코드는 DAMP 원칙에 따라 구체적이지 않으며, 추상화가 너무 많다. 

DAMP 원칙을 따르는 코드는 코드의 구체적인 의미를 잘 전달할 수 있어야 한다. 이를 위해서는, 코드를 가능한 한 구체적이고 직관적으로 작성해야 한다. 예를 들어, 다음과 같이 작성할 수 있겠다.

function calculateSquareArea(side) {
  const area = side * side;
  console.log(`The area of the square is ${area}`);
}

function calculateRectangleArea(width, height) {
  const area = width * height;
  console.log(`The area of the rectangle is ${area}`);
}

function calculateTriangleArea(base, height) {
  const area = (base * height) / 2;
  console.log(`The area of the triangle is ${area}`);
}


위의 코드에서는 각각의 함수가 개별 도형을 계산하도록 구체적으로 작성되어 있다. 이를 호출할 때, 다음과 같이 인수를 전달한다.

calculateSquareArea(5); // The area of the square is 25
calculateRectangleArea(5, 10); // The area of the rectangle is 50
calculateTriangleArea(4, 8); // The area of the triangle is 16


위의 코드에서는 DAMP 원칙에 따라 코드를 구체적으로 작성하여, 코드의 의도를 더 잘 나타내도록 했다. 이를 통해 코드의 가독성과 유지보수성을 높일 수 있다.

728x90
복사했습니다!