관심사 (컴퓨터 과학)

컴퓨터 과학에서 관심사()는 컴퓨터 프로그램의 코드에 영향을 미치는 특정한 정보 집합이다. 관심사는 데이터베이스 상호작용의 세세한 부분처럼 포괄적이거나, 기초적인 계산을 수행하는 등의 구체적인 경우일 수 있으며 이는 개발자, 그리고 논의되는 프로그램 간의 소통 수준에 따라 달라진다. IBM은 관심사 공간(concern space)이라는 용어를 사용하여 개념적인 정보 분리를 기술하고 있다.

개요 
각기 다른 관심사 문제를 해결하기 위해 일반적으로 코드는 논리적인 부분들로 분리시킬 수 있으며, 해당 부분의 특정한 정보를 알기 위해 해당 부분을 알아야 할 필요가 없게 된다. 이를 통해 모듈러 프로그램이 만들어지게 된다. 에츠허르 데이크스트라는 관심사 분리라는 용어를 만들어냈으며 이러한 모듈화 뒷편의 사고방식을 기술함으로써 프로그래머가 시스템의 설계적 복잡성을 줄일 수 있게 한다. 코드의 같은 부분에 혼재된 2가지 다른 관심사는 밀접히 결합(highly coupled)되어 있다고 이야기한다. 선택된 모듈 구획으로 말미암아 하나의 관심사가 다른 관심사로부터 완전히 분리되지 못하게 되는 경우가 있으며 이로 인해 횡단 관심사가 발생하게 된다. 다양한 프로그래밍 패러다임들은 각기 다른 수준으로 횡단 관심사 문제를 해결한다. 데이터 로깅은 일반적인 횡단 관심사로서, 데이터를 실제로 기록하는 특정한 모듈 외에 프로그램의 다른 수많은 부분에서 사용된다.

관심사 분리 문제를 해결하는 특정한 패러다임은 다음과 같다:

 객체 지향 프로그래밍: 객체의 관심사를 기술한다
 함수형 프로그래밍: 함수로서 관심사를 기술한다
 관점 지향 소프트웨어 개발: 관심사와 관심사의 상호작용을 자신만의 구성체로 취급한다

같이 보기 
 횡단 관심사
 관심사 분리

각주

외부 링크 
 Concerns in Rails, by DHH, the Rails creator

소프트웨어 공학