내일배움캠프(114)
-
[내일배움캠프] 계산기 구현 - level.03(1)
'level03' 계산기는 Enum, Generics, Lambda, Stream 을 적용하는 도전 단계의 과제이다. 그 중 오늘은 Enum 클래스를 생성해 적용한 'level03' 계산기를 구현하였다. 추후 수정을 위해서 어떤 의도를 가지고 구현을 했는지 구현 과정 일부를 작성하게 되었다. 1. 구현 계획 일단 크게 세 가지의 목표를 세워 구현에 들어갔다. 첫 번째는 기존의 유효성 검증에 필요한 정규식이나 특정 문자열, 시스템 메세지들은 모두 출력문에 그대로 작성하였는데 이 걸 'level03' 계산기에서는 한 곳에서 다룰수 있게 Enum 클래스들을 구현해 활용하는 것, 두 번째는 기존 'level01', 'level02' 계산기와 별도로 기능이 동작하도록 분리하여 구현할 것, 마지막은 이미 구현된 ..
2024.09.06 -
[내일배움캠프] 계산기 구현 - level.02(2)
아침에 일어나서 어제 작성한 'level.02' 계산기와 다음 단계(level.03)의 계산기 요구사항을 함께 확인하면서 수정할 사항을 파악했다. 실행 흐름에 대한 부분은 'level.01' 계산기에서 비교적 형태를 잡아 놓은 상태였기에 해당 부분은 딱히 수정할 부분이 보이지 않았지만 코드작성 중 'level.01' 계산기와 'level.02' 계산기를 물리적으로 분리하고 싶었기에 'level.01' 계산기에 이미 원하는 기능을 수행하고 있는 메서드가 있음에도 'level.02' 계산기 쪽에 이를 중복 구현한 부분이 존재했다. 의도가 물리적(코드적)으로 분리하고 싶었기에 작성했다고 하지만 'level.03' 계산기 요구사항을 정리해보니 해당 계산기에는 더 많은 중복코드가 생길 것이라 판단 기존의 의도는..
2024.09.06 -
[내일배움캠프] TIL - 24.09.05(목)
점심 전으로 어제 구현한 'level01' 계산기를 다시 한 번 확인 후 수정하는 과정을 진행하였다. 점심 이후로는 'level02' 계산기 구현에 주어진 요구사항을 재차 확인, 구현을 진행하였고 TIL 를 작성하는 지금 구현을 마쳤다. 하지만 구현 및 작동 테스트를 마쳤을 뿐 아직 수정할 부분이 더 있을거라 판단 내일 오전에 다시 코드 리딩 및 수정 작업을 진행하고 완료되는 대로 'level03' 계산기 요구사항 정리 및 구현을 진행할 것이다. 오늘 튜터님과 튜터링 중 과제 제출기간(다음 주 수요일, 11일) 전까지 최대한 개인 과제를 만지고 제출해도 된다는 답변을 받았다. 개인적으로 'level03' 까지 구현이 완료되어도 개인적으로 목표를 잡고 'level04' 를 만들거나 지속해서 코드 리딩을 해..
2024.09.05 -
[내일배움캠프] 계산기 구현 - level.02(1)
이전에는 단일 클래스에 연산을 수행하는 계산이를 구현했다면, 이번에는 목적에 부합하는 여러 클래스의 객체를 다루는 방식으로 계산기를 구현하는 과정을 남겨본다. 정리해둔 요구사항은 여기에서 확인할 수 있고 구현한 코드는 여기서 확인가능하다. 먼저 다른 방식으로 구현한 '다른 계산기' 를 한 프로젝트 안에 추가하는 것이기에 연산을 위한 입력 외에도 어떤 계산기를 선택해 사용할지 사용자가 선택할 수 있는 입력이 필요하다 생각했다. 다음으로 요구사항에는 기존 'level01' 계산기에서 추가 구현 부분이 일부 활용되는 것을 요구했지만 결국 여러 클래스의 객체를 사용하는 별도의 계산기 구현을 요구하는 것으로 판단 'level02' 계산기의 흐름을 작성할 '별도의 클래스(Main 클래스와 유사한)' 가 필요하다 ..
2024.09.05 -
[내일배움캠프] 계산기 구현 - level.01(2)
아침에 일어나니 어제 미처 파악하지 못한 부분이 떠올랐다. 요구사항을 다시 한 번 확인하니 사용자가 "exit" 를 입력하면 프로그램이 종료되는 것 까지는 맞게 구현을 했는데 문제는 내가 임의적으로 첫 입력 값이 "exit" 일 때 계산기를 종료 할 수 있게 로직을 작성했다는 것이다. 심지어 요구사항에는 어느 시점이든 사용자가 "exit" 를 입력하면 계산기가 종료될 수 있도록 작성할 것을 요구하는 걸로 보인다(직접적인 내용은 없지만 요구사항의 흐름상 해당 내용이 맞다고 판단했다). 수정한 코드는 여기서 확인 가능하다. 1. 수정 전 현재 로직은 사용자의 "exit" 입력을 첫 번째 입력에서만 파악할 수 있다. 그래서 두 번째, 세 번째에서 사용자가 "exit" 를 입력해도 계산기가 종료되는 것이 아니라..
2024.09.05 -
[내일배움캠프] TIL - 24.09.04(수)
오늘은 'CH2(Java)' 에서 처음으로 개인 과제 발제가 있었다. 강의에서 학습한 내용을 활용할 수 있는 주제의 과제가 주어졌는데, 크게 단일 클래스, 여러 클래스의 관계(의존관계)를 통해 2가지 방식으로 과제를 구현해야 하며 기본적으로 필수 기능(필수 요구사항)을 구현해야 하고, 도전 기능(도전 요구사항)의 경우 이전 필수 기능 구현이 끝나면 진행하도록 커리큘럼이 짜여져 있었다. 과제 제출까지는 총 1주일의 기간(오늘 포함)이 주어졌기에 최대한 필수 기능 구현을 끝마치고 튜터님에게 중간제출? 점검? 을 받은 후 도전 기능을 구현할 계획을 세웠다. 계획에 맞춰 오늘은 '단일 클래스' 로 과제를 구현했으며, 구현 코드는 여기서 확인 할 수 있고, 처음 구현을 마치고 진행한 코드 수정에 대한 내용은 여..
2024.09.04