안녕하세요. Brad입니다. 어제보다 날씨가 춥다고해서 따뜻하게 입고 왔는데 햇살이 좋아서 그런지 생각보단 따뜻하네요. 오늘도 개발하기 좋은 날이네요~
오늘 Daily Meeting에서 Pobi로부터 '설계'에 대한 얘기를 듣게 되었는데요. 해당 단계에서 미리 다음 단계까지 고려하지 말고 요구사항에 맞게 설계하라는 점과 리팩토링 하는 과정에 관한 것이었습니다. 간략하게 정리하면 다음과 같습니다.
1. 우선 해당 단계에서 요구사항에 맞게 설계를 하고 길이 보이면 바로 구현을 시작해본다.
2. 구현이 완료했거나 도중에 막히면 리팩토링 할 것이 있는지 고민해본다.
3. 리팩토링하다가 마음에 안들고 길이 안보이면 그냥 다시 reset한다(과감하게..)
당연한 말이기도 하다가도 실제로 이렇게 하고 있진 않은 것 같아서 의식적으로 이렇게 하려는 노력을 해야할 것 같습니다. reset도 과감하게 하구요.
어제 Pobi 사다리 5단계 설계 분석한 것을 토대로 이번엔 Pobi의 코드를 보지 않고 머리 속에 제가 정리한 것을 바탕으로 스스로 구현해보려 합니다. 아래는 제가 설계하면서 겪은 고민들을 기록해보려 합니다.
Point
만들 때 곧바로 랜덤값 생성하여 사다리 만들면 사다리 출력할 때는 어떤 데이터를 가지고 그리나?Line
에서 사다리값을 모두 만들고 그것을 바탕으로Point
에 값을 줄 것인가. 아님Point
의 값을 가지고 그것을 이용할 것인가.- 처음엔 전자로 해보려했지만 전자로 하게되면 사다리값에 대한 중복이 발생하고 후자의 방법으로도 어렵지 않게 구현할 수 있어서 후자로 일단 해보려 합니다.
DTO로 넘길 때
Point
를 넘긴다? 그러면Point
안에 있는 로직 뿐 아니라 그 안에 있는Direction
로직까지 노출될 위험이 있지 않을까?- 이러한 고민으로 Pobi에게 여쭤보니 Pobi의 대답은 '굳이
Point
나Direction
까지 넘길 필요가 있을까?' 라는 것이었습니다. 처음엔 바로 이해되지 않았지만 좀 더 대화를 통해 깨달은 것은 딱 필요한 데이터만 넘긴다는 것이었습니다. - 만약 사다리를 그린다면
ArrayList<Boolean>
에 담아 있는지, 없는지 유무만 전달하면 되고 그 이상의 정보는 전달할 필요가 없었던 것입니다. 더도 말고 덜도 말고 딱 필요한 만큼만 DTO로 전달해주자!!
- 이러한 고민으로 Pobi에게 여쭤보니 Pobi의 대답은 '굳이
DTO 만든다음에 그 DTO List를 어디에서 선언하고 가지고 있을 것인가?
DTO에는 어떤 메서드들을 만들어야 할까?
이동 후 바뀐 인덱스를 어떻게 관리할 것인가?
Line
에서 move()를 한 후 바뀐 인덱스를 다음Line
에서 어떻게 활용할 수 있을까?
나름 고민을 많이 한 것 같은데 처음부터 너무 많은 것을 고려하다보니 뭐부터 나야가야할지 몰라 어려움을 많이 겪었습니다. 설계에 대한 이러한 고민도 평소에 해보지 않았던 것이라 힘들지만 이러한 변화가 즐겁네요.
오늘 추가적으로 공부한 부분
'TIL' 카테고리의 다른 글
Today's Dev Notes(2018-10-04) (0) | 2018.10.05 |
---|---|
Today's Dev Notes(2018-10-03) (0) | 2018.10.03 |
Today's Dev Notes(2018-10-01) (0) | 2018.10.02 |
Today's Dev Notes(2018-09-30) (0) | 2018.10.01 |
Today's Dev Notes(2018-09-29) (0) | 2018.09.29 |