Graph - 그래프의 종류와 각 그래프의 종류에 대한 개념에 대해서 학습함 - [종류] 1. 최소 신장 트리 - 그래프의 정점과 간선 중 일부를 선택해서 구성하는 트리를 신장 트리라고 함 2. 최소 신장 트리 – Kruskal 알고리즘 - [기준] 1. 간선을 가중치 기준 오름차순 정렬함 2. 가중치를 낮은 간선부터 선택 이때 간선으로 인해 사이클이 생기면 다음 간선 선택함 3. 선택한 간선이 N-1개가 될때까지 반복함 3. 최소 신장 트리 – Prim 알고리즘 - 하나의 정점에서 시작해서 정점을 하나씩 추가하는 알고리즘을 말함 - [기준] 1. 임의의 시작 정점을 선택함 2. 현재 선택된 정점들을 기준으로, 인접한 정점 중 가중치가 최소인 간선으로 연결된 정점을 선택함 3. 모든 정점이 선택될 때까지 반복함
- 오전은 Graph를 마무리하는 시간을 가졌고, Kruskal Algorithms, Prim Algorithms의 이론과 문제풀이를 통해서 Graph관련 알고리즘은 끝을 맺었고, 추가로 프로그래머스 DFS, BFS 2문제를 풀이했는데, 너무 재밌었다. 물론 어제와 동일하게 비슷한 문제더라도 계속해서 문제를 다루다보니, 패턴이라던지 코드를 작성하면서도 해당 메서드를 분리하여 재사용성을 높여 좀더 기능을 활용할때에 OOP적으로 진행을 하다보니 이제야 익숙해지기 시작했고, 처음과 다른점이라면 알아서 이제는 반복적인 부분이 보인다 싶으면 분리하여 호출하여 이용되도록 하는 작업이 익숙해졌다는 점이다. 오후는 SpringBoot Testing에 대해서 Test하는 방법에 대해서 학습을 진행했다. JUnit, Mockito등 강사님이 짜온 코드를 github에서 pull하여 만들어 놓은 controller, service, repository, dto, entity를 가지고 Controller Test를 실행하고, Service Test를 실행하고, Repository를 Test하면서 문제가 없는지를 Test Annotation, Mock Annoation등을 이용하여 해당 기능들이 잘 동작하는지를 확인하는작업을 하였다. TDD란 어떻게하는지 어떻게 해야하는지를 학습하였다. 더 깊은 공부를 해야겠다는 생각도 있지만, 정말 실무에서도 TDD부분이 필요하거나 때로는 급할때는 중요한 파트만 확인하고 진행하는 방향을 잡고 되도록이면 문제없는 클린 코드를 작성하는 방법을 더 찾아서 공부를 해봐야 겠다는 생각을 하게 되었다. :)