-
Notifications
You must be signed in to change notification settings - Fork 0
김현우
mirageoasis edited this page Jul 19, 2024
·
8 revisions
#1주차
- 평범하게 체스를 구현하였다.
시작

움직임

에러 처리

이렇게 말을 움직이면 체스가 움직이는 방식을 사용했다.
기물 클래스

이번 프로젝트에서 자바의 다형성의 개념을 제일 잘 서술할 수 있는 클래스는 체스 기물을 표현 Piece
클래스와 하위 구현체다. 하위 클래스에서 abstract
키워드를 단 함수를 구현해서 다형성을 살리는 방식을 사용. 또한, null
값을 그냥 null
로 하지 않고 클래스로 구현해서 다형성에 부합하게 구현할 수 있었다.
- 이번 과제는 설명을 그대로 따라가서 구현한 느낌이 강하다.
- 처음부터 적합한 구조를 생각하기 보다는 그 때 그 때 최선인 구조를 찾고, 시간이 오면 해당 구조를 뜯어 고치는 방향으로 코딩은 하였다.
- 이 때, 테스트 코드가 적절했다고 생각한다. 다시 한번 테스트 코드의 중요성을 깨닫게 된다.

/index.html 이라는 입력을 받으면 index.html
이라는 정적인 파일을 return하는 프로그램을 만들었음

이렇게 등록하는 폼에 형식을 채워넣고 회원가입을 하면 회원가입 처리를 할 수 있다.
HTTP
요청을 받는 곳과 해당 요청을 처리할 Handler
를 배치하는 것을 분리하면서 스프링이나 톰캣은 어떻게 하는지 궁금해서 찾아보았다. 그러면서 이해가 조금 늘었다. 귀찮긴했어도 이 때 아니면 언제 톰캣 구조를 뜯어보나 생각이 들었다.
글을 쓰는 기능을 구현하였고, 없는 페이지, 권한이 없는 페이지 접근했을 때 각각 알맞은 에러를 리턴하는 페이지를 만들었다. 그리고 권한이 없으면 로그인 페이지를 띄우기도 한다.
- multi-part를 하면서 이진 자료형을 받기 위해 기존의 buffered reader를 뜯어 고치면서 배운 점이 많았다.
- 톰캣도 실제로 바이트 하나하나 읽으면서 입력을 처리하는 것 같아 보인다.
- 또한, InputStreamReader는 한번에 모든 바이트를 읽을 수 없어 나눠서 읽는 행동을 보인다. 이 때, 몇 바이트를 읽는지 확인하고 끝까지 입력을 읽어야한다.