우테코 프리코스

우테코 프리코스 4주차 후기 : 크리스마스 프로모션 (안드로이드)

roder 2024. 2. 5. 17:28

 

# 깃허브 주소

 

https://github.com/leeugun123/kotlin-chrismas-6-test

 

GitHub - leeugun123/kotlin-chrismas-6-test

Contribute to leeugun123/kotlin-chrismas-6-test development by creating an account on GitHub.

github.com

 

# 4주차 우테코 크리스마스 프로모션 후기

 

드디어 마지막 프리코스이다. 마지막인만큼 구현해야 될 요구사항이 정말 많았다.

하지만 이전까지 과제를 진행하면서 얻은 데이터와 코드 리뷰를 통해 얻은 지식으로 

코드를 작성했다.

 

요구사항이 많은 만큼 정말 꼼꼼하게 작성하고 검토한 것 같다.

과제 요구사항 중에 View에서 Input과 Output을 분리하는 조건이 있었다.

조건이 없었다면 View 자체에 모든 기능을 구현하려 했지만

Input과 Output을 분리하여 코드를 작성하니 훨씬 가독성이 높아지고 깔끔했다.

 

다른 분들의 코드를 읽어보니 이런거까지 분리해야 하나?? 싶을 정도로

클래스와 메소드를 꼼꼼하게 분리하셨다.

 

하지만 그 귀찮은 작업을 통해 향후에 있을 유지보수가 매우 편해지고,

코드의 가독성이 높아진다는 것을 깨닫게 되었다.

이를 통해 단순히 구현을 위해서 코드를 작성하는 것이 아닌

소프트웨어 설계 이론과 다른 분들의 코드를 공부하며,

더 촘촘하게 기능과 단위별로 클래스와 메소드를 분리하는 연습이 필요하다는 생각이 들었다.

 

추가적으로 1주차인 숫자 야구 게임을 할때는 코드와 메소드를 분리할 필요가 있나?라는 생각이

들었지만 점점 요구사항,  클래스, 메소드가 많아 질 수록 MVC패턴과 MVVM패턴 등

소프트웨어 설계의 디자인 패턴이 얼마나 대규모의 프로그램을 만들때 중요한지 깨닫게 되었다. 

 

혼자서 코드를 작성하는 것이 아닌 여러명이서 협업하며 코드를 작성하기 때문에 

클린 코드와 Convention대로 코딩하는 것이 정말 중요하다는 것을 프리코스 과정을 통해

깨달았다.

 

#깃허브 PR 주소

https://github.com/leeugun123/kotlin-chrismas-6-leeugun123/pull/3/files

 

[크리스마스 프로모션] 이유건 코드 리뷰용 by leeugun123 · Pull Request #3 · leeugun123/kotlin-chrismas-6-leeug

 

github.com

 

 

 

 

다음 코드는 날짜별로 다른 프로모션을 적용해서 이벤트 할인을 적용하는 구현 코드이다.

 

calWeekendDayDiscount()와 calSpecialDiscount() 2가지 메소드가

방금 말한 것과 비슷한 구현인데 둘 다 datePatterns이란 같은 변수명을 사용해서

혼동 될 수 있다는 생각이 들었다.

 

핑계 일 수도 있겠지만, 아무래도 구현해야 할 것들이 많다보니

메소드명만 신경 쓰고, 데이터 변수명을 짓는 것에 대해서 좀 소홀했던 것 같다.

 

구현에만 집중하는 것이 아닌 코드를 지속적으로 관찰하여

좀 더 간결하고 가독성 있는 코드를 만들어야 한다.