50. Back-end/55. TDD

0-1. OT & MindSet & ETC

Wooris 2022. 10. 19. 15:11

1. 시작하며

  • 강의 목표와 온라인 과정 개설 이유
    • 심리적안정감
      • 교육에 몰입 => 최고의 학습 효과
    • 교육 끝난 후
      • 행동의 변화 : 적극적인 태도로 학습에 임하는 자세
        • 고통스러운 만큼 성장한다.

2. 과정의 학습목표

  • TDD, Refactoring, Clean Code
  •  순수 자바로 객체지향 프로그래밍
  •  레거시코드 리팩토링

 

3.  학습목표 및 커리큘럼

  • A. 초간단 자동차 경주 게임 
    • Github 기반으로 온라인 코드 리뷰하는 경험
    • JUnit 사용법을 익혀 단위 테스트하는 경험
    • 자바 code convention을 지키면서 프로그래밍하는 경험
    • 메소드를 분리하는 리팩토링 경험
  • B. 로또
    • TDD 기반으로 프로그래밍하는 경험
    • 메소드 분리 + 클래스를 분리하는 리팩토링 경험
    • 점진적으로 리팩토링하는 경험
  • C. 사다리 타기
    • 자바8의 스트림, 람다를 사용해 함수형 프로그래밍하는 경험
    • In -> Out, Out -> In 방식으로 도메인 객체를 설계하는 경험
    • 책임주도설계 기반으로 인터페이스 활용해 프로그래밍하는 연습
  • D. 볼링 게임 점수판
    • Q&A 서비스를 활용해 레거시 코드를 리팩토링하는 경험
    • 지금까지 학습한 내용을 기반으로 TDD, 클린코드, 객체지향 프로그래밍하는 경험

4. 과정을 슬기롭게 소화하는 방법

  • 잘 열심히
  • 리뷰하는 사람한테 DM을 보내서라도 적극적으로 토론하고 물어보고 넘어가자
  • 환경을 바꿔라 
    • 원래 의지력은 약한다 변화를 위해 의지력 보다는 환경의 변화가 중요하다 = 의지력을 믿지말고 물리적 환경을 변화시킨다.
  • 학습의 가장 큰 적 = 조급함
    • 마음의 여유를 가지고 단계를 즐겨보자
  • 정답을 찾기위해 집착하지 말자
    • 정답은 없다 = 정답을 찾으려는 노력이 학습을 방해한다.
    • 최선의 답이 무엇인지 찾으려는 노력을 할 뿐이다.
  • 가능하다면 함께해라
    • 스터디도 진행하고 모여서하고 짝프로그래밍도 하고 기타 등등
  • 혼자한다면
    • 가능한 힌트를 보지 않고 스스로의 힘으로 구현
    • 리뷰어의 피드백을 받고 핑퐁을 거치면서
  • 더 이상 리팩토링이 불가능하다면 모든 코드 삭제 후 처음부터 다시 구현

5. 동시에 진행해도 될까?

  • 해당 미션을 끝내가는 시점에 시작