안녕하세요. Brad입니다. 아침에 자전거 타면서 손 시려운게 느껴지는게 벌써 겨울이 다가왔음을 느낍니다. 주변에서 감기 걸려 고생했다고 들은 분이 계시는데요. 모두 감기 조심하세요! 걸리면 자기만 너무 손해에요. 콧물에, 두통에 정말 생각하기 싫네요.
오늘은 '좌표계산기' step2를 진행하였습니다. 제가 이전 '사다리게임' 5단계 하고 있을 때 먼저 나아가시는 몇 분들로부터 기능을 구현하는 것보다 UI로 나타내는 부분이 힘들다고 들었는데요. 그때는 그게 무슨 말인지 모르고 나라면 쉽게 할 수 있을거라고 생각하였습니다. 하지만... 정말 생각보다 간단하지 않았습니다. 오늘 과정을 진행하면서 겪었던 시행착오와 그것에 대한 해결과정을 기록해두려 합니다. 더불어서 오전에 진행한 수업에서 의미있고, 재미있는 내용을 많이 배웠는데요. 이와 더불어 정리할 수 있도록 하겠습니다.
Exception을 이용하여 입력을 다시 받게하려면 어떻게 할 것인가?
- 운 좋게 오늘 수업에서 Exception을 이용하여 예외처리하는 것에 대한 힌트를 얻을 수 있었습니다. 제가 생각한 가장 중요한 포인트는 설사 View에서 입력을 받아 Domain영역에서 그것에 대한 처리를 하다 예외발생이 나더라도 그것을 입력받은 위치까지 거슬러올라 가기때문에 다시 입력받도록 가능하다는 것이었습니다.
- 평소 안드로이드 프로그래밍이나 자바 오류 발생시 한곳에서 오류가 발생하면 그것과 연관된 다른 클래스 특정 부분까지 오류 메시지에 뜨는 것을 종종 보았는데 이 말 하나로 확 이해되었습니다!!
- 따라서 저의 경우 utils의
TextParser
클래스에서 입력값에 대한 가공을 하는데요. 여기에서 오류 발생시 입력을 받는 Controller까지 올라오니 그곳에서 예외처리를 하였습니다. 다시 입력받을 수 있게 하는 것은 try ~ catch 구문 밖에while(true)
로 묶어 정상적으로 처리되었을 경우 탈출할 수 있도록 하였습니다.
각 좌표의 x값, y값의 범위를 어떻게 제한할 것인가?
- 이 또한 수업에서 힌트를 얻어 새로운 클래스를 통해 사용자 지정 자료형을 구성하였고 x값, y값의 범위에 들지 않았을 때 예외가 발생하여 다시 입력받을 수 있도록 하였습니다.
- 하지만 이렇게 하니 여러 번거로운 문제가 많이 발생하였습니다. x값, y값이 계산과 UI를 그리는 과정에서 필요한데 int값이 아니라 사용자 지정 자료형 안으로 다시 들어가야 하기 때문입니다.
- 따라서 직선 거리를 구하는 경우 사용자 지정 클래스 안에서 따로 메시지를 수행할 메서드를 정의해 두었고 UI그릴 포인트는 DTO로 따로 만들어 int값이 쉽게 전달되고 빼낼 수 있도록 하였습니다.
어떻게 ResultView를 짜면 가장 깔끔하게 짤 수 있을까?
- 이 부분에서 가장 시간이 많이 소요되고 고민을 많이 하였지만 큰 진전이 없었던 부분입니다.
- Y축과 X축을 그리면서 동시에 좌표를 그려야한다고 생각하니 좀 막막했던 것 같습니다. 그리고 상수로 처리해야할 부분이 많다보니 그 부분은 어떻게 또 보기좋게 짤 수 있을까 고민을 하였습니다.
- 결국은 크게 3가지로 나누었습니다. 2중 for문을 도는데 그 안에서 Y축 담당, X축 담당, 포인트 담당으로요. 나름 노력을 했는데 여전히 아쉬움은 남습니다.
오늘 한 것중에 그래도 제일 재미있었던 부분은 'Exception 처리'입니다. 평소 예외상황 처리를 하기 위해 많은 조건문을 사용하였는데 Exception을 통해 많은 부분을 줄여 유용하게 사용할 수 있을 것 같습니다!
오늘 추가적으로 공부한 부분
'TIL' 카테고리의 다른 글
Today's Dev Notes(2018-10-12) (0) | 2018.10.12 |
---|---|
Today's Dev Notes(2018-10-10) (0) | 2018.10.10 |
Today's Dev Notes(2018-10-05) (2) | 2018.10.05 |
Today's Dev Notes(2018-10-04) (0) | 2018.10.05 |
Today's Dev Notes(2018-10-03) (0) | 2018.10.03 |