본문 바로가기

전체 글

(461)
[로또] step2 - 로또(자동) - 피드백 및 피드백 반영(21일차) 해당 변수들은 생성자를 통해 초기화하고 있는데요 생성자를 통한다는 것은 인스턴스화를 한다는 것인데, 모든 인스턴스가 공유하는 자원을 생성자로 초기화하는 설계에 어떠한 문제가 있을지 고민해보면 좋겠습니다! 추후 해당 서비스를 웹서비스로 공개하여 실제 로또 서비스를 여러 유저들이 사용할 수 있게 구현한다는 생각으로 접근해보면 좋을 것 같아요 :) 생성자에서 초기화를 하는 것에 대한 문제는, 클래스를 사용할 때 무조건 해당 변수를 인자로 넣어야 한다는 부담감이 생기는 것에 대한 문제 일까요?? LottoMachine에 있던 lastWinningLottoNumberChecker 클래스를 밖으로 빼고, 생성자에서 초기화 하던 부분을 수정하였습니다. 도메인 내에 View의 로직을 가지고 있다면 어떠한 문제가 있을지..
[로또] step2 - 로또(자동) - 피드백 반영(20일차) 해당 객체가 가지고 있는 역할이 굉장히 많은 것 같아요 🤔 적절한 책임을 나누어 객체를 분리해보면 좋겠습니다! 로또 번호가 42까지 밖에 안보이네요 @_@ 또한 값의 범위가 커질수록 하드코딩 하는 것이 힘들어질 수 있기 때문에 범위를 통해 번호를 생성해보면 좋을 것 같아요! InputView의 경우 LottoApp에서 사용하고 ResultView의 경우 도메인 내부에 존재하도록 구현해주셨네요! 도메인 내부에 View의 로직이 존재한다면 어떠한 문제가 있을지 고민해보아요 String 타입으로 로또의 번호라는 사실을 검증할 수 있을까요? 규칙 3: 모든 원시값과 문자열을 포장한다.을 통해 값들을 포장하여 해당 문제를 해결해 볼 수 있을 것 같습니다 :) 이전에 멘토님께서 위와 같은 피드백을 주셨다. 피드백을..
[로또] step2 - 로또(자동) - 피드백 (20일차) import java.util.Arrays; import java.util.Collections; public class LottoMachine { 해당 객체가 가지고 있는 역할이 굉장히 많은 것 같아요 🤔 적절한 책임을 나누어 객체를 분리해보면 좋겠습니다! public class LottoMachine { private static String[] lastLottoNumArray; private static ArrayList lottoNumberList = new ArrayList(Arrays.asList("1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24",..
[로또] step1 - 문자열 덧셈 계산기 - 피드백(20일 차) Matcher m = Pattern.compile("//(.)\n(.*)").matcher(o); Pattern 객체를 반복해서 생성하는 것은 굉장히 비용이 큰 작업입니다. 재사용한다면 어떠한 장점이 있을지 고민해보아요. 충분한 고민 후 이펙티브 자바 아이템 6. 불필요한 객체 생성을 피하라를 참고해주세요! Matcher 부분을 static으로 만들어 한번만 생성하도록 구현하는 것이 더욱 좋을 것 같습니다! - private static int sumStringAry(String[] stringAry) { + private static int sumStringArray(String[] stringArray) { 개인적으로 축약하여 적는 것은 가독성이 떨어진다고 생각하는데 재영님의 생각은 어떠신가요! 저도..
[JAVA] 백준 12100번: 2048 (Easy)
[로또] step2 - 로또(자동) (18일차) indent를 지킨다는 규칙이 너무 버거웠습니다. indent를 지키기 위해 마지막에 수정을 하다보니 코드가 더 더러워진 느낌입니다. issueLotto 메서드 에서는 로또 발행만 하고 compareLottoWithLastLottoNumber 에서 발행한 로또 번호와 당첨 번호를 비교하는 작업만 진행려고 하였습니다. 코드를 짜다보니 for, for, if 문으로 indent가 3이 되버렸고, 이를 피하기 위해 코드를 산재하다 보니 issueLotto 부분이 너무 커진 느낌이 있습니다. 어떻게 변경을 할 지 조금 더 생각해 보도록 하겠습니다. import step2.domain.LottoMachine; import step2.view.InputView; public class LottoApp { publi..
[로또] step2 - 로또(자동) (17일차) 🚀 2단계 - 로또(자동) 기능 요구사항 로또 구입 금액을 입력하면 구입 금액에 해당하는 로또를 발급해야 한다. 로또 1장의 가격은 1000원이다. 구입금액을 입력해 주세요. 14000 14개를 구매했습니다. [8, 21, 23, 41, 42, 43] [3, 5, 11, 16, 32, 38] [7, 11, 16, 35, 36, 44] [1, 8, 11, 31, 41, 42] [13, 14, 16, 38, 42, 45] [7, 11, 30, 40, 42, 43] [2, 13, 22, 32, 38, 45] [23, 25, 33, 36, 39, 41] [1, 3, 5, 14, 22, 45] [5, 9, 38, 41, 43, 44] [2, 8, 9, 18, 19, 21] [13, 14, 18, 21, 23, 3..
[JAVA] 백준 13460: 구슬 탈출2 import java.util.Scanner; public class baekjoon13460 { static int n; static int m; static char[][] info; static int[] aryH = new int[] { -1, 1, 0, 0 }; static int[] aryW = new int[] { 0, 0, -1, 1 }; static int res = -1; public static void main(String[] args) { Scanner sc = new Scanner(System.in); n = sc.nextInt(); m = sc.nextInt(); info = new char[n][m]; int h1 = 0; int h2 = 0; int w1 = 0; int w..