NeXTSTEP

· 외부활동
수료 🥳 🎉 주어진 기간안에 미션을 모두 완료했다! 어려웠지만 리뷰어님들과 포비님의 응원 및 리뷰 덕분에 잘 완료되었다. 그런데 썩 마음에 들지 않는 내 코드들이 있다. 이 부분들은 개인적으로 수정해볼까 한다. 막판에 조금 아슬아슬하긴 했지만 어쨌든 성공적으로 마무리해서 뿌듯하다. 과정에 대한 소감 개발문화가 괜찮다고 하는 회사들의 얘기를 들어보면 개발 후 PR(Pull Request)를 하고, 개발자 서로의 코드를 리뷰해주는 문화를 가지고 있었다. 나는 현재 2년차에 접어든 재직자이지만 코드 리뷰같은 건 받아보지 못했다. 기능에 문제가 있지 않는 이상 아무도 내 코드에 태클걸 지 않았다. "저러면 싸움나는 거 아니야...?" 코드리뷰라는 걸 알았을 때 내 처음 생각은 이랬다. 만약 누가 내 코드에 자꾸..
· 외부활동
피드백 정리 Optional에 대해 문제가 된 코드는 다음과 같다. private static Optional validatedInputPlayers() { try { return Optional.of(Players.fromStringList(INPUT_VIEW.inputPlayers())); } catch (IllegalArgumentException e) { System.out.println(e.getMessage() + TRY_INPUT_AGAIN); } return Optional.empty(); } INPUT_VIEW를 통해 사용자의 입력을 받아올 때, IllegalArgumentException 예외가 발생하여도 일단은 정상적인 흐름으로 가져가기 위해 Optional을 도입했다. 코드 자체에는..
어느덧 6주가 지났다. 이 과정을 진행하는 동안 시간이 정말 빠르게 흘렀다. 배운 점도 많고, 이번 주가 아마 마지막 주일 것 같은데 미션 두 개가 아직 남았다. 둘 다 마지막 단계를 리퀘스트하고 코드 리뷰를 주고받는 중이라 기간 내에 끝낼 수 있지 않을까 싶다. 과정이 완전히 종료되면 회고록도 따로 작성해야겠다. 피드백 정리 빌더 패턴 지금껏 빌더 패턴을 즐겨 사용해왔다. 책 이펙티브 자바의 Item2는 생성자에 매개변수가 많다면 빌더를 고려하라 이다. 스프링부트 프로젝트에서 Lombok 라이브러리를 사용하면 매우 간단하게 빌더패턴을 사용할 수 있다. 때문에, 클래스에 매개변수가 많은 경우 잘 사용했다. 수강신청 미션을 진행하며 매개변수가 많아지자 평소처럼 빌더패턴을 사용하여 객체를 생성했다. 그러자 ..
· 외부활동
이번 주는 내가 코딩테스트 공부를 하느라, 그리고 리뷰어님이 바쁘신 지 리뷰가 늦어져서 진행이 많이 안 됐다. 근 2주 동안 속도가 더뎌진 듯 하다. 얼마 안 남았으니 최대한 마무리 해야지! 피드백 정리 스트림은 순수 함수 모음이다 자바의 Stream은 자바에서 여러 함수를 모아 함수형 프로그래밍을 할 수 있도록 도와주는 API이다. 함수형 프로그래밍은 말 그대로 함수가 주가 되어, 함수 재사용을 강조하는 패러다임이다. 이 때 중요한 것은 이 함수가 순수함수여야한다는 점이다. 순수 함수는 동일한 입력에 대해 항상 동일한 출력을 반환하고 내부, 외부 상태에 의존하지 않는 함수이다. 함수가 실행되어도 시스템의 상태를 변경하지 않기 때문에 함수가 전역 변수를 변경하거나, 파일 시스템에 쓰기, 네트워크 요청을 ..
· 외부활동
NEXTSTEP 과정을 시작한 지 벌써 3주가 지났다. 시간이 어떻게 가는 지도 모르겠다. 이번 주도 과정을 진행하며 받은 피드백을 정리해보고 나름의 회고를 해보려고 한다. 피드백 정리 1. Enum과 함수형 인터페이스 개발하다보면 어떤 상수에 대한 상태를 관리해야하는 경우가 있다. 예를 들어, 로또 등수에 대한 경우이다. 어떤 경우인 지 코드로 알아보자. enum 내부에 선언된 각각은 로또의 등수를 나타내는 클래스이며, 변하지 않는 상태를 가지고 있다. 위의 경우 로또 5등(FIFTH)는 3개의 숫자(correctCount)가 맞아야하고, 그에 따른 상금은 5000원(winnings)이다. 굳이 이렇게 나타내야하나 싶겠지만, enum에는 중요한 특성이 있다. 바로 각각이 싱글턴 객체라는 것이다. 그렇게..
· 외부활동
피드백 정리 1. getter를 지양하자 과제를 구현하다보니 화면 출력 기능에는 도저히 getter가 없으면 안 될 것 같았다. 해당 도메인 객체에 출력하는 책임을 부여한다면 getter는 필요없겠지만, 과연 그것이 객체지향적일까? getter를 만드는 것과 출력의 책임을 부여하는 것. 그 사이에서 고민이 많았다. 출력의 책임은 출력 객체에서 오롯이 관리하고 출력을 위한 getter 정도는 괜찮겠다 생각해서 만들어줬다. 그러다보니 다음과 같이 출력이 아닌 코드에도 생각없이 getter를 사용하게 되었다. public List getWinnerList() { return cars.stream() .filter(car -> car.getPosition() == maxPosition()); getter가 있으..
nimoh
'NeXTSTEP' 태그의 글 목록