TIL

TIL-220810

혹등고래1호기 2022. 8. 10. 23:54

이번 주 자바 스프링 퀘스트는 꽤나 재미있는 것 같다. 물론 어렵기도 하지만  테스트 코드를 이제는 작성을 안하면 좀 불안한 규모여서 거의 무조건 테스트코드를 만들고 시작한다. 그냥 뭔가 테스트코드를 만든 다는 것 자체가 좋다. 프로그램이 안정성을 가지고 있는 것 같아서 예전 처럼 테스트 코드 작성을 안하고 했을 때는 프로그램을 일일이 실행시켜서 확인하고 확인할 때 마다 두 손 합장하고 마음속으로 제발!!!!!! 이라고 생각하면서 거의 뭐 기도하듯이 했었는데 확실히 테스트코드를 작성하니까 실행시켰을 때 부담이 적은 것 같다. 물론 뭐 그래도 안되는 경우가 있지만 에러가 발생하는 이유를 친절하게 설명을 해줘서 금방금방 에러를 잡을 수 있었다. 

 

하지만 퀘스트를 진행하면서 난감했던 상황이라고 하면 Trasaction,Task 도메인 모델에 식별자가 없다고 리뷰를 받았다. 도메인 모델은 식별자(id)를 보통 일반적으로는 식별자를 가지고 있는데 저번 주 로그인/회원가입 퀘스트에서는 id나 password같은 식별자로 잡을 만한 객체의 속성값이 있었는데 transaction이나 task객체가 가지고 있는 속성값은 식별자로 사용하는 게 불가능하다. 식별자는 유일해야 하는데 그럴 수가 없기 때문이다. 

 

그렇다면 내가 직접 식별자를 만들어 줘야 하는데 uuid나 timeStamp를 사용을 할려고 했는데 뭔가 애매하다. uuid의 경우는 128비트의 값을 가지고 있는 문자열인데  중복값을 가질 경우의 수가 30층 아파트에서 살고있는데 자다가 자동차가 집에 날아와서 사망할 확률보다 낮은 정도이기 때문에 고유한 식별자로 사용을 할 수 있다. 그래서 사용을 하긴  했는데 이건 엄청난 낭비가 아닌 가 싶다. 주민등록 번호도 7자리로 5천만명이 사용하고 있는데.... 카카오톡 메시지정도의 엄청난 양을 가진 객체는 식별자로 uuid를 사용할 수  도 있을 것 같다. 

 

그래서 직접 만들어 주긴했는데 이게 문제인 점이 신기한게 테스트코드를 클래스단위로 실행하는데 에서는 문제가 없는데 전체 테스트를 돌리면 테스트가 깨진다. 아마 이건 수정을 좀 해야겠다.