1단계 요구 사항:
- Spring Framework를 활용하여 애플리케이션을 구동한다.
- Spark를 대체하여 Spring MVC를 활용하여 요청을 받고 응답을 한다.
- Spring JDBC를 활용하여 DB 접근하던 기존 로직을 대체한다.
2단계 요구 사항:
- 체스 게임을 진행할 수 있는 방을 만들어서 동시에 여러 게임이 가능하도록 하기
기능 요구사항
체스방 만들기
- localhost:8080 요청 시 노출되는 페이지에 체스방을 만들 수 있는 버튼이 있다.
- 체스방 만들기 버튼을 누르고 체스방 제목과 비밀번호를 입력하면 새로운 체스판이 만들어진다.
- 체스방에는 고유식별값이 부여된다. (이 고유 식별값은 체스방 주소에서 사용 됨)
체스방 목록 조회하기
- localhost:8080 요청 시 체스방 목록을 조회할 수 있다
- 체스방 목록에는 체스방 제목과 체스방을 삭제할 수 있는 버튼이 표시된다.
체스방 참여하기
- 체스방 목록에서 체스방 제목을 클릭하면 체스 게임을 이어서 진행할 수 있다.
체스방 삭제하기
- 체스방 목록에서 체스방 삭제 버튼을 클릭하고 체스방 생성시 설정한 비밀번호를 입력하면 체스 게임을 삭제할 수 있다.
- 진행중인 체스방은 삭제할 수 없다.
체스를 또 하다니. 레벨 1 마지막 미션에서 체스로 고통받고 난 뒤 체스는 더이상 볼 일이 없겠거니 했다. 하지만 레벨 2를 시작하자 마자 체스가 또 다시 나를 괴롭혔다. 그래도 다행히 저번 체스 미션과 같은 페어랑 미션을 하게 되서 조금은 수월했다. 스프링은 처음이라 간단하게 todo를 구현해 보는 개인 토이 프로젝트와 함께 미션을 병행했다. 그러고 나니 "스프링 사용은 할 수 있겠다" 라는 생각이 들었다.
그러면 뭐하나, 동작 과정을 제대로 모르는데. 어떻게 사용하는지, 얕은 지식으로 사용하는 프레임워크는 익스프레스와 리액트로 충분하다. 이제는 동작 과정까지 알고 제대로 사용하고 싶다. 그러다 보니.... 왜 할게 안줄어?? 레벨 2 동안 스프링의 깊은 내용을 얼마나 공부할 수 있을지는 모르겠다. 그래도 할 수 있는데 까지는 해봐야지.
도메인이 대체 뭘까? 리뷰어한테 도메인에 대한 질문을 받고 많은 고민을 했다. 구글링을 해보고, 리뷰어랑 토론하고, 크루들이랑 토론하고. 그래도 뭔지 모르겠다. 나만의 명확한 답이 있어야 되는데 아직 그정도 수준은 아닌거 같다. 계속 고민을 하다 보면, 계속 찾다 보면 나만의 기준이 생기겠지.