퀵정렬을 하면서 느낀 점이 있다.
처음 퀵정렬을 만나고 막막해서 고민을 했다.
이걸 어떻게 구현하면 좋을까?
그래서 구글링을 해보고 대부분의 풀이가 퀵정렬에는 인자가 3개가 들어온다는 사실을 알았다.
왜 인자가 3개인가 하고 봤더니, 피벗을 정하고 양 끝단에서 피벗을 향해 좁혀오면서 피벗을 기준으로 스왑을 하는 로직을 반복하며 정렬을 했다.
그 풀이를 보면서 느낀점은 알고리즘은 대표적인 자료구조나 정렬이 몇가지 있는데,
이러한 자료구조나 정렬은 기본적인 지식이다.
흔히 알고리즘이 깨달음의 중요성 때문에 아무것도 모르는 상태에서 문법만 가지고 접근해서 풀이를 해내야 자기 것이라고 하는데 그게 아니다.
이번 경험을 통해 기본적인 지식은 알고, 충분히 내것으로 만들어서 익숙하게 쓸 수 있어야 그걸 바탕으로 이후의 깨달음에 대해 추구할 수 있는 기본 바탕이 된다는 걸 알았다.
알고리즘의 학습은 기본적인 지식까지는 책을 읽고 뉴스를 보듯이 외부로부터 얻어서 알고 자유롭게 활용할 수 있는 도구화를 해야한다.
하지만 기본적인 지식을 다 익히고 나서부터는 스스로 생각하고 응용해서 발전시켜나가야 한다.
스프링부트에서는 JPA를 활용한 TDD를 배웠다.