본문 바로가기

dev/Spring

스프링 공부하기 - 토비의 스프링 3 : 5장 서비스 추상화

반응형

... 정말 스프링의 시작과 끝은 Eclipse(혹은 spring tools suite) 및 개발환경 세팅이 절반은 차지할거다...


각고의 노력(?) 끝에 jar 버전 정리 후에 UserDaoTest 클래스의 에러를 다 잡았나 싶었는데,


assertThat(userget2.getName(), is(user2.getName()));

assertThat으로 getName을 가져오는 부분에서는 여전히 오류가 발생했다.

도대체 왜?

그래서 System.out.println 으로 user2.getName()을 직접 출력 해봤는데

아뿔사! 한글 이름 부분을 ???로 표시하는게 아닌가?


또 여기저기 구글링을 한 끝에, encoding 문제라는 결론에 도달했다.


그리고는 project 이곳저곳을 뒤져본 결과, encoding 이 euc-kr로 되어 있는 것을 전부 utf-8로 바꿔주었고

또다시 java.lang.ClassNotFoundException을 맞이했다. -_-;


...encoding을 utf-8로 바꿨을 뿐인데 그거 말고 도대체 어딜 어떻게 건들였길래 이런 게 발생하는 걸까.

짐작이라도 가야 원상복구를 하지...


한시간여의 씨름 끝에 결국 project를 백업하고 지우고 새로 만들었다 ^_^;;;


package부터 class 하나하나 새로 만들고 내용은 복붙해서 복원했다.

이런 것도 복원이라 생각해야 하는지 모르겠지만 -_-;


그러나 끝내 ??? 문제는 해결할 수 없었고, 일단 그냥 넘어가기로 했다.;;;;



5장 서비스 추상화에 들어서 드디어 UserDao 와 UserDaoTest 외에 새로운 클래스를 만들게 되는데,

dao 라는게 아무래도 data access object 이다보니 데이터베이스와 직접연관이 있는 CRUD쪽 메소드만 집중시켜 놓게 된다.

본격적인 서비스 내용(?)이라 할 수 있는 비지니스 로직은 별도로 클래스를 작성하는게 맞지. 암.


그리고 enum을 통해 새로운 user data의 filed를 만들고

그에 맞춰서 데이터베이스에도 새로운 filed를 만들고,

그에 맞춰서 UserDao를 수정했고,

또 새로운 에러를 만났다 ^__________^;




어헝허내험니어ㅏㅎㅁ나ㅓ히ㅏㅓ너


뭐였는지 남겨두지는 않았는데, Incorrent string value, Unexpected int value 였던가...


또 한참 구글링을 통한 결론은

왜인지는 모르겠지만 -_- 이 처음에 생성한 mysql 관련 connnection이 utf-8이 아닌거 같다는거.

string에 한글을 제대로 인식하지 못하기 때문에 rowMapper 값도 ???로 돌려준게 아닌가 싶은 생각이 들었다.


어쨌거나 테스트 코드에서 한글을 전부 영어로 바꾸고 에러는 해결했다.

enum 쓰면서 뭐를 빠트려서 오류도 생겼었고;;



결국 처음에 eclipse 및 mysql을 비롯한 개발환경을 utf8이랑 기타 등등을 챙겨서 잘 세팅했었더라면 지금처럼 수많은 시행착오를 겪지 않아도 되지 않았을까? 하는 뭐 그런 생각이 많이 든다.


삽질하며 배우고 익히다보니 쉽게 까먹을거 같지는 않을 것 같다는 긍정적인 생각을 뭐 하고 있다 -__-;;