개발자 준비119 생산성 향상을 위한 나만의 개발 프로세스 만들어보기 요구사항 추적 큰 맥락의 필요 기능과 예외상황을 기술한 기능 목록을 작성한다 이때, 놓치기 쉬운 요구사항들은 주의 사항 리스트로 별도로 만들어둔다 기능 목록에서 객체를 도출하고 도출한 객체를 가장 작은 개념까지 최대한 쪼개본다 ex) Lottos → Lotto → LottoNumber 기능 목록에서 메세지를 도출하고 도출한 메세지의 송수신 객체를 찾아본다 ex) Lottos → “로또를 생성하라” → Lotto 위를 기반으로 메세지 흐름이 보이도록 다이어그램을 그려본다 이때, 자세한 메서드 명이나 타입은 포함하지 않으며 어떤 형식의 결과를 반환할지만 명시한다 ex) List x , 다리 정보를 리스트로 반환 o 검토하며 필요한 부분에 객체나 메세지를 재배치한다, 책임 분배를 의미하는 것이다 설계로 넘어간.. 2022. 11. 22. 실전을 위한 MVC 재 정리(feat. 입력을 원하는 타입으로 가공하는 책임은 어디일까?) 판단 실수 이전 미션을 수행하며, InputView에서 사용자 입력을 원하는 타입으로 변환하는 책임을 지어줬습니다 (심지어 타입 변환시 발생하는 예외처리도 이곳에서 담당합니다..) public class InputViewImple implements InputView { @Override public List inputWinningNumbers() { try { System.out.println("당첨 번호를 입력해 주세요."); return InputUtil.convertStringSplitToList(Console.readLine()); //타입 변환 책임 }catch (Exception e){ throw new IllegalArgumentException(WINNIG_NUMBERS_INPUT_FOR.. 2022. 11. 22. 정규 표현식 replaceAll() 을 이용해 문자열 치환에서 활용되거나 Pattern.matches() 를 이용해서 검증에서 활용되는 등 문자열의 형식을 추려내야하는 작업을 간단하게 수행할 수 있습니다 하지만, 정규식은 가독성이 좋지 않습니다. 때문에 클린 코드를 위해 정규식을 사용할때는 고민이 필요합니다 가독성이 필요한 부분은 직접 조건문을 작성함이 어떨까 싶습니다 수량자와 메타문자 정규식에서 패턴을 이루는 요인은 두개로 나뉠 수 있습니다 메타문자 : 문자를 자체를 나타내는 문자 수량자 : 앞에 기입한 문자가 몇개 존재해야 하는지 수량을 나타내는 문자 아래 활용 예시를 보면 어떤 의미인지 이해하실 겁니다 메타문자 종류 ^ : 문자열의 시작 $ : 문자열의 종료 . : 모든 종류의 한 문자 []: 문자 클래스 ^ .. 2022. 11. 9. 매개변수 3개는 무조건 피해야할까? 얼마전 Clean Code의 저자인 Robert Cecil Martin가 주장하신 “메서드 매개변수가 3개이면 코드를 이해하기 어렵기 때문에 나쁜 디자인”이라는 내용을 접했습니다 하지만, 이번에 코드를 리펙토링하며 코드 깊이 2를 유지하기 위해선 매개변수 3개가 불가피한 상황에서 위 주장에대한 고민을 하게 되었습니다 “메서드 매개변수가 3개이면 코드를 이해하기 어렵기 때문에 나쁜 디자인이다” 라는 말에서 중요한 포인트는 매개변수의 수가 아니라, 코드를 이해하기 어렵다 라고 생각했습니다 분명 매개변수가 많아지면 메서드의 역할을 파악하는데 어려움이 생길 확률이 높아집니다 SRP를 잘 준수하는 잘게 나뉜 클래스들도 각각 필드가 적다라는 특징이 있었습니다 하지만, 3개의 매개변수를 쓰더라도 메서드의 의도가 잘 .. 2022. 11. 8. 이전 1 2 3 4 5 6 ··· 30 다음