변수나 클래스, 메소드나 함수 등의 이름을 지을 때 대소문자나 underscope(_)의 배치가 획일적이지 않다. 특히 단어와 단어 사이를 구분하기 위해 뭔가 특별한 방식을 사용한다. 이런 방식은 각각 명칭이 있긴 하지만 아마도 대체로 모르고 그냥 쓸 것 같다. 나도 몰랐기 때문에 이 기회에 알아낸 것들을 정리해 보고자 한다.
미리 언급하지만 표준 명칭인지는 잘 모르겠다. -ㅁ-;;
1. camelCase
첫 단어는 소문자로 시작하고 그 이후의 단어 시작은 대문자로 시작하는 스타일이다. Java를 통해서 많이 보급된 듯 하다고 생각되는(?) 이 스타일은 주로 메소드나 변수 등에 많이 쓰인다. MixedCase와 함께 가장 대중적인 것 같다.
명칭은 아마도 낙타혹 처럼 올라갔다 내려갔다 하는 패턴이 반복되어서 이렇게 지었나 보다.
2. MixedCase
보통 클래스는 대문자로 시작한다. C++에서도 그렇고 Java에서도 그렇다. camelCase와 비슷하지만 시작부터 대문자로 시작한다. 이런 스타일을 MixedCase라 부르는 것 같다. 하지만 클래스 명명 때를 제외하곤 거의 쓰이지 않는 것 같다.
3. snake_case
모두 소문자로 명명하지만 단어 사이에 underscope, 즉 밑줄을 넣는 방식으로 단어를 구분하는 스타일. C나 일부 Python 유저 등이 쓰는 듯 하지만 요근래 들어서는 거의 사양되는 느낌이 강하다.
대문자가 없다 보니 땅을 기억는 뱀 처럼 꼬물꼬물 거리는 것 처럼 보여서 뱀(snake) 이라고 이름 붙였나 보다. 개인적으로 가장 마음에 드는 스타일이다.
C의 표준 라이브러리 처럼 알아볼 수 있는 약자는 굳이 밑줄을 표시하지 않고 축약해서 소문자로 몽땅 붙여서 표현하는 스타일도 있는데 따로 거론해야 할지는 의문이다. (명칭도 모르겠다. 그냥 전통방식(tradcase)이라고 할까 -_-) 짧고 가독성도 나쁘지도 않고... 하지만 더 이상 쓰기에는 표준 라이브러리의 방대함 때문에 이름 짓기가 곤란하다...;;
4. UPPER_CASE
보통 상수, 즉 값이 절대로 변하지 않는 변수이름을 쓸 때 많이 쓰이는 대문자와 밑줄 만으로 표현한 스타일. 언어를 가리지 않고 여전히 많이 쓰이고 있는 표현이다.
5. dash-case
이건 거론해야 할까 고민되기도 하지만;;; 사실 Lisp 같은 언어에서나 쓰이는 방식으로 dash(-)도 심볼이 될 수 있기에 단어와 단어 사이에는 dash를 집어놓고 모두 소문자로 표현하는 스타일이다.
Lisp자체가 별로 대중적이지 않아서 약간은 변태적인 스타일이다. 대부분의 언어에서 dash는 빼기(minus) 기호(operator)로 사용되기에 볼 수 없는 스타일이다.
6. etc ...
헝가리안 노테이션이라는 지금은 사장되어 버린 스타일도 있는데 변수 이름 앞에 소문자로 변수의 타입을 기록하는 방식이다. camelCase와 거의 동일하긴 하다. 하지만 가독성을 해치고 지금처럼 스크립트 언어가 발전한 상황에서는 써서는 안될 네이밍이라고 생각한다. 개인적으로 정말 싫어한다. 그래서 Visual-C++을 혐오한다고나 할까 -_-;;
이 외에도 더 있을지도 모르겠지만 여기까지...
Popular Posts
-
예전에 Vim에서 tags 파일 경로를 부모 디렉토리들로 지정해서 자동으로 태그를 지정하는 방법 을 포스팅 했던 적이 있다. 하지만 Emacs에서는 동일한 형태로 지정을 해서 사용하는게 안되었다. 이런 기능을 원했지만 검색으로 찾을 수는 없었다. ...
-
내 나이대도 이제는 젊다고 하기에는 힘든(?) 수준으로 치닫고 있다. 세월의 흐름이 너무 빨라서 아쉽고 벅차고 숨차기는 하지만, 이럴 때 일 수록 추억을 떠올려 보면 나름 재미있는 세월을 보냈구나 생각이 든다. 이참에 옛날 옛적에 쓰던 구식 컴퓨터...
-
제목대로 나는 안드로이드를 혐오하는데... 그 이유를 적기 보단 경험담을 적어볼까 한다. 직접 경험한, 그리고 주변 사람들의 경험담이다. 물론 글로 표현하기 위해 과장하거나 고쳤다 -_-; [참고] 이 글은 2011년 5월 경에 쓰여진 글입니다. ...
-
이번 글은 굉장히 유명한 수학 함수 3가지를 적어보는 글입니다. 그리고 오랜만에 구어체가 아닌 존대말(?)로 쓰는 글이기도 하겠네요. 이번에 언급하는 함수 세 가지, 즉 ceil(), floor(), round() 함수는 C 언어 시절부터 쓰이...
-
메소드(Method)란 클래스에 정의된 클래스 멤버 함수를 의미한다. 스위프트(Swift)에서는 클래스 뿐만 아니라 구조체에서도 동일하게 이 메소드를 정의 할 수 있다는 특징이 있다.
-
Vim이 강력한 편집기로써 군림하게 된 건 편한 키맵, 정규표현식, 그리고 이 매크로 레코딩 기능이 있기 때문이라고 감히 주장하고 싶다. 레코딩 기능은 사용자가 입력하는 키를 그대로 녹화해서 매크로로 만들어 주는 기능이다. 이 기능에 대해 간단히...
-
미국에서 가장 높은데 사는 기름짱조아씨 (Grok 생성) 이 글은 새 위치 로 옮겨지며 이 곳에서는 더이상 유지보수되지 않습니다. 아는 사람이야 이미 다들 알고 있었겠지만 기름 특히 원유에도 종류가 있다는 것을 전혀 모르고 사는 사람도 있다. 이 글을...
-
개인적으로 윈도우를 오랫동안 사용하다 맥을 처음 사용했을 때 용어나 각 앱의 이름이 뭔지 몰라서 막막했던 시절이 있었다. 그 때를 회상하며 약간 헷갈리거나 알 수 없는 용어들을 한번 정리해 볼까 한다.
-
블로그 검색 유입 경로 중 동영상 플레이어에 대한 검색어가 많아서 이와 관련된 글을 하나 써 보자 한다. 주제는 개인적으로 사용해 본 Mac OS X 용 동영상 플레이어 및 소감. (내용이 길어질 것 같기에 스크린샷은 생략 ~_~)
-
Q. 1.3과 1.12 중 어느 버전이 더 최신 버전인가요? A. 1.12가 더 최신버전입니다. 위의 같은 질문류를 커뮤니티에서 본 적이 있는데 놀랍게도 1.3을 1.12보다 더 높은 버전으로 생각하는 사람이 많은 것 같았다. 그래서 이번에는 버...
Tags
Blog Archive
-
▼
2011
(273)
-
▼
4월
(64)
- [iOS] Status Bar 스타일 바꾸기 및 숨기기
- Xcode 4.1 Developer Preview 4 공개
- [Objective-C] 가변 인자(Variable Arguments) 구현
- [Emacs] 괄호 자동 입력 마이너모드 textmate-mode
- [Python] 'is' 커맨드
- Map App Store: The Unarchiver
- [Emacs] face-list.el
- [Humor] 진짜 프로그래머는 그림판으로 코딩한다
- 애플이 위치저장을 하도록 한 이유?
- [Humor] Emacs 유저의 Vim 유저 사이의 소소한 전쟁(?)
- Emacs vs Vim
- [Humor] Real Programmers use ...
- [Emacs] 한글 폰트(글꼴) 설정
- [Vim] MacVim 한글 입력 문제
- [Emacs] 외부에서 파일이 수정되었을 때 자동으로 읽어들이기
- [Emacs] Emacs for iPhone
- [iOS] SBJson - JSON Framework
- [Emacs] 윈도우 관련 커맨드
- [Emacs] Meta키 사망사건
- [Emacs] 반복 입력을 위한 모드, dot-mode.el
- [Emacs] Syntax Highlighting
- iOS 4.3.2 도 벌써 뚫렸다...
- iTunes 10.2.2
- [Elisp] List Enumeration
- [Emacs & Vim] Color Theme - Solarized
- [Emacs] anything-for-files 의 문제
- [Humor] vim or emacs?
- [Vim] Script: Open URL
- [Emacs] Cocoa Emacs 에서 Pymacs 기동이 안되는 경우
- Mac OS X 업데이트
- Emasc 를 시작하려는 이들이 필수적으로 알아야 할 것
- Symbol Naming
- [Vim] 자동 편집을 위한 길, Recording
- [iOS] NSArray Enumeration
- Emacs 용으로 만든 3D FPS 게임
- [Emacs] Show Line Numbers
- [Mac OS X] Mactracker
- [Vim] Plugin: Align
- [Vim] Plugin: The NERD Commenter
- [Vim] 검색이나 명령어 입력 시 붙여넣기
- [Vim] Plugin: surround.vim
- [Mac OS X] 바람 입력기 설정창이 뜨지 않을 때
- [Vim] Plugin: Conque Shell
- [Vim] 자동완성 플러그인 AutoComplPop
- [Vim] Vim에서 ESC를 눌렀을 때 영문 상태로 전환하기
- [iOS] Objective-C Singletone Pattern
- [Emacs] emacs-evernote-mode
- [Emacs] Edit by root privilege
- [Emacs] shell/eshell/terminal-mode?
- [Emacs] 설정파일(.emacs) 공유
- [Vim] Vim 에서 MarkDown 사용하기
- [iOS] UINavigationController의 push/pop 애니메이션 변경하기
- Dropbox를 경험해보세요
- [iOS] UIView's bounds on UINavigationControl
- 맥용 동영상 플레이어에 대해
- 통신사와 스마트폰 OS 그리고 카카오톡
- [Python] 가장 단순한 싱글톤 패턴(Singletone Pattern)
- [Python] ASCII Conversion
- [Emacs] emacs-w3m
- [Python] isdigit()의 함정
- [Emacs] 번역 기능을 추가해보자
- [Vim] VimOrganizer: org-mode for Vim
- 만우절 트위터 타임라인 속 풍경 한가지
- [Emacs] Anything VS IDO
-
▼
4월
(64)
0 comments:
댓글 쓰기