Backend
home
📘

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

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

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 클래스
이와 같이 단일 책임 원칙을 통해 클래스 설계를 잘하면 클래스 분석에 대한 오버헤드를 줄일 수 있다.