구현 문제 접근법

단디·2024년 12월 9일
0

객체지향 패러다임에 맞춘 방법

지속적으로 업데이트 중

  1. 전체 기본 요구 사항을 가볍게 읽어본다.
  2. 입력, 출력, 입출력 예시를 읽어본다.
  3. 시나리오, 입출력 흐름대로 창조주의 입장에서 메세지를 작성해본다. ( 메세지로 하나의 시스템을 동작할 수 있도록)
  4. 메세지를 개별 책임으로 추상화한다. (단일 기능 느낌)
  5. 도메인 식별을 한다. (재사용성, 상태, 행동을 가지는지)
  6. 도메인 별로 책임을 기반한 기능 목록을 재구성한다.
  7. Application 의 main, controller, view, domain을 구성한다.
  8. 작성한 기능목록을 기반으로 domain 단위 테스트를 진행한다. (RED -> GREEN -> REFACTOR)
  9. TDD를 진행 시 입력 검증, 비즈니스 검증을 분리한다.
  10. 전체적인 최소 기능, 돌아가는 쓰레기를 controller에 모두 작성한다.
  11. 시간적 여유에 따라 service, util, dto, enum, constants 리팩토링 작업을 실시한다.

우선적으로 공부할 것들

  • Enum, Errormessage, PromptMessage 틀 짜기.
  • int, char, Integer, String, List, Set, Map 자유자재로 변형 및 처리해보기
  • Stream, Builder, file IO 공부해보기
  • Junit5, AssertJ 경험 쌓기
  • 생성자, 접근제어자에 대한 고찰

계획하고 실천하면서 바뀐 생각, 자유롭게 작성

도메인 식별을 먼저하려고 했고 기능 목록을 작성해서 TDD 방식으로 개발을 진행했다.
경험 부족과 연습 부족때문인지 시간이 오래걸렸다.
작은 단위테스트 진행은 익숙해지고 있는데 항상 전체적인 테스트를 확인해야할 때 마지막 도메인과 서비스, 컨트롤러, 뷰, 앱을 연결하는 작업에서 TDD를 어떻게 진행해야하는지 어려움을 겪고 있다.
위에 적은 순서대로 진행을 하고 후기 작성해보자.

구현 문제를 풀면서 어려웠던 점이 데이터를 원하는대로 저장하고 처리하는 것이 어려웠다.
그래서 원하는 자료로 변환하고 뽑아내고 처리하는 것을 중점으로 연습하기로 했다.

profile
협업, 문제해결, 지속적 학습을 추구하는 개발자 지망생 단디입니다.

0개의 댓글