2주차 과제 진행 중 겪은 일
오늘의 키워드
어제 잠들기 전에 키워드를 적어놓은 것을 확인했다. 키워드를 적어놓으니깐 적게된다. 나이스! 하하…어젯밤의 추억이 떠오른다.
메인에 구현 다 할려고 시도 실패 원래 그렸던 그림으로 진행
처음 시작할 때부터 아키텍처 설계에 공을 많이 들였다.
객체지향의 사실과 오해라는 책을 읽은 영향이 있는 것 같다.
지나치게 구상을 오래한 결과, 생각은 많고 실행은 망설이는 결과를 얻었다.
왜 그럴까? 고민을 했다.
- 자바와 프로그래밍 코드 구현 경험 부족
- 처음부터 완벽주의
위의 두 가지 사항이 지금 돌이켜보면 컷던 것 같다. 프로그램의 기능을 더욱 구체화하여 나눠서 기능 목록을 작성할 필요가 있다, 예를 들어서 무엇에 집중하기, 입출력 로직 그게 안되니깐 구현하기 쉽지 않았던 것 같다. 나눠서 하나씩 구현을 하되 유닛테스트를 이용해보는 것이 좋을 것 같다. 그렇게 기능을 하나씩 구현을 하면서 커밋도 추가하기 근데 문제는 무엇이었냐면 폴더구조와 설계를 다 해가면서 시스템 워크플로우대로 구현을 하려고 손이 가는 것이다. 이것을 해결하는 것은 아직도 자세히는 모르겠다, 메인에서 하나씩 작성하면서 분리하려고 했다가 오히려 구현이 개인적으로 어려웠다. 이것 저것 시도하다가 메인에 다 구현 해볼려는 시도를 해봤고 실패로 끝났다. 앞으로 정해놓은 아키텍처에서 객체 하나씩 구현하며 테스트할지 메인에서 하나씩 기능 구현하며 나중에 분리할지 서칭과 탐색으로 나만의 방법을 찾아야겠다.
의존성 주입, 팩토리 설계
책임 주도 설계를 통해서 누가 누구한테 의존하는지 파악하고 낮은 의존도, 높은 응집도에 대해서 신경을 쓰기 위해서 노력을 해보았다.
그러다보니깐 만들게 된 파일이 있는데 알고 보니 팩토리 설계라고 불리는 것 같았다.
팩토리 설계라는 것을 몰라서 따로 공부해보고 내가 한 것과 비슷한 점이 있는지 알아봐야겠다.
객체는 자율적이고 협력을 잘 이용하게 만들어야해서 의존성이 중요한 것 같은데 그 이유에 대해서 더 깊게 생각해봐야겠다.
직관적으로는 당연히 의존도가 낮아야한다고 생각을 하는데 핵심, 본질에 대해서 설명할 수 있도록 공부를 해봐야겠다.
기능 파악
기능 목록 작성을 하면 할 수록 이제서야 조금씩 다가가는 것 같다.
처음에는 구체적으로 무엇에 집중을 못했던 것 같다.
이 능력을 키워서 기능을 단위적으로 잘 나누도록 그리고 빠르게 파악하도록 노력해야겠다.
아이맥, 다른사용자
집에 있는 와이프 계정으로된 아이맥으로 풀해서 커밋 푸쉬했다가 와이프 이름이 나와서 놀랬다.
로컬에 대해서 인지하도록 하자.
우선 와이프 아이맥 로컬의 글로벌 이름과 이메일을 내 것으로 바꾸는 것으로 해결했는데 다른 좋은 방법이 있는지 알아봐야겠다.
( 사용자를 바꾸면 될라나?.. )
커밋 메세지
커밋 메세지 작성이 사실 너무 어렵다.
어려운 이유에 대해서 생각을 해봤다.
- 영어
- 타입과 내용에 대해서 한글로도 어려워한다. 앞으로의 미래를 생각해보면 영어로 계속 사용하는 것이 좋아보여서 고집을 하다가 한글도 사용했는데 후회가 됐다. 영어로 계속 사용할 계획을 했다. 내 생각엔 커밋을 많이 하는 것이 가장 빠른 지름길인 것 같다. 많이 하고 많이 보자 그리고 좋은 커밋 메세지들은 적던지 유심히 보던지 하자.
스트림, static
스트림에 대해서 조금 공부를 하고 사용을 해봤다.
무언가 필터링하는 것이 편하게 느껴졌다.
왜 사용하는지에 대해서 본질적으로 생각할 필요가 있는 것 같다.
static, final 에 대해서 아직 미흡하여 사용에 머뭇거림이 있다.
기본 문법에 대해서 배우고 기록하자.
내일 목표
1주차, 2주차 회고를 코드와 함께 작성해보기 지금 같은 감상평 말고 명시적 접근을 통한 회고를 작성해보자.