분류 전체보기(206)
-
[내일배움캠프] TIL - 24.09.18(수)
짧지만 무사히 추석을 가족과 보내고 복귀하였다. 아직 연휴는 몇 일 남았기에 이 기간동안 우선 이전에 제출한 '계산기 구현' 과제의 피드백 사항을 'Calculator' 프로젝트에 반영해보고자 한다. 피드백 사항을 크게 분류하면 아래와 같고 해당 피드백을 어떻게 반영했는지는 링크를 통해 확인할 수 있다.네이밍 관련불필요한 연산 객체 (반복)생성 및 역할 분리예외 처리피드백을 반영한 코드 및 TIL 은 이번주 목요일에 캠프가 다시 시작된다. 이 날 피드백을 남겨주신 튜터님을 찾아가 피드백 반영에 대한 부분을 이야기해 볼 생각이다. ※ 참고 : 나는 TIL 작성 방식을 내가 학습하며 정리한 다른 게시글들과 하이퍼링크를 거는 방식으로 작성하였다. 학습한 내용에 하이퍼링크를 걸어두었으니 해당 링크를 통해 학습..
2024.09.18 -
[내일배움캠프] 계산기 구현 - 피드백 반영(3)
세 번째 피드백은 '0' 으로 피연산자를 나누는 연산에 대한 예외 처리와 '명확한 예외 처리' 에 대한 내용이었으며, 피드백을 반영한 코드는 여기서 확인할 수 있다. 1. 명확한 예외 처리 연산(입력 값)에 대한 유효성을 확인하는 'checkValidCalculation(String)' 메서드이다. 만약 유효하지 않다면 'BadInputException' 이 발생, 예외의 처리 책임은 메서드를 호출한 곳으로 넘긴다. 그래서 아래의 이미치처럼 발생한 예외를 'Level04.start()' 메서드에서 처리하도록 구현했다. 문제의 구현부인데, 'InputValidator.checkValidCalculation()' 에서 발생한 예외를 'catch' 를 통해 잘 처리한 듯 보이지만 'catch' 에 지정된 예외..
2024.09.18 -
[내일배움캠프] 계산기 구현 - 피드백 반영(2)
두 번째 피드백은 '불필요한 연산 객체 (반복)생성' 에 관한 내용이었다. 확실히 나의 불찰로 생긴 문제였기에 피드백을 적극 반영해 문제를 해결해 보았다. 피드백을 반영한 코드는 여기서 확인할 수 있다. 1. Level.02 계산기 피드백 내용을 정리하면 '불필요한 연산 객체' 를 계속 생성하는 것과 'Calculator' 클래스의 역할이 '입력 값을 연산' 하는 역할임에도 'Operation 인터페이스' 의 구현 클래스 객체를 매핑하는 역할도 수행하고 있다는 문제가 존재한다.1-1. 문제 파악 현재 Level02 계산기는 'Level02.start()' 메서드의 내부 로직이 반복되는 구조로 'Level02' 객체 생성시 'Calculator' 객체를 한 번 생성한 뒤 'start()' 메서드가 수행되..
2024.09.18 -
[내일배움캠프] 계산기 구현 - 피드백 반영(1)
피드백 사항 첫 번째 내용인 '네이밍' 에 대한 내용을 정리해보려 한다. 정확하게는 '클래스 및 메서드의 네이밍' 으로, 어떤 피드백을 받아 프로젝트에 어떻게 반영했는지 기록했다. 피드백을 반영한 코드는 여기서 확인 할 수 있다. 1. 클래스명 먼저 클래스의 경우 현재 문제가 되는 것이 입력 값의 유효성을 검증하는 역할을 가진 'ValidInput' 클래스이다. 나의 경우 '입력 값의 유효성 검증' 이란 의미를 포함하고 있으며 길이를 최대한 줄이기 위해 이러한 네이밍을 하였는데, 실상은 적절하지 못한 네이밍으로 보인다는 것이 피드백 내용이다.1-1. 줄임말(약어) 사용 기존 TIL 에도 이름이 길어보여 줄임말을 활용해 네이밍을 했다고 작성했지만, 상당히 잘못된 생각이었다. 항상 "내가 작성한 코드는 '나..
2024.09.17 -
[내일배움캠프] TIL - 24.09.13(금)
뭔가 매끄럽게 잘 풀리지 않았던 하루였다. 왜 그런지 이유는 찾아 따로 정리까지 해두었지만...개인 사정으로 인해 바로 수정이 어려워 정말 '남겨두기' 만 하였다. 최대한 빠르게 복귀해 해당 부분을 수정할 생각이도 코드를 짜지 못하는 기간에는 손으로 부족한 설계를 좀 더 진행 또는 마무리 할 생각이다. ※ 참고 : 나는 TIL 작성 방식을 내가 학습하며 정리한 다른 게시글들과 하이퍼링크를 거는 방식으로 작성하였다. 학습한 내용에 하이퍼링크를 걸어두었으니 해당 링크를 통해 학습을 정리한 내용에 접근할 수 있다.
2024.09.13 -
[내일배움캠프] 숫자 야구 게임 구현 - Level.01 요구사항(1)
'Level.01 요구사항' 중 '정답 생성' 과 '플레이어 입력' 을 구현하였는데, 구현 이후 다시 코드를 확인하며 회고하려 한다. 구현 코드 및 프로젝트 설명은 여기서 확인 할 수 있다. 1. 정답 생성 일단 게임 시작시 정답을 생성하는 역할을 추상화한 인터페이스와 그 구현 클래스를 작성했는데, 지금 보니 구현 클래스의 이름을 '세 자리 숫자 정답' 을 생성한다는 의미를 담아 지었는데 다시 보니...이건 아니다. 아마 요구사항에 정답의 길이를 '3자리' 에서 '5자리' 로 늘리는 부분이 있었는데, 그걸 의식했던 것 같다. 하지만 위 이미지에서도 그렇지만 정답의 길이가 늘어난다고 해서 클래스의 필드나 메서드가 크게 바뀌는 것은 없다. 바뀌어 봤자 'List numbers' 에서 꺼낼 값이 3개에서 5..
2024.09.13