Skip to content

박민지 1주차 체스 학습 일지

Park minji edited this page Jul 3, 2024 · 5 revisions

1주차 미션이었던 체스 게임은 단계별 요구사항을 주어진 가이드라인(필수는 아닌)에 기반해 구현하는 시간이었습니다.

단계가 높아질수록 앞서 구현했던 기능이 필요 없게 되거나, 수정해야 하는 경우가 생겨 작성한 코드의 수정/삭제 여부를 판단해야 했습니다. 뒤 단계에서 어떤 요구사항이 생길지 모르기 때문에 코드 수정/삭제 판단을 내리기가 생각보다 쉽지 않았습니다.

MVC 사용을 지양하자는 요구사항이 있었고, 스프링을 사용하지 않는 프로젝트여서 아무런 틀 없이 무작정 짜보기로 했습니다. 아무런 틀도 없이 간단한 요구사항부터 점차 복잡한 요구사항을 구현하려니 중간중간 클래스 추출, pull up method 등 리팩토링이 필수였습니다. 이 과정에서 다음 사항을 배울 수 있었습니다.

특정 기능을 처리하기 위해 필요한 데이터를 가진 클래스가 무조건 특정 기능을 처리해야 하는 책임을 가지는 것은 아니다. 책임 분리를 위해 클래스를 추출할 때, 해당 클래스로 데이터를 넘겨주는 방식은 파라미터 혹은 클래스 변수가 있는데, 데이터의 삽입/수정/삭제 등 조작 기능이 필요하지 않다면 파라미터로 데이터를 넘겨주는 편이 좋다. 도메인 주도 개발 시작하기라는 책을 읽고 있는데, 도메인 모델과 도메인 서비스를 나누는 기준으로 볼 수 있을 것 같아 특히 와닿았습니다. 책임 분리의 필요성을 코드를 작성한 뒤에야 느낄 수 있는 경우도 있어, 코드 작성 전에 코드를 깨끗하게 짜기는 어렵다.

👼 개인 활동을 기록합시다.

개인 활동 페이지

🧑‍🧑‍🧒‍🧒 그룹 활동을 기록합시다.

그룹 활동 페이지

🎤 미니 세미나

미니 세미나

🤔 기술 블로그 활동

기술 블로그 활동

📚 도서를 추천해주세요

추천 도서 목록

🎸 기타

기타 유용한 학습 링크

Clone this wiki locally