우선 CS를 공부할때 영어로 된 PPT에서 많이 접했던 단어가 있다
바로 Terminology 라고 하는 단어인데, 뜻을 찾아보면 전문용어라고 한다
근데 뭐 편하게 단어라고 해석해도 된다
위의 스크린샷은 인텔리제이의 플러그인 중 하나인 CamelCase를 설치하고 설정창을 열었을때 나오는 화면이다
잘 보면 이름과 함께 형태가 적혀있기에 쉽게 파악할 수 있다
1. kebab-case
케밥은 구글에 검색해보면 서남아시아, 중앙아시아, 남아시아의 구운 고기 요리라고 나온다
그리고 그림을 보면 꼬챙이에 요리들이 꽂혀있는 것을 볼 수 있다
그리고 kebab-case의 형태를 봐도 -로 단어가 이어져 있는 것을 볼 수 있다
케밥케이스는 소문자의 글자와 글자 사이를 -로 이어서 표현한 것을 볼 수 있다
그럼 이제 IT에서 이 kebab-case를 어디에서 쓸까?
URL naming-convention에서 보통 kebab case를 좋은 사용으로 꼽는다
종종 혼용해서 쓰거나 카멜 케이스로도 쓰는 기업들이 있지만 단점이 있다
그건 스택오버플로우가 알려준다
카멜케이스와 스네이크 케이스는 대문자를 만들기 위해서 혹은 특수문자를 만들기 위해서 Shift를 눌러야 한다, 반면에 하이픈방식(케밥케이스)은 그렇지 않다라고 말한다
물론 크롤링에 대한 질문과 답변이긴 했는데 사용자의 측면(UX)에서 봤을때도 쉬프트를 누르지 않는 편이 더 낫지 않은가?
천재지변이 일어나서 쉬프트 키가 먹통인 상황이라면...?ㅋㅋ
어쨌든 케밥 케이스는 -로 이어진 소문자 형태이며 URL에서 쓴다
네이버를 예로 들어도 된다
https://section.cafe.naver.com/ca-fe/
응? 근데 굳이 카페를 ca-fe로 나눈 이유는 나도 잘 모르겠다...
자 다음으로!!
2. snake_case
케밥이랑 다르게 snake는 이 블로그까지 온 사람이라면 한글로도 뭔지 알꺼다!
snake는 뱀이고 뱀은 어떻게 이동하는가? 땅으로 이동한다
그렇기때문에 snake case는 단어끼리 _로 이어서 표현한다
뱀 사진은 징그러워서 패스한다
그럼 IT쪽에서는 어느 경우에 쓸까?
const final 등 상수 변수와 DB 테이블 이름을 정할때 사용한다
example)
static final HELLO_WORLD = "hello world";
table user_role_check
3. camelCase
자 그럼 마지막 카멜케이스!
camel은 한글로 낙타이다
앗 이 사진이 아니고..
이 낙타들을 보면 등에 혹처럼 봉우리가 솟아 있다
이 모양을 따서 camelCase가 만들어졌다
보통의 c-style(include Java) 언어들의 변수명이 카멜케이스로 지어진다
Integer myAge = 30;
+
추가로 카멜케이스랑 비슷한
Pascal Case
이 파스칼 케이스는 카멜케이스랑 다 같지만 첫 글자가 대문자로 시작한다
자바의 경우 클래스나 객체명을 파스칼 케이스로 작성한다
그래서 의존성 주입을 할때 예시를 보면
private UserServcie[파스칼] userService[카멜]
이렇게 표현한다!
그리고 보통 이런 것들을 검색하는 키워드는 code style, coding convention, naming convention 등으로 검색하면 된다!!
--------------------------------------------------------------------------------------------------------------
회사에서 우리 요청 URL은 케밥케이스로 받는다 이렇게 말하면 이제 알아서 싹싹하게 아 cc-aa--bb를 말하는거구나라고 생각하면 된다
그렇다고 여러 pathVaraible로 가야될 요청을 한번에 다 케밥케이스로 넣으면 안된다!!
그리고 좀 더 실생활적인 거는 클라이언트가 요청을 -대신 _로 할 경우도 있기때문에 보통 Converter를 구현해서 요청 파라미터를 컨버팅한후 요청을 처리할 수 있도록 현업에서 한다
아니면 직접 String의 replace를 이용한다던지 enum에 JsonCreator를 사용하기도 한다 ^^
'Computer Science > Programming' 카테고리의 다른 글
소프트웨어 개발 원칙들 모음 (0) | 2022.09.03 |
---|---|
Compile, Link, Build, Run (feat. C vs JAVA) (0) | 2022.08.07 |
댓글