객체지향 생활체조
[우아한테크코스] 원시값 포장과 일급컬렉션은 무엇이고, 어디까지 감싸야 할까?
원시값 포장과 일급컬렉션의 사용은 소트웍스 앤솔로지의 객체지향 생활체조로부터 시작되었습니다. 1. 모든 원시값과 문자열을 포장한다. 2. 일급 컬렉션을 쓴다. 해당 포스팅에서는 원시값 포장과 일급 컬렉션이 무엇인지, 그리고 무조건 원시값과 컬렉션을 무조건 감싸주는 것이 옳은가에 대해 알아보겠습니다. 원시값 포장 원시값 포장은 Primitive 타입을 그대로 사용하지 않고, 객체로 사용하기 위해 하나의 클래스를 선언해주는 것을 의미합니다. Lotto 미션에서 로또 번호를 단순히 Int로 사용할 수도 있지만, 우리는 원시값을 포장하라는 요구사항을 받았기에 대부분 아래와 같이 코드를 작성했을 것입니다. class LottoNumber(val value: Int) { init { validateLottoNumb..
[우아한테크코스] 2주차 - 로또(자동) 미션 회고 및 피드백
우아한테크코스 로또(자동) 미션에서는 TDD를 도입하여 페어프로그래밍을 하였습니다. 기존과 다르게 TDD 사이클을 기반으로, 3단계(실패하는 테스트 코드 작성 -> 가능한 빠르게 성공하는 테스트 코드 작성 -> 리팩터링)를 거치다 보니 시간이 촉박하였습니다. 하지만 1주차때와 달리, 테스트 코드를 우선적으로 작성하다 보니 가능한 많은 경우에 대해 생각해 볼 수 있었고, 도메인 모델에 기능을 추가할 때 더 높은 신뢰를 가질 수 있었습니다. 기능이 수정되어도 기존에 작성해놓은 테스트 코드를 통해 쉽게 검증할 수 있었기에, 테스트 코드를 믿고 과감하게 리팩터링 할 수 있었습니다. 또한, 코치님의 말씀대로 TDD를 적용하니, Green에서 Refactor 단계로 넘어가는 과정에서 어떠한 로직이 추가되어야 할 근..