반응형
[Effective Java] 다른 타입을 쓸 수 있는 곳에서는 String 사용을 피하자. |
-
String 으로 다른 값 타입을 대체하는 것은 좋지 않다.
파일, 네트웍, 키보드 입력으로부터 데이터가 프로그램으로 전달될 떄 문자열 형식인 경우가 많고, 그것을 그대로 놔두려는 경향이 있다.
그러나 그것은 실제로 데이터가 원문 그대로일 때만 옳다.
만일 데이터가 숫자라면 int, float, BigInteger 와 같이 적합한 숫자 타입으로 변환되어야 한다.
-
String 으로 enum 타입을 대체하는 것은 좋지 않다.
-
String 으로 집합(aggregate) 타입을 대체하는 것은 좋지 않다.
ex) className + "#" + value
이런 경우 문자열 분석을 해야 해 속도가 느리고, 코드가 길어지면 에러가 생기기 쉽다.
-
String 으로 역량(capabilities)를 대체하는 것은 좋지 않다.
공유되서는 안 되는 key 로 string 을 사용하면 안 된다는 이야기다.
공유되서는 안 되는 Key 로 사용하려면 기본 Object 와 같은 녀석들을 사용해야 옳다.
Summary
더 좋은 데이터 타입이 있거나 또는 작성할 수 있다면, 객체를 string 으로 표현하는 경향을 피하자.
String 을 부적합하게 사용하면, 다른 타입에 비해 더 번거롭고, 유연성이 떨어지며, 속도도 더 느려지고, 에러 가능성이 더 커진다.
일반적으로 string 으로 잘못사용하는 타입은 기본형 데이터 타입, enum, 집합 타입 등이다.
반응형
'프로그래밍 놀이터 > 디자인 패턴, 리펙토링' 카테고리의 다른 글
[Effective Java] 객체 참조는 그 객체의 인터페이스 타입으로 하자 (0) | 2017.02.09 |
---|---|
[Effective Java] 문자열 결합의 성능 저하를 주의하자. (0) | 2017.02.07 |
[Effective Java] 박스화 기본형보다는 기본형을 사용하자. (0) | 2017.02.02 |
[Effective Java] 정확한 계산에는 float 이나 double 타입을 쓰지 말자. (0) | 2017.01.31 |
[Effective Java] 라이브러리를 배우고 사용하자. (0) | 2017.01.30 |
댓글