Backend
home
📘

[개념 정리] SRP-단일 책임 원칙

생성 일시
2025/02/26 05:56
태그
Java
게시일
2025/02/26
최종 편집 일시
2025/02/26 06:06

1. 단일 책임 원칙이란?

하나의 객체가 하나의 책임만 져야 한다는 의미이다.
클래스를 단 한 가지 목표만 가지고 작성해야 한다는 것을 의미한다.
단일 책임 원칙은 애플리케이션 모듈 전반에서 높은 유지보수성과 가시성 제어 기능을 유지하는 원칙이다.

2. 예시

직사각형 면적을 구하고 단위를 변환하는 문제를 다음과 같이 RectangleAreaCalculator라는 하나의 클래스에서 구현할 수 있다.
public class RectangleAreaCalculator { private final int width; private final int height; public RectangleAreaCalculator(int width, int height) { this.width = width; this.height = height; } public int area() { return width * height; } }
Java
복사
위 코드는 직사각형 면적을 계산하는 한 가지 동작만 수행하기 때문에 단일 책임 원칙을 따른다.
다음은 미터를 피트(feet)로 변환하는 동작만 수행하는 메서드이다.
public class AreaConverter { private static final double INCH_TERM = 0.0254d; private static final double FEET_TEAM = 0.3048d; public double metersToInches(int area) { return area / INCH_TERM; } public double metersToFeet(int area) { return area / FEET_TEAM; } }
Java
복사
이 클래스 역시 단일 책임 원칙을 따른다.
⇒ 피트 변환 동작만 수행하는 AreaConverter 클래스
이와 같이 단일 책임 원칙을 통해 클래스 설계를 잘하면 클래스 분석에 대한 오버헤드를 줄일 수 있다.