JAVA(9)
-
우아한테크코스 6기[BE] 4주차 회고
벌써 마지막 주차 미션제출이라니 시간이 정말 빠르게 흐른 것 같습니다. 4주차 미션을 진행하며 고민했던 내용들을 정리해보았습니다. 이번 미션에서는 크게 3가지 확장성을 고려하면서 기능을 구현했습니다. 먼저는 "플래너 적용 날짜에 대한 확장성"입니다. 제공된 이메일 내용을 보면 23년 12월을 목표로 삼고 있습니다. 이와 더불어 24년도 1월에 대한 이야기도 담겨 있었습니다. 따라서 플래너가 24년에도 사용될 수 있다고 생각했습니다. 따라서 2023년과 12월을 'PlannerConfig' 클래스에서 상수로 작성했습니다. 두 번째는 '적용되는 이벤트의 변경'입니다. 제공된 이메일에서는 5개의 이벤트를 담고 있었습니다. 하지만 프로그램을 진행하며 취소하거나 추가하고 싶은 이벤트가 생길 수 있다고 판단했습니다..
2023.11.15 -
우아한테크코스 6기[BE] 3주차 피드백
3주 차 공통 피드백 함수(메서드) 라인에 대한 기준 함수 하나 당 15라인을 넘지 않는다. 이는 공백도 포함한다. 발생할 수 있는 예외 상황에 대해 고민한다 예외 상황을 고려해 프로그래밍하는 습관을 들인다. 로또 구입 금액에 1000 이하의 숫자를 입력 당첨 번호에 중복된 숫자를 입력 당첨 번호에 1~45 범위를 벗어나는 숫자를 입력 당첨 번호와 중복된 보너스 번호를 입력 비즈니스 로직과 UI 로직을 분리한다 비즈니스 로직과 UI 로직을 한 클래스가 담당하지 않도록 한다. 단일 책임의 원칙에도 위배된다. 현재 객체의 상태를 보기 위한 로그 메시지 성격이 강하다면 toString()을 통해 구현한다. View에서 사용할 데이터라면 getter 메서드를 통해 데이터를 전달한다. 연관성이 있는 상수는 sta..
2023.11.09 -
팩토리 패턴
팩토리 패턴 우아한테크코스 코드리뷰를 하며, 팩토리 패턴을 사용하는 코드를 읽어볼 수 있었다. 하나의 일급 컬렉션에 생성, 검증, 로직 들을 모아 두었던 저의 코드들에 비해 관심사의 분리가 확실히 되어있다는 생각이 들었고, 보다 클래스가 간단해 진다는 장점들을 확인할 수 있었다. 따라서 팩토리 패턴들에 대해 공부해 보고 기회가 될때 적용해보려고 한다. 참고 자료 https://bcp0109.tistory.com/366 https://bcp0109.tistory.com/367 https://bcp0109.tistory.com/368 심플 팩토리 패턴 심플 팩토리 패턴은 팩토리 패턴으로 여겨지지는 않지만 팩토리 메서드 패턴과 추상 팩토리 패턴의 베이스가 되는 패턴이다. 심플 팩토리 패턴은 객체 생성 클래스를..
2023.11.05 -
우아한테크코스 2주차[BE] 피드백
2주 차 공통 피드백의 내용은 다음과 같았습니다. - README.md를 상세히 작성한다 미션 저장소의 README.md는 소스코드에 앞서 해당 프로젝트가 어떠한 프로젝트인지 마크다운으로 작성하여 소개하는 문서이다. 해당 프로젝트가 어떠한 프로젝트이며, 어떤 기능을 담고 있는지 기술하기 위해서 마크다운 문법을 검색해서 학습해 보고 적용해 본다. => 앞으로 마크다운 문법으로 블로그를 작성해보려고 한다. - 기능 목록을 재검토한다 기능 목록을 클래스 설계와 구현, 함수(메서드) 설계와 구현과 같이 너무 상세하게 작성하지 않는다. 클래스 이름, 함수(메서드) 시그니처와 반환값은 언제든지 변경될 수 있기 때문이다. 너무 세세한 부분까지 정리하기보다 구현해야 할 기능 목록을 정리하는 데 집중한다. 정상적인 경우..
2023.11.03 -
우아한테크코스 6기[BE] 2주차 회고
2주차 미션의 내용은 자동차 경주였습니다. 함수 분리와 테스트 작성 2주차에서는 함수를 분리하고, 각 함수별로 테스트를 작성하는 것 에 초점을 맞추는 게 핵심 주제였습니다. 따라서 1주차에서와 같이 TDD방법과 클린 코드에 유의하면서 기능을 구현했습니다. test 코드를 먼저 작성한 후에 기능을 작성하였고 계속해서 리팩토링을 하며 미션을 진행했습니다. TDD를 이용한 방식으로 2번째 미션까지 완료하니 TDD의 장점이 와닿기 시작했습니다. TDD 작성을 통해, 지금 구현하고자 하는 기능과 예외항목들을 명확히 정리할 수 있었고 구조를 먼저 생각하며 유지보수에 좋은 코드를 작성하는 데 집중할 수 있었습니다. 또한 junit5와 test들에 대해 공부하며 @ParameterizedTest, fixtures 등을..
2023.11.03 -
정적 팩토리 메서드
2주차 미션을 수행하며 String으로 받은 자동차 이름들로 List를 만드는 매서드가 필요했습니다. 처음에는 CarsGenerator을 이용해 구현을 했습니다. 하지만 List을 Cars라는 일급 컬렉션로 만들면서 CarsGenerator라는 클래스에 대해 의문이 생기게 되었습니다. 따라서 해당 메서드를 Cars안에서 만들고자 했고 그 과정에서 정적 팩토리 메서드를 공부하게 되었다. 정적 팩토리 메서드에 대해 공부한 내용들을 정리하고자 합니다. 참고한 글은 다음과 같습니다. https://tecoble.techcourse.co.kr/post/2020-05-26-static-factory-method/ 정적 팩토리 메서드(Static Factory Method)는 왜 사용할까? … tecoble.tech..
2023.10.31