내일배움캠프(114)
-
[내일배움캠프] 계산기 구현 - level.03(3)
마지막 요구사항(도전 기능)은 'Stream & Lambda 를 적용한 메서드' 를 구현해 'level03' 계산기에 적용하는 것이다. 정확한 요구사항은 현재 연산결과를 저장하는 'Collection' 객체와 현재 입력한 연산의 결과를 비교해 현재 연산결과 보다 큰 이전 연산결과들을 출력하는 메서드 구현이고 해당 메서드에 'Lambda & Stream' 을 활용하는 것이다. 1. 새로운 연산결과 출력 메서드 추가(Lambda & Stream 활용 필수!) 수정 전 코드를 기준으로 설명하면 나의 경우 'Calculator' 클래스에 연산결과를 저장하는 'Collection' 객체가 필드에 존재한다. 그리고 가장 최근 연산결과 5개를 출력하는 메서드 'getCalculateResults()' 를 구현해 두었..
2024.09.08 -
[내일배움캠프] 계산기 구현 - level.03(2)
'Generics' 를 구현 중인 'level03' 계산기에 적용하였다. 기존에는 이전 'level02' 계산기에 사용했던 'level02/calculate/Calculator' 클래스를 재사용하였지만 요구사항을 적용하기 위해 'level03/calculate/Calculator' 를 추가 생성하였다. 1. Generics 적용 'Generics' 는 왜 사용할까? 개인적으로 내린 결론은 "타입별로 클래스를 구현하는 것은 매우 비효율적이기 때문" 이라 생각한다. 물론 구현 당시에는 사용될 법한 타입을 사용한 클래스를 여럿 만들어 두는 것은 그리 어렵지 않을 수 있다. 하지만 구현 후 사용될 타입 외에 타입들이 사용자들의 요구나 개인적으로 늘어난다면? 그런 경우가 생길 때 마다 배번 해당 타입을 클래스를 ..
2024.09.08 -
[내일배움캠프] TIL - 24.09.06(금)
아침에는 어제 구현한 'level02' 계산기를 다시 한 번 리딩하고 수정하였고, 오후에는 'level03' 계산기의 요구사항을 정리하고 요구사항 중 'Enum 클래스를 활용' 을 적용하여 'level03' 계산기를 구현하였다. 현재까지 작성한 코드에 새로운 요구사항을 반영에 추가 작성을 하다보니 요구사항 하나를 적용한 것 뿐인데도 생각보다 시간이 걸렸다. 오늘 작성한 코드는 여기에서 확인이 가능하다. 이번 주말에는 최대한 빠르게 남은 요구사항을 적용하고 프로젝트나 프로젝트 README.md 를 정리할 생각이다. 그 이후 제출까지 남은 시간에는 요구사항에 없는 기능을 개인적으로 추가, 개선한 'level04' 계산기를 구현해 볼 생각이다. ※ 참고 : 나는 TIL 작성 방식을 내가 학습하며 정리한 다른..
2024.09.06 -
[내일배움캠프] 계산기 구현 - 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