본문 바로가기
프로그래밍 놀이터/디자인 패턴, 리펙토링

[Effective Java] 다른 타입을 쓸 수 있는 곳에서는 String 사용을 피하자.

by 돼지왕 왕돼지 2017. 2. 6.
반응형

 [Effective Java] 다른 타입을 쓸 수 있는 곳에서는 String 사용을 피하자.


aggregate, BigInteger, capabilities, Capability, Effective JAVA, enum, float, iNT, Key, object, string, [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, 집합 타입 등이다.





반응형

댓글