컨벤션

 

나는 유튜브나 인프런 등 온라인으로 강의를 자주 들으면서 컨벤션이라는 단어를 자주 접하게 되었다. 컨벤션.. 매우 생소한 단어라 알아보았다.

 

네이버 컨밴션 검색결과
네이버 영어사전 - Convention

 

 

사전적 의미는 관습이나 관례인데, 보통 코딩을 하다가 "이렇게 하는 것이 개발 컨벤션입니다."라고 자주 들었다. 코딩하는 관습이나 스타일이라고 해석할 수 있겠지만 코딩보다는 뭐랄까.. 프로젝트의 구조를 구성할 때 많이 들었던 거 같았다.

 

 

 

[그들이 쓰는 언어] 12. Convention?

Convention인가요? Convention 입니다. 컨벤션? 사전에 찾아보니 관습, 관례라고만 나온다. Convention 이란 무엇인가? 개발자들이 자주 사용하는 컨벤션은 정확히 말하자면, Convention over Configuration (CoC..

asfirstalways.tistory.com

 

우선 위 글을 참조해 작성해봤다.

 

 

컨벤션은 Convention over Configuration(CoC)를 뜻하며, 간단하게 설명하자면 설정 이상의 관례라고 표현할 수 있겠다. CoC, 컨벤션은 개발자가 정해야하는 수많은 결정들을 줄여, 단순성을 확보하면서 유연성을 잃어버리지 않도록 하기 위한 소프트웨어 디자인 패러다임이라고 한다.

 

 

팀원간의 협업으로 개발을 한다면, 팀원 개개인이 코드를 작성하는 스타일이나 변수명을 네이밍 하는 방법 등 천차만별로 달라질 수 있다고 본다. 일상생활에서 의사소통을 하며 의견 차이가 벌어지는 것처럼 다 같이 작성해야 하는 프로그래밍 코드에서는 안 그럴 것인가? 

 

 

나는 이러한 부분에는 극도로 공감한다. 남자라면 다녀온다는 군대에서 정말 나와는 생각도 다르고 살아온 배경이 다른 사람과 생활하며 임무를 수행 한다는 자체가 처음에는 스트레스를 받았다. 상급자든 하급자든 둘 중 하나는 말이다.

 

 

어느정도 스트레스를 받으며 경험이 쌓이고 각자의 스타일이 파악된다면 트러블 없이 부딪힘이 줄어들며, 일이 순조로워지고 군대에서 속된 말고 짬 찼다고 한다.

 

 

그 사람에 대한 이해일 수 있고 조직에 이해일 수 있지만, 본론으로 돌아와 컨벤션은 대다수의 인원이 코드를 작성하기 때문에 효율적, 생산적으로 결과물을 도출하기 위해 지켜야 하는 룰 정도로 이해하면 될듯하다.

 

 

살짝 의아한 부분은 단순성을 확보하면서 유연성을 잃어버리지 않다는 부분인데.. 조직에서는 단순성과 효율성에 초점을 맞추어 하나의 확립된 컨벤션을 문제가 생기지 않는 한 계속 유지할 것이고 그렇게 된다면 유연성은 자연스럽게 떨어지기 마련이다.

 

조직에서는 단순성과 유연성 두 마리의 토끼를 어떻게 잡을 것인가를 고민해야하지 않을까?