java

    생성자에게 매개변수가 많다면 빌더를 고려하라 - [2장 객체 생성과 파괴(아이템2)]

    아래 코드처럼 생성자와 생성자의 파라미터가 많은 경우에는 어떻게 해야 할까? public class NutritionFacts{ // 필드(기본값이 있다면) 기본값으로 초기화된다. private final int servingSize; // (mL, 1회 제공량) - 필수 private final int servings; // (회, 총 n회 제공량) - 필수 private final int calories; // (1회 제공량당) - 선택 private final int fat; // (g/1회 제공량) - 선택 private final int sodium; // (mg/1회 제공량) - 선택 private fianl int carbohydrate; // (g/1회 제공량) - 선택 public Nut..

    생성자 대신 정적 팩터리 메서드를 고려하라 - [2장 객체 생성과 파괴(아이템 1)]

    이펙티브 자바를 통해 자바를 조금 더 깊게 공부해보고자 한다. 혼자서 읽고 정리하면서 공부하려고 했지만 생각보다 책이 어렵다. 그래서 백기선 님의 '이펙티브 자바 완벽 공략' 시리즈(총 5부) 강의를 들으면서 공부하려고 한다. 혹시나 해당 블로그에서 이해가 되지 않는 부분이 있다면 백기선 님의 강의를 적극 추천한다. '2장 객체 생성과 파괴'의 첫 번째 아이템으로 '생성자 대신 정적 팩터리 메서드를 고려하라'라는 것을 소개하고 있다. 클라이언트가 클래스의 인스턴스를 얻는 전통적인 수단으로 public 생성자를 이용하는 방법이 있지만 아래와 같이 정적 팩터리 메서드로도 클래스의 인스턴스를 얻을 수 있다. public class Order{ public static Order OrderByStaticFact..

    프리코스 4주차(다리 건너기 미션) - 우아한 테크코스

    1. 📃 미션 설명 4주 차의 미션은 '다리 건너기 게임'을 구현하는 것이다. 오징어 게임에 나오는 '유리 징검다리 건너기'를 기억한다면 쉽게 이해할 수 있다. 다리 건너기 게임의 기본적인 규칙은 아래와 같다. - 위아래 두 칸으로 이루어진 다리를 건너야 한다. - 다리는 왼쪽에서 오른쪽으로 건너야 한다. - 위아래 둘 중 하나의 칸만 건널 수 있다. - 다리의 길이를 숫자로 입력받고 생성한다. - 다리를 끝까지 건너면 게임이 종료되고, 다리를 건너다 실패하면 게임을 재시작하거나 종료할 수 있다. - 시각적으로 나타내면 아래와 같다. (다리 길이가 3인 경우) [ O | | ] [ | O | O ] 추가된 요구 사항은 아래와 같다. 함수(또는 메서드)의 길이가 10라인을 넘어가지 않도록 구현한다. 메서드..

    프리코스 3주차(로또 미션) - 우아한 테크코스

    1. 📃 미션 설명 3주 차의 미션은 '로또 게임'을 구현하는 것이다. 로또 게임의 기본적인 규칙은 아래와 같다. - 로또 번호의 숫자 범위는 1~45까지이다. - 1개의 로또를 발행할 때 중복되지 않는 6개의 숫자를 뽑는다. (로또 1장의 가격은 1,000원이다.) - 당첨 번호 추첨 시 중복되지 않는 숫자 6개와 보너스 번호 1개를 뽑는다. - 당첨은 1등부터 5등까지 있다. - 1등: 6개 번호 일치 / 2,000,000,000원 - 2등: 5개 번호 + 보너스 번호 일치 / 30,000,000원 - 3등: 5개 번호 일치 / 1,500,000원 - 4등: 4개 번호 일치 / 50,000원 - 5등: 3개 번호 일치 / 5,000원 - 사용자가 구매한 로또 번호와 당첨 번호를 비교하여 당첨 내역 및..

    프리코스 2주차(숫자 야구 게임 미션) - 우아한 테크코스

    1. 📃 미션 설명 2주 차의 미션은 '숫자 야구 게임'을 구현하는 것이다. 숫자 야구 게임의 기본적인 규칙은 아래와 같다. 기본적으로 1부터 9까지 서로 다른 수로 이루어진 3자리의 수를 맞추는 게임이다. 같은 수가 같은 자리에 있으면 스트라이크, 다른 자리에 있으면 볼, 같은 수가 전혀 없으면 낫싱이 되게 된다. 정답이 425인 경우를 생각해보자. 123을 제시하면 '1 스트라이크', 456을 제시하면 '1 볼 1 스트라이크', 789를 제시하면 '낫싱'을 얻게 된다. 이 같은 과정을 반복해 3개의 숫자를 모두 맞힌 경우(3 스트라이크)에 게임이 종료된다. 추가된 요구 사항은 아래와 같다. indent(인덴트, 들여 쓰기) depth를 3이 넘지 않도록 구현한다. (예를 들어 while문 안에 if문..

    프리코스 1주차(온보딩 미션) - 우아한 테크코스

    1. 📃 미션 설명 1주 차의 미션은 말 그대로 '온보딩'적인 성격이 강하다. (온보딩 = 새로운 직원이 조직에 잘 적응할 수 있도록 지식이나 기술을 교육하는 과정) '어떻게 미션을 진행하는지'와 '어떻게 미션을 제출하는지'를 기본적으로 배운다고 생각하면 될 거 같다. 미션에는 총 7가지 문제가 있었다. 문제들은 기본적인 알고리즘을 이용해서 푸는 방식이다. 2. 📢 공통 피드백 과제 마감기간(매주 화요일 23:59)이 끝나고 새로운 과제가 나오는 날(매주 수요일 15:00)에 피드백을 받을 수 있다. 각 개인에게 피드백을 주는 형식이 아닌 미션 제출자들에게 '공통 피드백'을 주는 형식으로 피드백이 이루어진다. 피드백을 받아보면 알겠지만 신기하게도 내 코드를 보고 공통 피드백을 만든 게 아닌가 싶을 정도로..