반응형
⭐ 레벨1 인터뷰를 준비하며
드디어 약 두 달 간의 우테코 레벨1 생활을 마치고, 오늘 이리내, 오잉, 제나와 만나서 인터뷰를 준비하고 있다.
그동안 학습한 내용들을 바탕으로, 짧게 키워드를 정리해 보았다.
키워드에 대해 질문하고 싶은 것이 있다면 댓글로 남겨주세요!
💋 자동차 경주 미션
✔ 페어 프로그래밍
- 페어 프로그래밍은 페어와 함께 설계와 구현의 모든 과정을 진행하는 방식이다.
- 페어 프로그래밍을 통해 생산성이 향상되는 경우가 많다고 한다.
✔ 단위 테스트
- 단위테스트는 테스트 가능한 가장 작은 소프트웨어를 실행하여 예상대로 동작하는지 확인하는 것이다.
✔ 네이밍의 중요성
- 네이밍은 너무 짧아도 좋지 않다. 정확하게 역할을 설명하는 이름을 지어주는 것이 좋다.
- 이름을 통해서 의도를 드러내는 것이 좋다.
✔ 원시값 포장
- 원시 타입을 사용해 객체의 의미를 나타내지 않고, 의미있는 객체를 포장하는 것이다.
- 객체 내부에서 유효성 검사, 동등성 검사, 불변 등을 관리할 수 있다.
- 더 안정적이고 명확한 도메인을 만들 수 있다.
✔ 랜덤한 요소에 대한 테스트
Random
한 요소가 섞여 있으면 코드를 테스트하기 어렵다.- 코드에서 랜덤한 요소와 랜덤하지 않은 부분을 분리한 후, 랜덤한 요소를 인터페이스를 사용해 구현하면 테스트하기 좋은 코드를 만들 수 있다.
💋 사다리 게임 미션
✔ 테스트 코드는 도메인의 설명서이다.
- 많은 사람들은 프로덕션을 이해하기 위해 테스트 코드를 사용한다.
- 따라서
@DisplayName
은 적어주는 것이 좋으며, 네이밍은 최대한 일관성을 지키는 것이 좋다.
✔ TDD
- TDD를 통해 도메인에 대한 지식을 늘릴 수 있다.
- 테스트 코드 작성, 테스트 코드 성공하게 만들기, 세부내용 리팩터링 하기 중 한 번에 한 가지에 집중할 수 있어서 몰입도가 높아진다.
💋 블랙잭 게임 미션
✔ 람다식은 함수형 인터페이스의 구현체이다?
- 함수형 인터페이스를 구현하기 위해서는, 딱 한 개의 추상 메서드를 구현하면 되는데, 이 때 람다식을 사용해서 이 인터페이스를 구현하게 된다면, 아직 미설계 상태의 메서드가 람다식과 딱 1:1로 매칭이 되면서 인터페이스가 구현된 객체가 만들어지는 것이다.
✔ 테스트 코드의 맹점은 완벽하지 않은 테스트가 신뢰될 때
- 테스트 코드를 작성하면, 코드의 세부 구현을 리팩터링해 코드 품질을 높일 때, 전체 기능에 변동사항이 없는지 곧바로 확인할 수 있다는 점에서 효과적이다.
- 하지만 내가 작성한 테스트 코드의 케이스에 해당하지 않는 예외는 종종 발생한다.
- 테스트 코드의 맹점은 완벽하지 않은 테스트가 신뢰될 때이다.
💋 체스 게임 미션
✔ 설계를 완벽히 오래 VS 설계는 간단히 구현 다이빙
- 체스 게임을 처음 주어진 기한 안에 제출하지 못했다.
- 앞으로는 시간을 정해두고 설계를 하는 등 설계와 구현 시간의 조화를 맞추기 위해 고민이 필요할 것 같다.
✔ 파라미터로 Optional
을 받는 것은 안티패턴이다.
Optional
은 메서드의 반환값으로만 사용하는 것이 좋다.
✔ 함수형 프로그래밍 정신을 장착해 안정적이고 예측 가능한 코드를 작성할 수 있다.
- 메서드는 각자 자신의 input에 대해서 일정한 output을 내놓는다.
- 하나의 메서드는 다른 객체의 필드나 메서드를 알지도, 참조하지 않는다. 따라서 외부 환경에 대해 철저히 독립적이다.
- 외부 요인에 영향을 받지 않은 채 오로지 주어진 input을 통해서만 정해진 작업을 수행하기 때문에, 동일한 input에 대해서는 언제나 동일한 output을 반환한다. 이런 것을 순수 함수라고 한다.
반응형
'우아한테크코스5기' 카테고리의 다른 글
[우테코] 레벨1 글쓰기: 깃짱의 우테코 한달 생활기 (0) | 2023.04.12 |
---|---|
[우테코] 체스 미션 3, 4단계 회고: 예외 처리는 조심스럽게, 테스트 코드의 맹점, 리팩터링할 때는 기존 코드를 그대로 두면서... (0) | 2023.04.11 |
[우테코] 레벨1을 끝내고 답해보자(2): TDD(Test Driven Development), 자바를 잘하는 것이란?, 컴파일 예외 vs 런타임 예외, 예외의 복구/회피/무시/전환 (0) | 2023.03.27 |
[우테코] 레벨1을 끝내고 답해보자(1): 단위 테스트, 코드 품질 (0) | 2023.03.27 |
[우테코] 블랙잭 미션 회고: 상태 패턴 사용, abstract/final 제어자, 중복되는 내용을 필드로 놓는 것에 대해.. 등등 (2) | 2023.03.24 |