Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DDD] MemberId에 Serializable을 붙여야 하는 이유는 무엇인가요? #10

Open
worldii opened this issue Oct 15, 2023 · 1 comment
Assignees
Labels

Comments

@worldii
Copy link
Member

worldii commented Oct 15, 2023

P.141 중간 코드에 Serializable 이 붙여져 있는데, 붙여야 하는 기준이 궁금합니다

@jjiwoning
Copy link
Contributor

여러 자료를 찾아보았는데 원래는 엔티티에도 Serializable을 구현하는게 JPA의 표준 스펙이라고 합니다.

그러면 왜 엔티티에 Serializable을 구현하지 않았나 생각해보면 엔티티 객체를 직렬화할 일이 없으니 구현하지 않았다고 생각합니다.
(JRE 220에 직렬화가 필요하지 않은 경우에는 Serializable를 구현하지 않아도 되어있습니다.)

엔티티 객체 데이터를 바이트 형태로 어딘가로 전송하거나 저장해야되는 용도가 발생한다면 Serializable을 구현해야 될거같습니다.
(직렬화하여 데이터를 저장해야 되는 경우)

붙여야 하는 이유는 결국엔 찾지 못 했지만 아마 하이버네이트 내부에서 EmbeddedId 클래스 객체를 직렬화하여 어떠한 작업을 수행하지 않을까 생각합니다.

직렬화에 대한 내용은 이펙티브 자바 12장 직렬화 파트를 참고해보세요

참고 자료

https://www.inflearn.com/questions/16570/%EB%B2%84%EA%B7%B8-%EB%AC%B8%EC%9D%98%EB%93%9C%EB%A0%A4%EB%B4%85%EB%8B%88%EB%8B%A4

https://bravenamme.github.io/2020/02/05/java-serializable/

https://techblog.woowahan.com/2550/

@worldii worldii self-assigned this Nov 14, 2023
@worldii worldii added the DDD label Nov 14, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants