PGR21.com
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다.
통합 규정을 준수해 주십시오. (2015.12.25.)
Date 2019/03/14 01:08:56
Name 레이첼 로즌
Subject [질문] 코딩 스타일 질문..
camelCase, snake_case와 ALL_CAPS_UNDERSCORE가 무엇이고, 어떤 어떨 때 사용하는지 모르겠습니다.. 인터넷으로 알아봤지만 잘 이해가 가지 않네요... 그리고 UpperCamelCase와 lowerCamelCase는 어떻게 구별하여 사용하는지?도 알고 싶습니다. 답변에 대해 미리 감사드립니다.

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
19/03/14 01:19
수정 아이콘
일종의 작명법입니다. 변수, 함수, 클래스, 모듈 등등 이름을 지을 때 이름을 어떻게 지을까? 에 대한 몇 가지 널리 쓰이는 방식들인거죠. 비유하자면 "김철수"라는 이름이 있을때 "김 철수"로 쓸것인지 "김철수"로 쓸것인지 "철수 김"으로 쓸 것인지 같은겁니다.

그러니까 그냥 맘에 드는대로 쓰셔도 별 문제는 없습니다. 다만 한국인 "김철수"의 이름을 "철수 김"으로 부르면 의사 소통이야 되겠지만 왠지 어색한 것처럼, 프로그래밍 언어에도 언어 별로 널리 쓰이는 스타일이 있습니다. 가령 Python의 클래스 이름은 FooBar로 짓고, 메서드 이름은 foo_bar로 짓고.. 하는 식입니다. 대부분은 보기 좋으라고 맞추는 것이고 기능적 차이는 없습니다.

(다만 몇몇 언어에서는 예외적으로 기능의 차이가 있는 경우가 있습니다. 예를 들어 Go의 경우 대문자로 시작하는 이름은 모듈 밖에서 쓸 수 있지만 소문자로 시작하는 이름은 모듈 밖에서 쓸 수 없다던가..)

주로 쓰이는 스타일은 언어 별로도 다르고 프로젝트 별로도 다른 경우도 있어서 일반적으로 뭐라 말씀드리기는 어렵습니다. 사용하시는 언어에서 가장 널리 쓰이는 스타일 가이드를 검색해보세요.
BlazePsyki
19/03/14 01:22
수정 아이콘
그냥 변수 이름 짓는 스타일인거 같네요. 대부분 공백을 변수명 중간에 넣을 수 없기 때문입니다만...
camelCase: 중간에 단어를 구분할때 대문자로 강조해서 구분하는 스타일이죠. 대문자로 한번씩 올라오는 게 낙타와 같다하여 camelCase구요, 맨앞이 대문자냐 소문자냐에 따라서 UpperCamelCase냐 lowerCamelCase로 갈리네요.
snake_case: 단어 구분할때 언더바(_)를 사용하는 경우죠. 뱀 기어간다는 뜻입니다.
ALL_CAPS_UNDERSCORE : 모두 대문자로 쓰고 중간 공백을 언더바로 구분.

이걸 어떨때 사용하냐구요? 개발자 맘입니다. Convention이 정해져 있으면 공통적으로 맞춰야되긴 한데 혼자 할때는 자기가 편한거 쓰면 장땡이죠.
포포탄
19/03/14 01:28
수정 아이콘
(수정됨) 쓰는것은 자기 마음이지만, 일반적으로
ALL_CAPS_UNDERSCORE 는 전역변수, static 변수같이 값변경에 매우 주의를 요하는 경우에 쓰이고,
UpperCase는 클래스와 같은 객체단위,
lowerCase는 변수나 함수를 명명할 때 사용됩니다.

또, camelCase는 객체지향언어들(자바, 스위프트 등)에서 주로 활용되며,
snake_case는 스크립트 언어(파이썬, 자바스크립트 등)나 템플릿언어에서 주로 활용됩니다.
하지만 최근에는 스크립트 언어들에서도 되도록 camelCase를 따르는 것이 추세이긴 하더군요.

이와 별도로, 임시변수나 내부변수에는 _camelCase 와 같이 언더스코어를 결합해서 구분하기도 합니다.


