본문 바로가기

Study/용어

CoC(Convention over Configuration)

반응형

CoC(Convention over Configuration) - 관습을 따르는 설정

 

Convention over Configuration(이하 CoC)는 프로그램 개발 과정에서 생산성을 높이려는 노력에서 자연스럽게 생겨났다. 개발 코드 다운로드 후 첫 실행/수정까지의 시간과 노력을 단축함으로써 생산성을 높일 수 있었기 때문이다.

 

개발자 A(이하 A)가 만든 프로그램을 개발자 B(이하 B)가 추가 기능을 개발해야 하는 상황을 가정해보자. A는 src 디렉터리 아래에 start 디렉터리에 코드의 시작점을 두고 개발을 하는 습관이 있다. 이 습관을 B는 알지 못한다. 이런 경우 B는  A의 코드를 하나하나 찾아보며 시작점을 찾아야 한다.

 

물론 A가 B에게 프로그램의 시작점을 알려주면 B도 수월하게 기능을 개발할 수 있다. 하지만 프로젝트마다, 프로젝트를 담당하는 사람마다 직접 설명한다는 것은 매우 어려운 일이다.

 

CoC는 이런 자유분방함을 규칙으로 만들었다.

 

Maven에 적용된 CoC의 예

위의 그림은 메이븐(Maven) 프로젝트의 기본 구조를 나타낸 그림이다. 개발 코드는 project home/src/main/java 아래에 있고, 테스트 코드는 project home/src/test/java 아래에 있다. 배포되어야 하는 파일은 project home/target 아래에 있다. 이처럼 각 디렉터리마다 일정한 규칙과 목적을 갖게 프로젝트 구조가 구성됨으로써 '개발 코드 다운로드 후 첫 실행/수정까지의 시간과 노력을 단축'이라는 목표를 이룰 수 있게 되었다.

반응형