프로그래머스에서 레벨 1 문제 2개를 Java로 풀었다. 서울에서 김서방 찾기, 자릿수 더하기를 풀었다. 엄청 간단한 문제였지만 테스트 코드 붙이는 것과 Java 자체의 숙련도가 떨어져서 오래 걸렸다. test를 짜기 위해서 Junit에 대한 책을 보려고 했지만 당장 어떻게 짜야지만 테스트를 돌릴 수 있는 얘기가 없어서 접고 실속 있게 인터넷에 찾아서 적용을 하고 문제를 풀었다.
문제를 푼 후 Todolist를 다시 만지기 시작했다. 어제 피드백 받은 대로 컨트롤러에서 ui가 뭐 하는지 노출되면 안 되는 부분과, 단계별로 ui (인풋) 요청 -> 받고 -> domain 요청- > 받고 -> ui 요청을 작성을 하려고 했다. 그러나 ui에 요청을 할 때 한 번만 하는 것도 있고 두 번을 하는 게 있다. 뭐 그냥 상황 별로 한번 요청하고 두 번 요청할 수는 있지만 코드를 줄이려면 결국엔 일반화를 해야 하는데 하나 요청할 때랑 두 개 요청할 때 한번 요청하고 두 번 요청한다는 것을 알아야 하는데 모르겠다. 그리고 app의 요청에 따라 실행할 때 쓰는 script가 있고 끝날 때 Script를 쓰는 곳도 있고 없는 곳도 있어서 이것을 또 일반화하려면 없는 곳과 있는 곳을 구분해야 한다.
Feeling
Java 너무 어렵다. type 변환 진심 더럽다.
todolist 제대로 짜고 있는지도 모르겠다.
Findings
Java에서
Integer.parseInt(value) => value를 Int type로 변환
Integer.valueOf(value) => value를 Int type로 변환
Character.toString(value) => Character type인 value를 String으로 변환
String.valueOf(value) => value를 String type로 변환
split(””) 사용 가능하다.
String 2개를 비교할 때 a==b를 써서 되는 곳도 있지만 a.equals(b)로 해야 한다. 되는 곳은 아마도 높은 버전의 jdk 안되는 곳은 낮은 버전의 jdk를 쓸 때. 보통 a == b를 할 때 주솟값을 비교를 한다.
eunum은 많은 변수들이 있고 그 변수들이 많은 property를 가질 때 쓰는 것 같다.
test를 짤 때 @test를 선언하고 메서드를 만들고 assertEquals(expected, result);를 쓰면 된다.
Future action
문제 풀이를 하니깐 java 쓰는 법을 조금 이해가 되는 것 같다. 다음에도 Java로 문제 풀이를 해서 Java 사용법에 대한 이해도를 올리자.
지금 todolist를 이것저것 다 짜보고 있는데 엉망진창으로 됐다. 완전 겉핥기로 여기저기 만지다가 결국에는 완성된 게 하나도 없다. 다음에는 짜기 전에 꼭 필요한지 생각해보고 그 짤 때 설계도를 한번 그려보면서 작성하는 것도 나쁘지 않다고 생각한다. 물론 어떤 것들은 그냥 공부 차원으로 짜고 있긴 했지만 필요 없는 것들은 과감하게 버리도록 하자.