오전

데일리미팅시간에 새로운 크루들과 간단하게 자기소개를 하고 TDD 강의를 들었다.
켄트벡이라는 이름이 익숙했는데 나중에 Junit의 창시자라는 것을 알았다.
TDD라는게 와닿지 않아서 핵심만 이야기 해보자.

TDD 사이클

  • 실패하는 테스트를 구현한다.
  • 테스트가 성공하도록 프로덕션 코드를 구현한다.
  • 프로덕션 코드와 테스트 코드를 리팩토링한다.

TDD 원칙

  • 실패하는 단위 테스트를 작성할 때까지 프로덕션 코드(production code)를 작성하지 않는다.
  • 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다.
  • 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다.

TDD를 사용할지 말지에 대한 기준도 중요하다. 아무데나 TDD를 쓸 필요는 없을 것 이다.
네오는 인풋과 아웃풋이 명확할 때, 설계조차 막막할때, 테스트가 매우 중요할 때 라고 했다.
아직은 잘 모르겠지만 직접 겪여봐야 느낄 수 있겠다.

TDD를 하는 것과 단순히 프로덕션 코드를 구현하고 테스트를 구현하는 것이 무슨 차이가 있는지도 궁금하다.

오후

메타인지

메타인지는 두 과정으로 나뉜다
- 모니터링 : 내가 무엇을 알고 모르는지를 판단하는 메타인지의 첫 단계
- 컨트롤 : 모니터링을 바탕으로 어떻게 할 지 결정하고 방향을 설정하는 단계
컨트롤의 가장 좋은 방법은 다른 사람에게 설명하는 것이라고 생각한다. 다른 사람에게 설명했을 때 기억에 가장 오래남기 때문이다.
다른사람에게 설명하기 어려운 상황이라면 내용을 잘 정리해서 글로 남겨두는 것도 좋은 방법이다.

페어프로그래밍 - 사다리 생성

운이 좋게(?) 3명이 페어프로그래밍을 하게 되었다. 기능목록을 작성할 때 부터 많은 의견들이 나왔다. 좋은 아이디어들이 많이 나왔지만 너무 끝이 없어 최소한의 구현사항만 구현하고 나중에 추가하기로 했다. 둘이서 할 때 보다 시간이 훨씬 오래 걸린다. 과현 구현은 어떨지 기대가 된다.

JCF

테코톡의 주제로 JCF를 선택했기 때문에 자바의 정석 2의 JCF 부분을 읽었다.
내용으로 적어볼 만한 키워드들을 미리 정리해둔다.

  • JCF(Java Collection Framework) : 컬렉션은 데이터 그룹, 프레임워크는 프로그래밍하기 위한 표준화된 방법으로 데이터 그룹을 다루기 위한 표준화된 클래스의 집합.
  • LIST 인터페이스와 SET 인터페이스는 COLLECTION 인터페이스를 상속받고 MAP은 상속받지 않는다.
  • ArrayList와 LinkedList의 차이
  • ArrayList의 비동기
  • MAP 인터페이스의 구조와 왜 COLLECTION을 상속받지 않는지

어떤 내용들을 다른 사람들에게 알려주면 좋을지 공부하면서 좀 더 찾아보기로 하자.

'회고 > 우아한테크코스' 카테고리의 다른 글

[레벨 1] 자동차 경주 미션 회고  (0) 2023.02.16
2023.2.15 일일 회고  (0) 2023.02.15
2023.02.13 회고  (0) 2023.02.14
2023.2.10 회고  (0) 2023.02.10
2023.2.9 회고  (0) 2023.02.10

+ Recent posts