일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 이분탐색
- Unity3d
- 프로그래머스
- 문자열
- 스택
- 구현
- QueryDSL
- Photon
- 언리얼엔진
- c#
- 스파르타내일배움캠프
- Unity
- unityui
- C++
- 워크플로
- FSM
- 알고리즘
- UnrealEngine
- 포톤
- 스파르타내일배움캠프TIL
- 순열
- Unity2D
- 유클리드호제법
- Firebase
- Inventory
- 유니티
- 내일배움캠프
- BFS
- UE4
- 해시
- Today
- Total
개발 낙서장
Name 필드 네이밍에 대한 고찰 본문
보통 필드 네이밍을 할 때 여러 단어가 합쳐진 필드 이름이라면 대문자 혹은 언더바로 구분하는게 대부분이다.
'유저 이름'이라는 항목을 필드로 만드려면 'userName' 혹은 'user_name' 이런 식으로 필드를 만드는게 일반적이다.
근데 보면서 이상한 부분이 있었다. Spring에서 제공하는 UserDetail이라는 인터페이스에는 username으로 네이밍이 돼있다.
public interface UserDetails extends Serializable {
Collection<? extends GrantedAuthority> getAuthorities();
String getPassword();
String getUsername();
boolean isAccountNonExpired();
boolean isAccountNonLocked();
boolean isCredentialsNonExpired();
boolean isEnabled();
}
🤔...? 지금까지 개발한 경험으로 봤을 때 이런 식으로 필드 네이밍을 하는 경우는 없었는데 너무나도 불편하다.
그래서 유니크한 값이면 네이밍을 저렇게 소문자로 해야 하나? 싶어서 조금 검색을 해보니 이유를 찾을 수 있었다.
- The username is the (usually unique) thing you type in with your password, for example: bobsmith66.
- The user name is the name of the user, the user's real life name, for example: Bob Smith. User name is sometimes used for username, but occasionally it makes a difference, so be clear and avoid the ambiguity. (Better still, use full name when you want them to enter Bob Smith.)
- User-name is a variant of username, but this is rarely used if ever.
https://english.stackexchange.com/questions/43436/username-user-name-or-user-name
해외에서는 username은 패스워드와 같이 사용되는 유니크한 값이다. 즉 우리나라에서 쓰이는 ID/PW의 ID 혹은 이메일 등을 말하는 것 같다.
user name은 말 그대로 진짜 이름(혹은 닉네임)을 말한다.유니크할 수도 있고 아닐 수도 있는 그런 값.
정리해보면 username은 보안적인 측면에서 사용되는 유니크한 값을 말하고 userName은 진짜 유저의 이름을 말하는 것 같다.
근데 보통 우리나라에서는 ID나 이메일을 유니크한 값으로 사용하고 Name은 이름 혹은 닉네임으로 인식하기 때문에 와닿지 않았던 것이다.
그럼 보안적인 측면에서 사용되는 모든 유니크한 값(혹은 필드)들은 전부 네이밍을 저렇게 해야 하나?
이것에 대한 답은 '아니오'라고 생각한다. 코드 컨벤션은 개인마다 다르고 단체마다 다르고 회사마다 다르고 나라마다 다르고 다 다르다. 해외에서는 저런 방식으로 네이밍을 하는 것이지만 우리나라에서는 그냥 하던 대로 쓰면 된다 라는 의견이다.
결론은 그냥 쓰던 대로 편하게 쓰자
'Java' 카테고리의 다른 글
[Spring] AOP로 권한 체크하기 (0) | 2024.03.21 |
---|---|
[Spring] QueryDSL 페이징 (0) | 2024.03.12 |
[Spring] @DataJpaTest 사용 시 UnsatisfiedDependencyException 발생 (0) | 2024.02.20 |
단위 테스트 (1) | 2024.02.16 |
[Spring] DTO와 Entity (0) | 2024.02.15 |