[TIL] 21.08.06

5933 단어 TILTIL

Facts (사실, 객관)


  1. KDT 데브코스 5일차 강의 수강 ( 프로젝트 설계 이야기 )

    • 외부 라이브러리 사용하기
    • 숫자 야구 게임 프로젝트 설계 및 구현
  2. 네트워크 CS 공부 및 정리 -> 피드백 요청
    ( https://www.notion.so/bad57c4789de40fb97f29df6c41e0501 )

  3. 7km 러닝

Feelings (느낌, 주관)


  • 오늘 멘토님이 내주신 CS 학습 주제에 대해 정리하는 시간을 가졌다.
    네트워크에 관한 내용이었는데
    대학 수업시간에 들었던 내용들이 새록새록 기억나니
    대학시절 학점을 잘받아 놓은게 헛된일은 아니라는 생각이 들었다.
    짧은 기간내에 모든 CS 내용을 정리하기는 힘들겠지만
    제시해주시는 지식들만이라도 하나도 빠짐없이 내것으로 만들고 말겠다!

Findings (배운 점)


  • OOP 적인 프로젝트 설계 방법
    1. 요구사항 파악하기
      • 게임의 룰 이해하기
      • 동작환경 및 데이터의 범위 정하기
    2. 일을 객체로 나누기 → 객체를 연관짓기 ( 협력관계 구축 -> 객체에게 책임 부여 )
    3. 핵심로직 설계하기 ( 플로우차트 그리기 )
  • 핵심 비즈니스 로직은 외부 의존성을 아무것도 안가져가는 것이 좋다.

    그렇지 않으면 외부에 의해 핵심 비즈니스 로직이 수정되어야할 여지가 있음!
    따라서 핵심 비즈니스 오직은내가 만들고 구현한 모델과 로직으로 구성하자.

  • 외부 의존도( NumberGenerator, Input, Output )를 가지고는 있지만
    그것의 추상체에 대해 의존하고 실제 구현체는 생성자를 통해 주입받고 있다.

      /**
       * 게임의 핵심 로직을 동작시키는 엔진
       */
      @AllArgsConstructor
      public class BaseBall implements Runnable{
          private final int COUNT_OF_NUMBERS = 3;

          private NumberGenerator generator; // (Interface)NumberGenerator

          private Input input; // (Interface)Input

          private Output output;// (Interface)Output

      }
      
      //메인 클래스
      public class App {

        public static void main(String[] args) {

            NumberGenerator generator = new HackFakerNumberGenerator();
            Console console = new Console();

            // 각 인터페이스의 구현체를 인자로 전달함
            new BaseBall(generator, console, console).run();
        }
     }
  • 인자와 매개변수의 차이
    • 인자 = 메서드를 실행할때 넘기는 값 ( 여기선 generator, console )
    	new BaseBall(generator, console, console)
    • 매개변수 = 클래스에 정의되어 있는 메서드에 넘기도록 지정되어있는 값 ( 여기선 content )
      public void updateReply(String content) {
                this.content = content;
       }
        

Next Plan(계획)


  • 매일 6시 기상
  • 일주일에 3번은 6km 러닝
  • Velog 클론코딩 진행
  • 진유림님의 깃 사용법 심화개념 정리
  • JUnit을 활용한 학습 테스트 연습

Affirmation(자기 선언)


1. 매일 TIL을 작성하자

2. 자주 PR을 보내자 ( 완성되지 않았더라도! )

좋은 웹페이지 즐겨찾기