분류 전체보기(206)
-
[일정 관리 앱] 일정 생성, 조회 API 테스트
'일정 생성' 과 '일정 조회(단건)', '일정 목록 조회' 에 대한 구현을 진행하고 진행한 API 테스트를 남겨본다. 무작정 남기는 것은 아니고 이후 신경써야 할 부분을 기록할 필요를 느껴 작성하게 되었다. 이번에 작성한 코드는 여기서 확인이 가능하다. 1. 일정 생성 일정을 정상 요청하게 될 경우 생성된 Entity 의 정보를 'ResponseSchedule(DTO)' 에 담아 반환한다. 하지만 예외를 해결하려 작성한 '예외 처리' 과정에서 오히려 문제가 생겼다. 요청 값에 대한 '유효성' 검증의 경우 'validation' 을 사용했는데, 어째서 인지 'title' 필드에 대한 예외가 응답에 표기되지 않았다. 아래는 '일정 생성' 에 대한 요청 파라미터를 담는 'AddSchedule(DTO)' 로 ..
2024.10.08 -
[내일배움캠프] TIL - 24.10.07(월)
주말간 저번 Java 개인과제인 '숫자 야구 게임' 에 대한 피드백을 과제 프로젝트에 아래와 같이 반영하고 피드백을 남겨주신 튜터님을 찾아가 피드백 반영에 대한 이야기를 나누었다. '(2)' 까지는 주말간 반영하고 '(3)' 의 경우 튜터님과의 대화 도중 내가 미처 반영하지 못한 부분을 다시 반영한 내용이다.숫자 야구 - 피드백 반영(1)숫자 야구 - 피드백 반영(2)숫자 야구 - 피드백 반영(3)또한 주말에 확인한 '일정 관리 앱(JDBC)' 에 대한 피드백도 살짝 이야기를 나누었는데, 이후 과제가 아무래도 'JPA' 를 사용해 확장하는 느낌의 프로젝트이므로 이후 프로젝트(일정 관리 앱_JPA)에 이번 프로젝트 피드백을 반영하는 쪽으로 이야기를 나누었다. 새로운 과제의 발제에 대한 세션 또한 있었는데,..
2024.10.07 -
[일정 관리 앱] JPA 를 사용한 일정 관리 앱 구현시작
'Spring 숙련 주차' 의 개인과제는 'JPA' 를 사용한 '일정 관리 앱' 구현이다. 이전 프로젝트를 확장해 진행해도 되지만, 아직 Spring 을 다루는 것이 완벽하다고 할 수 없기에 연습을 위해 새로운 프로젝트를 생성해 이번 과제를 진행하기로 결정했다. 이번 과제는 'JPA' 로 기본적인 CRUD 를 구현하고, 'JWT(JSON Web Token)' 을 활용해 '인증/인가' 에 대한 부분까지 구현하는 것이 목표이다. 요구사항을 확인하고 정리해 보니 저번 과제와는 다르게 각 레벨별로 요구사항을 프로젝트에 반영하기로 하였다. 요구사항이 늘어남에 따라 기존에 작성한 코드가 확장을 잘 받아낼 수 있는지(?) 를 확인하고 싶기도 하고 아직 미숙하기에 요구사항을 하나하나 따라가며 구현을 하고자하는 생각도 ..
2024.10.07 -
[숫자 야구] 피드백 반영 - 메서드 복잡도 낮추기(3)
피드백 내용 중 빠진 것이 있어 추가로 반영하면 게시글을 작성해본다. 저번에 이어서 'NumbersBaseballApp.start()' 메서드의 복잡도를 낮추기 위해 아래와 같이 프로젝트를 일부 수정하였다. 수정된 코드는 여기서 확인이 가능하다. 1. GameRecorderImpl 기존의 코드를 확인해보면 'GameRecorder' 객체에 저장되어 있는 플레이 기록을 'getGameRecords()' 메서드로 반환 받아 'start()' 메서드에서 요소를 꺼내 출력을 하고 있다. 하지만 이러한 행위는 게임 기록을 다루는 'GameRecorder' 객체에서 하는 것이 더 자연스럽다고 생각했다. 그래서 기존의 'getGameRecords()' 메서드를 'printGameRecords()' 메서드로 아래와 같..
2024.10.07 -
[숫자 야구] 피드백 반영 - 메서드 복잡도 낮추기(2)
피드백 사항 두 번째는 현재 'NumbersBaseballApp' 클래스에 존재하는 'playGame()' 메서드 로직의 복잡도 문제와 '불필요한 상태 저장' 에 대한 문제였다. 다시 기존의 코드를 확인해 보니 두 문제는 연관되어 있어 이렇게 함께 피드백을 반영하게 되었다. '불필요한 상태 저장' 을 했기에 '저장된 상태' 를 사용하는 'playGame' 메서드의 로직 또한 덩달아 복잡해진 것이 라 판단했다. 피드백 반영후 주석을 제거해 메서드 복잡도가 줄어들었는지 확인했다. 피드백이 반영된 코드는 여기서 확인이 가능하다. 1. CorrectAnswerGeneratorImpl 먼저 이렇게 생각해봤다. 'CorrectAnswerGenerator' 객체는 정답을 생성해주는 역할을 한다. 그런데 이 객체가 생..
2024.10.05 -
[숫자 야구] 피드백 반영 - 메서드 복잡도 낮추기(1)
피드백 사항 첫 번째는 현재 'NumbersBaseballApp' 클래스에 존재하는 'start()' 메서드 로직의 복잡도 문제였다. 실제로 작성해둔 코드를 다시 보니 만약 주석처리한 내용을 없앤다면 알아보기 힘들 정도로 각 메서드의 로직이 복잡하였다. 그래서 이번에는 이 복잡도 문제를 해결해 보고자 한다. 또한 피드백을 반영하며 수정한 부분에 주석을 제거해 반영 후 로직의 복잡도 문제가 나아졌는지 확인했다. 피드백을 반영한 코드는 여기서 확인이 가능하다. 'start()' 메서드는 '사용자' 의 메뉴 선택에 따른 수행 로직을 가지고 있다. '시작 메뉴' 를 보여주고 메뉴 번호를 입력 받아 메뉴 번호에 해당하는 로직을 수행한다. 그리고 'boolean' 을 반환해 게임을 재시작 여부를 'Main.main..
2024.10.05