안녕하세요. Brad입니다. 개천절 쉬는 날이지만 장소만 다르지 어제와 똑같은 하루인 것 같습니다. 오늘은 어제보다 좀 더 진전이 있었으면 좋겠네요. 깨달음도 얻구요!!
오늘도 역시 제가 '사다리게임'을 진행하면서 겪었던 시행착오와 그것을 해결했던 내용을 위주로 기록해보겠습니다.
사다리 이동을 하면 고르게 숫자가 분포되어야 하는데 하나에 집중되거나 결과값이 중복되는 이슈 발생!
equals(), hashCode(), toString()를 통해 찍히는 값을 찾아보니 이전
Point
의 값의 right 값이 있는 경우 그 처리는 제대로 처리되지만, right값이 없는 경우 새Direction
을 만들어주는newDirection(boolean newLeft)
함수에서 매개변수를 랜덤값으로 전달하고 있었습니다. 이렇게 되면 다음Point
의 왼쪽 랜덤값으로TRUE
가 나오면 이전Point
의 오른쪽 값과 달라 로직이 어긋나게 됩니다.- equals(), hashCode(), toString()에 대한 설명은 조만간 정리해보려 합니다.
사다리 UI를 그리기 위한 값을 어떻게 DTO로 전달할 것인가?
Line
에서 해당 한 줄에 대한 사다리값을 모두 구할 수 있기 때문에 여기서 해당 값을 구하는 메서드를 따로 구현하였습니다.- DTO와 관련된 구조에 대하여 Domain에서 데이터 작업을 한 후 출력할 데이터에 대해서만 DTO로 만들어 Controller로 넘깁니다. Controller에서 다시 View에 DTO를 넘기는 식으로 구성하였습니다.
HashMap에서 key값과 value값 어떻게 동시에 출력할 수 있을까?
- 결과값 HashMap에서 출력할 때 value값은 get()메서드를 이용하여 쉽게 찾을 수 있지만 key값을 어떻게 출력해야할 지 막혔습니다.
- 구글링 결과 3가지 타입에 대한 예시를 찾을 수 있었습니다. 코드는 아래와 같습니다.
import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class MapIterationSample { public static void main(String[] args) { HashMap<String, String> hashMap = new HashMap<String, String>(); hashMap.put("test3", "name5"); hashMap.put("test4", "name2"); hashMap.put("test5", "name1"); hashMap.put("test1", "name3"); hashMap.put("test2", "name4"); System.out.println("=================Type1================="); Iterator<String> mapIter = hashMap.keySet().iterator(); while(mapIter.hasNext()){ String key = mapIter.next(); String value = hashMap.get( key ); System.out.println(key+" : "+value); } System.out.println("=================Type2================="); for(Map.Entry<String, String> elem : hashMap.entrySet()){ String key = elem.getKey(); String value = elem.getValue(); System.out.println(key+" : "+value); } System.out.println("=================Type3================="); for(String key : hashMap.keySet()){ String value = hashMap.get(key); System.out.println(key+" : "+value); } } }
출처 : http://huskdoll.tistory.com/523
- 여기서 HashMap의
entrySet()
,keySet()
를 이용하여 key값을 출력하는데요. 이 부분은 이후에 Map에 대해 좀 더 자세히 알아보고 정리해보겠습니다.
드디어!! 5단계 재PR을 보냈습니다. 처음 Pobi의 5단계 힌트와 MVC패턴, DTO 사용에 대한 고려를 하면서 종처럼 갈피를 잡기 힘들었습니다. 어디에 선언하면 좋을지 또 어떻게 하면 좀 더 깔끔하게 짤 수 있을지
에 대한 고민을 많이 하였던 것 같습니다. 이러한 고민을 통해 설계에 대한 고민을 좀 더 할 수 있는 유익한 시간이었습니다.
오늘 추가적으로 공부한 부분
'TIL' 카테고리의 다른 글
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-02) (0) | 2018.10.02 |
Today's Dev Notes(2018-10-01) (0) | 2018.10.02 |
Today's Dev Notes(2018-09-30) (0) | 2018.10.01 |