https://github.com/nbalance97/java-vendingmachine-precourse

 

GitHub - nbalance97/java-vendingmachine-precourse

Contribute to nbalance97/java-vendingmachine-precourse development by creating an account on GitHub.

github.com

개발 과정


  1. 이번 과제도 마찬가지로 기능 사항 작성부터 진행
  2. 기능 사항 작성 이후 기능별 함수 작성 및 커밋

후기


  1. 이번에는 기능이 좀 많아지면서 클래스가 너무 많아지게 된 문제가 있었다. 따라서 좀 구조화시키기 위해 MVC패턴을 도입하여 프로젝트를 진행하였다.
  2. 코드의 가독성을 높이기 위해 노력함.
    1. 에러 메세지나 숫자 리터럴(매직 넘버)을 상수로 선언하여 사용하려고 노력함
      부족하지만 최대한 해결하려고 노력ㅜ
    2. 입력 클래스와 출력 클래스, 처리 클래스를 따로 두어서 진행함.
      • 기존 코드에서는 클래스 내에 출력하는 부분까지 모두 두었는데 출력하는 클래스를 따로 구성하여 단일 책임 원칙을 만족시키려고 노력함
    3. 검증 클래스를 따로 두어서 진행함
      • 입력 데이터 검증 시 검증 클래스(Validators) 내에서 처리하도록 구현

3주간의 프리코스가 드디어 끝났다.. 많은 우여곡절이 있었지만 스스로 학습하면서 다른 사람이 읽기 좋은 코드를 구현하려고 많이 노력한 것 같다. 비록 최종테스트에서는 개인적으로 부족하여 바로바로 구현내용이 떠오르지 않기도 하고 시간이 부족하기도 하여 전부 완성하지는 못했으나 코드를 작성할 때 계속해서 고민해보는 습관을 들이게 되는 등 스스로 많이 성장하게 된 계기가 된 것 같다. 

 

https://github.com/nbalance97/java-racingcar-precourse

 

GitHub - nbalance97/java-racingcar-precourse: 자동차 경주 게임 미션을 위한 저장소

자동차 경주 게임 미션을 위한 저장소. Contribute to nbalance97/java-racingcar-precourse development by creating an account on GitHub.

github.com

이번 과제에서는 함수화하는 점, Car 클래스를 이용하는 점, 그리고 저번 과제에서 부족했던 함수명과 변수명을 최대한 잘 짓는 점을 중점으로 과제를 구현하였음.

 

1. 함수화 하기

- 함수를 최소화하기 위해 각 함수 내에서 부분 함수들을 만들어서 처리하도록 구현하였음.

- 최종 함수에서는 부분 함수의 결괏값으로 처리

 

2. Car 클래스 이용하기

- 이동시키는 기능은 Car 클래스 내부에서 처리할 수 있을 것이라 생각하여 Car 클래스에서 처리하도록 구현

 

3. 함수명과 변수명을 최대한 잘 짓기

- 각각의 함수가 어떤 기능을 사용하는지, 각 변수가 어떤걸 의미하는지 파악하기 쉽도록 함수, 변수이름 작성

 


아쉬웠던 점


1. 함수 15줄 이내로 구현하기

- 최대한 15줄 이내로 함수를 작성하려고 하였으나 승자를 구하는 부분은 15줄 이내로 구현하기가 어려웠던 문제가 있음. 이 점은 추후에 학습하여 보니 배열로 작성하려고 해서 그런거고, Collection을 사용하였더라면 비교적 짧게 작성할 수 있었을 것.

 

2. 매직 넘버를 사용함

- 상수를 따로 선언하여서 사용하여야 했는데, 매직 넘버를 그대로 사용하여서 가독성이 좋지 않은 문제점이 있었다.

 

3. 클래스 분할을 하지 않음..

- 출력 클래스, 입력 클래스, 처리 클래스를 따로 나누었으면 더 좋았을 것 같음.

https://github.com/nbalance97/java-baseball-precourse

 

GitHub - nbalance97/java-baseball-precourse: 숫자 야구게임 미션을 진행하는 저장소

숫자 야구게임 미션을 진행하는 저장소. Contribute to nbalance97/java-baseball-precourse development by creating an account on GitHub.

github.com

 

개발 과정


  1. 전체적인 구현 목록 작성
  2. 기능별 함수 작성 및 깃허브 커밋
    • 변경사항이 생길 경우 변경사항에 대하여 커밋
  3. 전체 기능이 완성되면 조립하여 하나의 프로그램으로 완성

후기


  1. 기존에는 구현 사항을 단순하게 생각하고 구현하는 방식으로 진행하였으나, 전체적인 구현 목록을 먼저 작성하고 구현을 진행해 보니 구현 목록을 전체적으로 생각하는게 힘들었지만, 실제 구현할때는 목록에 맞추어서 구현하면 되니 훨씬 체계화되어서 쉽게 구현된 것 같다.
  2. 깃허브 커밋 컨벤션에 맞추어서 커밋 내역을 작성해 보니 , 전체적으로 각 커밋에서 어떠한 개발이 되었는지 한눈에 들어오는 것 같다.
  3. 하나의 함수 내부에 코드가 너무 길어지는 등 문제점이 보여서 조금 더 학습해야 할 필요성이 느껴짐.. 또한 변수 이름을 유의미하게 짓는 연습이 더 필요함.

+ Recent posts