짤막 비교

toString() vs asString() / asString() vs 직렬화(Serialization)

SH3542 2025. 1. 12. 20:32

 

  toString() asString()
출처 Object 클래스에 정의되어 모든 클래스에서 상속받음 (Java 표준 라이브러리) 특정 라이브러리나 개발자가 정의하여 사용 (Java 표준 미포함)
기본 동작 객체의 클래스명, 주소, 해시코드 등을 반환
(기본 구현, 필요시 오버라이딩하여 커스터마이징)
라이브러리나 개발자가 정의한 특정 문자열 반환
사용 목적 디버깅, 로깅, 객체의 문자열 표현 제공 객체를 특정 형식의 문자열로 변환 (이후 추가 로직에 쓰거나, toString()과 같이 활용)

 

 

  직렬화 (Serialization) asString()
목적 객체를 바이트 스트림으로 변환하여 저장하거나 전송 객체를 문자열로 변환하여 사용
복원 가능 여부 복원 가능 (역직렬화 가능) 복원 불가능 (단방향 변환)
사용 사례 네트워크 전송, 파일 저장, 객체 상태 복원 추가 로직에 쓰거나, toString()과 같이 활용
Java 기능 사용 여부 Serializable, Externalizable 인터페이스 사용 사용자 정의
성능 바이트 변환 - 상대적으로 더 많은 자원 사용 문자열 변환 - 직렬화보다 상대적으로 가볍고 빠름

 

 

(성능은 물론 쓰임에 따라 상이하므로 로그 찍어야 안다.)

'짤막 비교' 카테고리의 다른 글

Validator Class vs validateSelf()  (0) 2025.01.13