이와 같은 컨벤션을 미리 알고 있으면, 다른 코드를 읽을 때 빠른 속도로 이해/협업이 가능하다는 장점때문에 이러한 케이스들에 대해서 어느정도 숙지하고 공부하시는게 좋습니다.
-안군-
19/03/14 03:15
수정 아이콘
윗분들이 잘 설명해주셨지만 약간 첨언하면 명명법이나 코딩 규약 등은 기본적으로 혐업을 할 때의 편의성을 위한 겁니다.
특히나 오픈소스 프로젝트 등에서는 꽤 중요한 요소가 되죠. 공개 소스등을 많이 읽어보시면 용례에 대해서 감이 오실겁니다.
19/03/14 04:25
수정 아이콘
명명법에서 가장 중요한 것은 현재 프로젝트에 맞게 본인이 맞춰야한다는거고, 어떠한 것을 사용하던지는 크게 상관이 없습니다.
레필리아
19/03/14 09:36
수정 아이콘
영어로는 naimg convention이라고 합니다.
진행 중인 프로젝트에 참여하실 때는 프로젝트 규칙을 따라 주시면 되고, 그렇지 않은 모든 경우에는 입맛대로 하시면 됩니다.
(요즘 오픈소스 프로젝트들은 구글에서 만든 convention을 많이 사용하는 듯 합니다)

코드 스타일이 바뀌면 가독성이나 이해도가 확 떨어지는 경우가 있는데,
다양한 코드 스타일을 접하셔서 그런 경향을 줄이시면 좋습니다.
월급루팡의꿈
19/03/14 10:23
수정 아이콘
요새는 거의 구글 쪽으로 정리되는거 같긴 한데.. 아직도 vc6.0 시절의 헝가리안을 standard라고 우기는 사람들도 가끔..
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
175751 [질문] 투자 질문 [6] Emiyasiro824 24/04/13 824
175750 [질문] 간단하게 먹을 수 있는 단백질 뭐가 있을까요? [8] 돔페리뇽1054 24/04/13 1054
175749 [질문] 블러드본보다 덜 잔인한 소울 추천 부탁 드려요. [14] 모나크모나크1019 24/04/13 1019
175748 [삭제예정] 짜증?나는 상황이 생겼는데, 컨트롤 하고 싶습니다ㅠ [21] 맥주귀신2402 24/04/13 2402
175747 [질문] 퇴사자 입니다 퇴직연금 dc 질문입니다. [4] 마스쿼레이드1842 24/04/13 1842
175746 [삭제예정] 클래스 101 4인 구독 같이 하실 분 계실까요? [9] 레이오네1823 24/04/12 1823
175745 [질문] 혹시 배경 좀 투명화 시켜주실 수 있나요? [6] 마지막좀비1761 24/04/12 1761
175744 [질문] irp 잘 아시는 분 질문드릴게요... [3] 닉넴길이제한8자1695 24/04/12 1695
175743 [질문] 하드디스크 망가졌는데 50만원이면 복구하나요? [18] 붕붕붕2376 24/04/12 2376
175742 [질문] 가성비 좋은 휴대폰 있을까요? [6] Rays1106 24/04/12 1106
175741 [질문] 자전거 처음인데 잘 타는법 있을까요? [17] 류크1065 24/04/12 1065
175740 [질문] 특정 usb를 꽂았다 뺀 이후로 pc에서 덜그덕 소리가 납니다;; [4] 하나752 24/04/12 752
175739 [질문] 여름철에 햇빛 잘 막으면서 무난하게 쓰고 다닐만한 모자 추천 부탁드립니다 [5] 파르셀621 24/04/12 621
175738 [질문] 음주 교통사고 질문이 있습니다. [2] shadowtaki1210 24/04/12 1210
175737 [질문] (If) 삼국지에서 위나라가 진나라에 정권 안 뺏기고 통일 했으면? [6] pecotek1264 24/04/12 1264
175736 [삭제예정] 결혼준비 갈등 ..조언부탁드립니다. [43] 삭제됨2733 24/04/12 2733
175735 [질문] 웹툰 추천 좀 부탁드립니다. [16] 2501201 24/04/12 1201
175733 [질문] 주린이 질문입니다..(토스증권, 미국주식) [8] 속보1356 24/04/12 1356
175732 [질문] 혹시 예가체프 더치커피 파는 카페있을까요? [4] 스물다섯대째뺨1128 24/04/12 1128
175731 [질문] TV용으로 돌비가 지원되는 가성비 무선 헤드폰 추천 부탁드립니다. [2] 깐쇼새우1486 24/04/12 1486
175730 [질문] [도와주세요]소리만 듣고 무슨 폰게임인지 찾아내야합니다!! [6] 불대가리2231 24/04/11 2231
175729 [질문] 머리 편하게 식힐게 뭐가 있을까요? [22] 항정살2848 24/04/11 2848
175728 [질문] 초등학교 1학년 로블록스?? 괜찮을까요?? [13] 애기찌와2248 24/04/11 2248
목록 이전 다음
댓글

+ : 최근 1시간내에 달린 댓글
+ : 최근 2시간내에 달린 댓글
맨 위로