본문 바로가기
Programming Knowledge/CS Knowledge

[CS Knowledge] 언어에 관계없이 , 보편적인 코딩 컨벤션, 작성 규칙들(Covention)

by SheenaKaze 2024. 7. 23.

1. 개요

자바스크립트, C언어, C# , Java, 파이썬 등 각 프로그래밍 언어는 각 언어마다 고유의 특징을 진하게 가지고 있고, 언어 별 주로 사용되는 플랫폼과 , 어떤 서비스를 개발하는지에 따라 모두 사용되는 곳이 다 다릅니다. 허나 문법적으로 조금씩 쓰이는 것이 다르고 사용법이 다를 뿐, 천지개벽할 정도의 공부량만큼 해당 내용이 전부 변경되는 것이 아닙니다.
물론 깊이 들어가면 많은 것이 다르겠지만, 일반적으로 대부분의 서비스에서 쓰이는 수준의 언어 학습 내용이라 함은

각 언어별로 전부 공통적인 줄기, 맥은 가지고 있다고 생각하는 편입니다.  차이점은... 아직까지 제가 3년 4년간 개발해오면서 느낀 점은 자바에 있는 쓰임성 좋은 문자열 자르기 함수가 다른 c#이나 자바스크립트에서는 또 다른 방법을 써서 써야한다던가.. 자바스크립트나 파이썬은 이게 되는데 자바는 이게 안되더라..라던가.. Function Develop를 진행하면서도 
"자바,c#이라면 이렇게 할텐데 자바스크립트는 객체지향성의 무엇과는 또 다르구나", "c#은 이게 참 편했는데, 자바는 또 이게 안되는 것도 있구나" 라는 것 정도를 느낀 경험이 있습니다.  분명히 말씀드리는 건 각 언어마다 하나를 마스터할 정도로 정말 잘한다. 이력서나 포트폴리오에 언어 별 레벨 이라고 본인이 기입하는 곳에 "중급", "상급" 이라는 단어 하나를 적는 것에 굉장한 무거움을 느껴야 한다고 생각합니다.  가볍게 "하나의 기술이나, 언어를 이 정도까지 해봤다" 흔히 말하는 찍먹해봤다 수준에서는 사실 해봤다 라고 할 수 없는 것이니까요. 그건 사실 장난감을 한번 작동 시켜본 것 그 이상 그 이하도 아니라고 생각합니다.  깊이 들어가면 정말 어려운 내용도 각 언어별로 정말 많아서.. 각설하고. 
클라이언트에서 쓸만한 서비스의 수준까지를 개발하는 기술까지는 비슷한 양상을 가지고 있습니다. 

오늘은 그 중에서 보편적으로 쓰이는 코딩 컨벤션, 코드 작성 규칙들에 대해 정리하여 포스팅 합니다.

2. 코드 컨벤션이 중요한 이유 

팀 구성원 간에 코드 컨벤션이 지켜지고, 협업에 필요한 룰이 지켜지게 되면 팀원 모두가 같은 코드를 작성하게됩니다.

-> 이는 한 사람이 코드를 작성한 것처럼 코드 전체에 대해 통일성을 가지게 되고 ,이는 유지보수의 관점이나, 인수인계의 관점에서나 너무 다른 레벨의 편리함, 친숙성을 가져옵니다. -> 사람에 의존적이지 않고, 규칙에 의존적인 코드를 짜게 되므로, 모르는 부분의 코드도 빠르게 파악하기 쉽게 됩니다. 
이렇기 때문에 협업하기 전에 여러 Convention들을 정하고 시작하는 것입니다. (형상 관리 룰 , 코드 컨벤션 등)

3. 코드 컨벤션 작성규칙 (Code Convention)

1. camelCase - 첫 단어를 소문자로 표시하되, 이어지는 단어의 첫 글자들은 대문자로 표기하는 기법

저도 주로 이 방법을 제일 많이 써왔던 것 같습니다. c#이나 , 자바에서나 자주 이 방법을 선호해왔던 것 같아요. 
ex) goodPersion , myThings, arrNumber, peopleCnt 등등 
거의 대부분의 변수, 함수 선언에 사용됩니다.

let goodPerson;
var arrNumber;
const arrCnt = 5;

2. kebabCase - 모든 단어를 소문자로 표기하고 , 단어와 단어 사이를 -(대시)로 연결하는 표기법 
이 표기법은 저도 처음보는 것 같습니다. 몇몇 내용은 정보처리기사 시험에서 키워드를 본 거 같은 기억이 나는데, 

케밥 케이스..? 처음 보네요. 

ex) good-person, my-things, arr-number, people-cnt
프로그래밍에서 쓰인다기 보다는, 보통 파일명, 폴더명을 만들 때 사용되는 편입니다. 페이지, 경로 이름, 폴더명, css class name 등.. 

pages 하위 항목 todo-list

3. snake_case - 모든 단어를 소문자로 표기하며 단어와 단어 사이를 _(언더바) 로 연결하는 표기법

const snake_case = "this is snake style";
var ent_good_person = "this is snake style";

자바스크립트에서는 전부 소문자인 표기는 잘 쓰이지 않지만, 대문자 표현은 상수 표현이 자주 사용됩니다. (Upper case)

 

4. pascalCase - (첫 글자와 이어지는 단어의 첫 글자를 대문자로 표기)
TodoList.tsx, Detail.tsx  , GoodPerson, MyKakaoCake, IAmDeveloper 
파스칼 이라는 프로그래밍 언어에서 사용한 표기법입니다. 컴포넌트, page 파일 명에 많이 사용됩니다.

// Pascal case
var GoodPerson = "";
const MyArraysCnt = "";

 

5. upper_case (어퍼케이스) - 모든 단어를 대문자로 표기하고, 단어와 단어 사이를 _(언더바)로 연결하는 표기법
대부분의 프로그래밍 언어에서 이는 상수 변수(constant variable)의 이름을 이렇게 사용하고 있습니다. 

const MILLSECONDS_PER_DAY = 60 * 60 * 24 * 1000;

4. 변수, 함수 선언 시 유의

4-1 boolean 타입의 변수 작명 규칙 

const isCnt = true;
const existCnt = true;
const thisSuccess = false;
var isLoading = false;

is ,has , thisIs, -ing 사용

 

4-2 복수의 형태를 띄는 경우 명확히 복수의 표현을 사용할 것

//복수인 경우에는 복수 표현 사용할 것
// bad
var number = [1,2,3,4,5,6,7,8,9,10]
// good
var numbers = [1,2,3,4,5,6,7,8,9,10]