Ocean_
꾸준한 프로그래밍
Ocean_
전체 방문자
오늘
어제
  • 분류 전체보기 (174)
    • About Me (4)
    • 우아한테크코스 (27)
    • C & LINUX (50)
    • Operating System (12)
    • Database (25)
    • Computer Vision (0)
    • Problem Solving (0)
      • Programmers (0)
      • BOJ (0)
    • 코코코딩공부 (44)
      • Spring (12)
      • JAVA (14)
      • 디자인 패턴 (4)
      • 책 읽기 (4)

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

태그

  • bean
  • 데이터 조작어
  • C
  • 인덱스
  • 우아한테크코스
  • 프로세스
  • 우테코
  • 우아한형제들
  • 리눅스
  • DB
  • SIGINT
  • 우테코 체스
  • 운영체제
  • Spring
  • 1259
  • 블랙잭
  • 자바
  • OS
  • Linux
  • signal
  • 우아한테크코스5기
  • OperatingSystem
  • 트랜잭션
  • 우테코5기
  • C++
  • BOJ
  • 백준
  • Operating System
  • 원시값 포장
  • 정규화

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Ocean_

꾸준한 프로그래밍

[우아한 테크코스 5기] 자동차 경주 2단계 학습 로그
우아한테크코스

[우아한 테크코스 5기] 자동차 경주 2단계 학습 로그

2023. 2. 14. 22:41

STEP 2 목표

변경 사항

개선할 점

배운 것


📆 기간 : 2023.02.08~ 2022.02.13

부릉부릉


STEP 2 목표

2단계 에서는 최대한 객체는 객체답게 능동적으로 자신의 역할만 수행하도록 변경하고자 노력하였다. 또한 MVC 패턴을 조금 더 다듬었다.

Car는 car의 역할만. Name은 name의 역할만. Cars는 cars의 역할만.

MVC 패턴을 조금 더 상세화 했다.


변경 사항

Validation

  • validation을 InputView에서 검증하는 것이 좋다고 생각하였으나, Test코드를 작성하는데 있어서 어렵다고 생각하게되었다. 그래서 Validation은 원시값을 포장하면서 그 곳에서 검증하였고, 그 외의 값들은 InputView에서 처리하였다.

원시값 포장

  • Car의 Name 포장을 위해 Name 도메인을 만들었다.
  • location 또한 원시값 포장을 위해 Name 도메인을 만들었따.
  • 이렇게 함으로써 변수의 의미를 명확하게 하며, 책임관계도 명확해지고 코드 유지보수가 좋아진다!

랜덤값 주입

  • Car가 랜덤값을 모르게 하였고, 값을 전달함으로써 Car가 직접 움직이도록 하였다.
  • Interface를 사용하여 프로덕션 코드의 랜덤값과 Test코드의 랜덤값 생성을 별도로 생성하여 사용하였다.

Getter 대신 객체에 메세지 전송

  • Getter를 사용하는 대신 객체에 메세지를 보내 판별 후 반환 해주는 형식으로 구현하였다.
  • utputView에서 출력을 위해 객체의 정보를 가져오는 getter는 수정/변경이 없어서 사용해도 될 것 같다..

MessageView 제거 및 OutputView 통합

  • MessageView는 단순 출력용 , OutputView는 파라메터를 받아 출력하는 로직을 작성하였었는데 이는 타인이 확실하게 구별이 어려울 것 같아서 수정하였다.

개선할 점

  • 처음부터 MVC패턴을 고려하며 작성해보자.
  • TDD로 시작해보자
  • README 를 처음부터 잘 작성해보자

레이싱 경주에서 배운 것

소통 능력

  • 페어 프로그래밍을 통해 진행하는데 페어와의 소통이 쉽지만은 않았다. 내가 당연시 여겼던 것도 쉽게 설명하기 어려웠다. 누군가가 물어봤을때 쉽게 대답하지 못하면 모른다라고 생각하는 나로써는 큰 영향을 받았다. 개발자로써 혼자만 공부하고 생각할 것이 아니라 다른 사람과 소통하면서 코드를 작성할 필요도 있다고 느꼈다.

테스트 코드의 중요성과 작성

  • 테스트 코드를 통해 내 코드를 쉽게 테스트할 수 있었다. 코드의 일부가 바뀌었을때 어떤 문제가 생겼는지 쉽게 확인할 수 있었으며 내 코드를 믿을 수 있었다.

객체는 객체답게

  • 객체는 객체답게 자신의 역할과 책임에 집중해야 된다고 생각한다. 처음과 달리 그 생각을 하고 객체들을 바라보니 어떻게 구성해야 될지 보이기 시작한 것 같다..

'우아한테크코스' 카테고리의 다른 글

[우아한 테크코스 5기] 사다리 타기 2단계 학습 로그  (8) 2023.02.26
[우아한 테크코스 5기] 사다리 타기 1단계 학습 로그  (0) 2023.02.19
[우아한 테크코스 5기] 자동차 경주 1단계 학습 로그  (0) 2023.02.12
[우아한 테크코스 5기] 우아한 테크코스 3일차  (0) 2023.02.11
[우아한 테크코스 5기] 우아한 테크코스 2일차  (0) 2023.02.09
    '우아한테크코스' 카테고리의 다른 글
    • [우아한 테크코스 5기] 사다리 타기 2단계 학습 로그
    • [우아한 테크코스 5기] 사다리 타기 1단계 학습 로그
    • [우아한 테크코스 5기] 자동차 경주 1단계 학습 로그
    • [우아한 테크코스 5기] 우아한 테크코스 3일차
    Ocean_
    Ocean_
    dongVeloper

    티스토리툴바