오늘은 3주차가 끝난 날이다... 3주차에 치이고치여 이제서야 2주차 회고록을 남겨본다 🥲
2주차는 자동차 경주 미션이 있었다!!
문제를 딱 본 순간 "이번 주차도 지난 기수의 미션문제네?" 생각이 들었다.
아마 나머지 문제들도 지난 기수들과 똑같지 않을까 싶다.. (3주차도 똑같았다...!!)
이번 주차 또한 나만의 설계로 풀어나가고자 했다.
빠진 부분도 많지만 내가 직접 그려보며 프로그램이 어떻게 돌아가야 할지 간략하게 나타내보니 확실히 설계나 구현면에서 편했다.
객체 설계에서도 그림으로 나타내보았다.
ㅋㅋㅋㅋ 지금보니 정리가 안된거같고 막 적어놓은거 같지만 구현측에서는 많이 도움이 된 그림이다 ^^,,
이렇게 프로그램의 전체 흐름과 객체들 사이의 흐름도를 그려보니 구현에 있어서 편리함을 가져간거 같다!! 나머지 미션들도 이런 식으로 진행할 예정이다. ㅎ.ㅎ
코드 리뷰
자,,, 이 세상에 완벽한 설계와 구현은 없다고 생각한다. 동료들의 리뷰를 받아가며 어떤게 부족했을지에 대해 고민해보자!
1번 !!
이 질문을 받고서 나의 enum 목록을 한번 봤다.
코드를 짤때도 느꼈지만 막상 Enum 클래스에 들어가보면 코드들이 짧디 짧다.
저 Enum들을 하나로 묶을 아이디어도 마땅히 없었고 확장성 측면에서 좋을거 같다고 생각해서 연관된거 끼리 묶어서 표현했다.
하지만 프로그램이 커지고 그에맞게 계속 Enum 클래스가 늘어난다면,,,,,?? 이 점이 문제인거 같지만 아직 실력이 부족한지 마땅한 아이디어가 떠오르질 않는다..🥲
이 리뷰가 공감됐기에 3주차에선 너무 작은 요소는 상수화 하여 사용해보았다.!!
2번 !!
🥹🥹🥹🥹🥹 내가 이런 리뷰를 받다니... 빈말일수도 있지만.. 소중한 시간에 리뷰하러 와주시고 저의 얄팍한 객체지향도 칭찬해주셔서 감사합니다 흑흑 🥹🥹
3번 !!
이 리뷰는 내가 미션을 진행하는 동안 계속 고민한 내용이었다.
내 View는 크게 두개로 나눠져있다.
InputView - 사용자의 입력을 담당
OutputView - 프로그램의 출력을 담당
이렇게 보니 InputView에서는 사용자로부터 "입력"을 받는게 가장 깔끔할 수 있을거 같지만 계속 생각해보니 그래도 View이기도 하고 사용자의 입력에 관련된 출력인데 이걸 OutputView로 빼야할까 싶기도 하다..
일단 나는 입력에 관련된 출력이라는 생각을 가지고 코드를 진행하였다.
4번 !!
코드의 재사용성!! 아주아주 좋은 아이디어인거같다.
리뷰를 받고 저 세덩어리의 메서드를 보니 코드 중복이,,, 어우,,
확실히 중복된 부분을 메서드로 묶고 진행하는게 훨씬 깔끔해질거같다👍
5번 !!
당신 덕에 이번 3주차에서는 제가 적용을 해보았습니다 감사합니다!!
6번 !!
이 리뷰가 아주 뒤통수를 후려쳤다.
싱글톤 패턴은 JVM내에서 인스턴스가 하나만 생성되는 것이다. 근데 자동차 경주에서 여러 사용자가 있는데 다 똑같은 자동차를 가지고 있을리가 없잖아..?!?!
이러한 싱글톤 패턴의 특징을 생각 못하고 그저 배웠다고 남발한 내 모습이 떠올라 부끄럽다 ㅎㅎ,,
Service나 Controller 객체들은 싱글톤 패턴으로 가고 사용자마다 달라지는 객체들은 싱글톤 패턴을 적용해서는 안된다는 깨달음을 얻은 아주 좋은 리뷰였다..👍
7번 !!
이 리뷰는 싱글톤 패턴에 빠져있던 나를 정신차리게 해준 아주 고마운 리뷰이다.
싱글톤 패턴은 디자인 패턴중의 하나이다. 제일 중요한건 "객체지향"적으로 설계하는거 아닐까?
객체지향의 장점중 하나는 확장과 수정의 유연함 이라고 생각한다. 하지만 싱글톤으로 인해 객체간의 결합도가 높아져서 객체지향의 장점을 놓아버린다..??
싱글톤 패턴의 장점으로는
1. 메모리 관리가 효율적이다.
2. 데이터 공유가 쉽다.
싱글톤 패턴의 단점으로는
1. 싱글톤 패턴을 적용하기 위해 코드 자체가 많이 필요하다.
2. 테스트하기 어려워진다.
3. 의존관계상 클라이언트가 구체 클래스에 의존하게 된다. 이는 SOLID 원칙 중 DIP 원칙을 어기게 된다.
단점을 공부해보니 싱글톤 패턴이 안티 패턴으로도 불리는 이유를 알거같다. 객체지향적인 코드라는 이점보다 싱글톤 패턴의 장점이 더 큰거 같다면 적용해야 겠다. 즉, 싱글톤과 객체지향 사이의 trade-off를 잘 해야겠다.
아래는 싱글톤 패턴에 대해서 장단점을 아주 보기좋게 정리한 글이다!! 꼭 한번씩 읽어보길 바란다.
https://tecoble.techcourse.co.kr/post/2020-11-07-singleton/
싱글톤(Singleton) 패턴이란?
이번 글에서는 디자인 패턴의 종류 중 하나인 싱글톤 패턴에 대해 알아보자. 싱글톤 패턴이 무엇인지, 패턴 구현 시 주의할 점은 무엇인지에 대해 알아보는 것만으로도 많은 도움이 될 것이라
tecoble.techcourse.co.kr
'우아한 테크 코스' 카테고리의 다른 글
[백엔드]우아한 테크 코스 6기 프리코스 3주차 회고록 (1) | 2023.11.18 |
---|---|
[백엔드]우아한 테크 코스 6기 프리코스 1주차 회고록 (0) | 2023.10.25 |