🗓️ 12월 2주차 (7주차) 회고록 ✨
이번 주에는 자료구조와 알고리즘 심화 개념, JUnit 테스트, 정렬 알고리즘(퀵소트),
그리고 실무 관점의 특강과 협업 학습을 경험한 한 주였다.
단순히 “아는 것”과 “설명할 수 있는 것”의 차이를 여러 상황에서 체감했고,
학습 내용을 코드와 테스트로 검증하는 습관의 중요성을 느꼈다.
저번주 문제 해결한 점
- 저번 주에 명확히 정리되지 않았던 자료구조 개념(BST와 Heap의 차이)을 다시 정리했다.
- 테스트 코드 작성 과정에서 매개변수 기반 테스트 구조를 이해하며, 테스트를 단순 검증을 넘어 학습 도구로 활용할 수 있음을 알게 되었다.
📝 KPT 회고 내용
1. KEEP (유지할 점) ✅
-
개념을 코드로 직접 검증하는 학습 방식
- 퀵소트, 유니온 파인드, 스트림 등의 개념을 단순 암기가 아닌 직접 구현과 조건 변경을 통해 동작을 확인했다.
- 특히 퀵소트 구현 과정에서 조건식 하나의 차이로 무한 루프가 발생하는 원인을 추적하며 코드 흐름 이해의 중요성을 느꼈다.
-
JUnit 테스트를 활용한 학습 정리
@ParameterizedTest와 @MethodSource를 사용해 여러 입력 케이스를 하나의 테스트 구조로 검증했다.
- 테스트 코드가 학습 내용을 정리하는 문서 역할도 할 수 있다는 점이 인상 깊었다.
-
타인에게 설명하려는 시도
- 성훈이 형에게 메서드 개념을 설명하며, 내가 정말로 이해하고 있는지 스스로 점검할 수 있었다.
2. PROBLEM (문제점) 🛑
-
질문을 주저한 태도
- 한화 현직자 특강에서 질문 리스트를 준비했음에도, 기획 지식이 부족하다는 이유로 질문을 하지 못했다.
- 적극적으로 질문하지 못한 점이 아쉬움과 후회로 남았다.
-
정렬 알고리즘 코드 해석의 어려움
- 퀵소트 코드를 처음 접했을 때 전체 흐름을 한 번에 이해하지 못했다.
- 구현 경험이 부족하면 개념 이해도 역시 제한된다는 점을 다시 느꼈다.
3. TRY (시도할 점) 🚀
- 질문을 완성도보다 시도 중심으로 하기
- 질문의 정제 여부보다, 궁금한 점을 바로 묻는 태도를 의식적으로 연습할 계획이다.
- 알고리즘 개념의 반복 학습
- 정렬, 그리디, 유니온 파인드 알고리즘을 중심으로 문제 풀이와 복습을 병행할 계획이다.
🔥 이번 주 학습 정리
- BST와 Heap의 구조적 차이를 비교하며 개념을 정리했다.
- JAR 파일 생성 및 실행 구조를 이해했다.
removeIf()를 포함한 Collections 유틸 메서드 사용법을 학습했다.
- JUnit 매개변수 테스트 구조를 직접 작성하며 테스트 설계 방식을 익혔다.
- 퀵소트 구현 과정에서 조건식 변화에 따른 무한 루프 발생 원인을 분석했다.
StringReader, BufferedReader, StringTokenizer를 활용한 입력 처리 흐름을 정리했다.
- Union-Find의
find와 union 동작 과정을 재귀 호출 관점에서 이해했다.
마무리 회고
이번 주는 단순히 개념을 알고 있는 상태와, 이를 설명하고 검증할 수 있는 상태 사이의 차이를 분명히 느낀 한 주였다.
앞으로는 학습한 내용을 질문, 설명, 테스트로 한 번 더 검증하며 학습의 밀도를 높여가고자 한다.
댓글 달아 드렸습니다^^