수업 내용중 ./gradlew bootrun 하는 것이 진행이 안되서 cmd에서 진행해 봤는데 ./을 빼고 하니 실행이 되었다
프로젝트 구조 설명하신 부분 복습하면서 gradle.wrapper에 대해서 설명해주셨는데 궁금해서 추가로 찾아보니 프로젝트가 가지고 있는 그래들 버전을 다른환경에서도 유지시켜주어 배치될수 있게 하는 역할을 하는 것 같다
실행창에서 TodoApplicatoin 실행하는 것과 TodoApplication 클래스에 와서 main메소드를 실행시키는 것은 똑같이 실행 시키는 것이었다... 뭔가 조삼모사 당한기분이다.
컨트롤러 테스트를 위해서 sample.http를 활용하는 것과 MockMvc를 활용해서 가상 mvc환경에서 테스트하는 내용 모두 굉장히 흥미롭고 대단한것을 배운느낌이었다
이렇게 느낀 이뉴는 프로젝트를 진행하면서 테스트를 하지 않고 코드를 짜는게 얼마나 어려운일인지 느낀것도 한몫을 했고 다른부분들을 테스트를 하지만 컨트롤러 쪽은 직접 화면에 띄워보면서 테스트 하는 수준에서 답답함을 많이 느끼고 있었기 때문에 그렇다
따로 진행하는 프로젝트에서 바로 활용해 볼 생각에 설레었다
강사님이 테스트에 대해서 많이 강조를 하셨는데 실제로 현업에가서 주니어가 가장먼저하게 될 부분이 테스트이기 때문이기도 하고 코딩에 정말 중요한 부분이기 때문이라고 말씀해주셨다
추가로 테스트 어노테이션에 대해서 궁금해서 강사님께 슬랙으로 질문을 드렸고 답변을 받을 수 있었다
Blog table에 primaryKey인 seq컬럼에 시작하는 값이 2부터 되서 검색해보았으나 이유를 찾지 못해서 초기 값을 주기 위해서 Blog 클래스에 @SequenceGenerator() 어노테이션을 달아 name과 initvalue를 설정해주었더니 1부터 설정을 시작하였다
initvalue=1이 디폴트 값이라 지워주고 실행해보았더니 실행이 잘되어서 다시 @SequnceGenrator어노테이션을 지워주었더니 그래도 동작이 됬다
그래서 seq변수위에 @GeratedValue(genrator = "seq") 라고 이름을 붙여놓은 것 까지 지우고 실행했더니 다시 2부터 생성이 되었다
Blog와 Member는 1:1관계로 매핑되어있기 때문에 하나의 member가 여러개의 블로그에 들어갈수 없게 자동으로 설정되는 것 같다. 굉장히 똑똑하다
Blog에 Member가 꼭들어와야될것 같아서 @Column(nullable=false)를 선언해주었는데 OneToOne mapping되어있는 곳에서는 @Column 어노테이션을 사용하지 못한다고 한다.