Getter 에 대한 기준이 필요해이번 주차에 들어서며, 나는 getter 에 대한 기준이 필요하다는 생각이 들었다. 우리는 왜 매일같이 'getter 를 지양하세요' 라는 말을 들을까? 나는 getter 지양의 중요성에 대해 저번 주차에 진하게 깨달았었다. 유연한 설계에 대해 계속 고민하다 보니, getter 로 필드를 노출하게 되면 추후에 데이터 구조가 변경됐을 때 getter 를 사용한 코드를 모두 바꿔야 하기 때문이다! 여기서 나는 다음과 같은 것들을 느꼈다.캡슐화는 정말 꽁꽁 숨기라는 것이 아냐처음에 나는 캡슐화, getter .. 와 같은 것들에 대해 알게 됐을 때, 외부가 정말 알 수가 없도록 꽁꽁 숨기라는 것인 줄 알았다.예를 들어 특정 모델에 대한 규칙은 해당 모델만 알아야 한다고 생각했..
가고 있다는 사실만으로도 어떤 시간은반으로 접힌다펼쳐보면 다른 풍경이 되어 있다- 중에서 내가 좋아하는 안희연 작가의 시가 떠오르는 한 주였다. 과제를 제출하고 나니 뭘 배웠지 하는 허탈함이 몰려왔다.나름대로 내 최선을 다해봤는데, 내 손에 뭐가 남았는지 잘 모르겠다는 생각을 해 2주차 끝나던 날은 썩 유쾌하지 않은 상태로 잠에 들었다.그러나 리뷰를 하다 보니 내가 뭘 알게 됐고, 뭘 몰랐고, 어떤 부분에 부정확한 지식을 갖고 있는지 돌아보게 됐다. 이번 주차에는 리뷰를 할 때 최대한 성심 성의껏 리뷰하기 위해 노력했다. 리뷰를 받기 위한 리뷰를 하지 않기 위해 더 노력했다.이를 위해 작은 부분이라도 한 명 한 명마다 배울 점이 있는지 정리해 쭉 나열했다. 이를 이제는 차근차근 정리해 내 것으로 흡수해..
오늘은 병적으로 유연하게.. 유연한 설계를 찾아 헤맸던 날이었다.나의 모토는 '남들이 한다고 해서 다 하지 말자', '이유가 명확하지 않으면 하지 말자' 이기 때문에 물론 이유 없이 적용한 것들은 없었다.유연하게 유연하게를 되뇌이며 결합도를 낮추다 보면 어느새 새롭게 보이는 것들이 있어 너무 신기했다.문제의식을 갖게 된 계기public class Game{ public Game(String[] nameOfCars, int totalRounds) { this.cars = new Cars(nameOfCars); this.totalRounds = new TotalRounds(totalRounds); this.totalRounds = totalRo..
🎁 포장해보자 🎁오늘은 어떤 객체를 또 돌돌 말아 감싸볼까 하고 고민했던 하루였다.우승자들을 저장하자public class Cars { public List getNameOfWinner() { return cars.getNameOfMaxPositionCars(); } public List getMaxPositionCars() { int maxPosition = cars.stream() .mapToInt(Car::getPosition) .max() .orElseThrow(() -> new IllegalStateException("등록된 차량이 없습니다.")); retur..
아직 미션을 진행한지 3일째가 되는 날이지만, 고민한 부분들이 여러개가 있어 추후에 기록의 목적으로라도 남겨 놓는다!💥 이번 주차 코드 내용이 소량 담겨 있으니 7기 프리코스 참여자분들은 읽지 않는 것을 권장드립니다.. 💥객체는 자유롭다이번 미션을 들어가기 전에 고민을 많이 했다. 설계를 촘촘히 하고 코드를 짤 것인가, 우선 구현을 해보며 감을 잡을 것인가.나는 후자를 선택했다. 틀을 완벽히 잡고 작업에 들어가면 물론 더 좋겠지만, 이가 현실적으로 가능한가 하는 생각을 했다.그리고 책 에서 나온 다음 문장을 나는 계속해서 떠올렸다.어떠한 객체도 섬이 아니다.'완벽한' 설계를 한 뒤에 코드를 짜게 되면 객체들이 섬이 되는 것 같다는 생각을 많이 했던 것 같다. 객체들은 서로 협력하기 위한 존재이다. ..