분류 전체보기(204)
-
[내일배움캠프] 계산기 구현 - level.04
이번에 구현한 'Level04 계산기' 는 개인적으로 추가 기능을 반영하기 위해 구현하였다. 내가 반영하고자 하는 것은 바로 Exception 의 활용에 대한 부분인데 해당 부분을 반영하고자 한 이유는 현재 구현된 일부 메서드들이 2개 이상의 기능을 수행한다는 점 그리고 필요에 의해 구현했지만 'boolean' 을 반환하는 메서드를 비교적 자주 구현/사용한다는 점이다. 위 이미지의 메서드는 'level03/validation/ValidInput.validCalculation()' 메서드이다. 해당 메서드에 부여한 주 역할은 입력 값의 유효성을 검증하는 것인데, 현재 '검증' 뿐만 아니라 '출력' 도 같이 수행하고 있다. 그리고 메서드의 반환 타입이 boolean 인데 이러한 메서드가 여럿 되다 보니 추후..
2024.09.10 -
[내일배움캠프] TIL - 24.09.09(월)
주말간 'level03 계산기' 의 요구사항을 모두 반영하였기에 오늘은 다시 한 번 요구사항을 제대로 반영했는지 확인하고 작성한 코드를 다시 리딩하며 '리팩토링(refactoring)' 을 진행했다. 불필요하게 긴 클래스/메서드/변수 명들을 의도는 전달 할 수 있되 줄였으며, 기존에 미처 수정하지 못한 README.md 를 손 보았다. 현재로서는 작성한 코드는 요구사항을 만족하며 정상적으로 작동하는 것을 확인했으니 이제 내일은 요구사항에는 없지만 필요하다 생각하는 부분을 추가 반영하여 개인적으로 'level04 계산기' 를 구현하고 그 내용을 정리해 과제 제출 전 마지막 점검을 가진 후 제출을 할 계획을 세웠다. ※ 참고 : 나는 TIL 작성 방식을 내가 학습하며 정리한 다른 게시글들과 하이퍼링크를 ..
2024.09.09 -
[내일배움캠프] 계산기 구현 - 리팩토링
현재 '계산기 구현`에 대한 요구사항을 모두 프로젝트에 반영하였다. 이번에는 해당 프로젝트에 요구사항이 제대로 반영되었는지 확인하고 필요하다면 수정하려 한다. 더불어 구현 때문에 미루어 두었던 'README.md' 파일도 수정하였다. 1. README.md 다른 사람이 해당 프로젝트를 확인해도 쉽게 이해를 도울 수 있도록 READMD.md 를 작성해 두었는데, 이전에 없던 '목차' 와 '시스템 아키텍처' 를 추가하였다. 2. 코드 리팩토링(refactoring) 기존에 사용하던 클래스, 메서드, 변수의 이름을 수정하고 기존에 작성해둔 주석도 수정하였다. '클래스/메서드 이름 수정' 에 대한 일부는 아래와 같다.ValidInputData → ValidInput : 입력 값의 유효성 검증 역할을 가진 클래..
2024.09.09 -
[내일배움캠프] 계산기 구현 - 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