2022. 12. 22. 22:42, TIL
어제의 목표 🤔
- 컨트롤러 테스트 코드 작성하기 ⭕️
- 성공적!
- 동적 계획법/분할 정복, 고급 정렬 알고리즘 정리하기 ⭕️
- 동적계획법/ 분할정복 정리 후 병합정렬까지 마무리 (퀵정렬은 다음에)
- 알고리즘 2문제 풀이 ❌
- JPA 책 읽고 정리하기 ❌
오늘 진행한 것들 🤔
- 컨트롤러 테스트 코드 작성하기
- 나를.. 테스트의 신이라 불러주겠니 ..?
- 동적계획법/ 분할정복 정리
- 아직 퀵정렬을 배우지 못해서 글을 업로드하지 못했다 ;(
오늘의 배운 점 🤔
- 컨트롤러 테스트 코드 작성하기
- 오늘도 정말 많은 수확이 있었습니다.
- 기존에 비즈니스 로직 단위 테스트는 어느정도 이해한것 같았지만 제 오랜 소원인 mvc 단위테스트를 밥먹듯이 성공시키는걸 오늘 이루게 되었습니다.
- given when then 에 대한 이해도가 올라간 상태에서 다시 작성하니 테스트가 쉬웠습니다.
- 그냥 거의 드라마 각본 짜는 수준으로 코드를 작성하다보면 성공하는것 같습니다.
- 코드의 일부입니다만.. 이제 이 코드의 맥락을 이해할 수 있습니다. 너무 뿌듯합니다.
- 규모가 프로젝트 내에서 큰 편이었던 세 도메인의 컨트롤러 테스트를 모두 완료했습니다.
- 이제 jpa repository 테스트만 작성하고 마무리하면 저도 어디에 제출할 수 있는 포트폴리오가 생깁니다. 뿌듯합니다.
- 동적 계획법 (다이나믹 프로그래밍) / 분할정복 ( 병합정력까지 ) 정리
- 동적 계획법은 그냥 단순히 어떠한 알고리즘을 구현할때 , 입력 크기가 작은 문제들부터 해결한 후 해당 문제들의 답을 기억해놓고 다음 문제 풀이에서 계속 사용하는 식으로 구현한다는것을 알게 되었습니다.
- 예를 든다면 1부터 10까지의 합을 구할때, 단순 재귀 호출을 사용하면 매번 매 수마다 처음부터 해당 수까지의 합을 구해야하는데, 동적 계획법 같은 경우에는 해당 수의 결과값들을 저장해놓고 불필요한 계산을 하지 않게 도와줍니다.
- 1부터 10까지의 각 수별 합을 구한다면, 10개의 인덱스를 가진 배열을 생성해 매 수마다 결과를 배열에 저장해 다시 처음부터 계산하지 않도록 해줍니다.
- 상향식 접근법 입니다.
- 예를 든다면 1부터 10까지의 합을 구할때, 단순 재귀 호출을 사용하면 매번 매 수마다 처음부터 해당 수까지의 합을 구해야하는데, 동적 계획법 같은 경우에는 해당 수의 결과값들을 저장해놓고 불필요한 계산을 하지 않게 도와줍니다.
- 분할정복은 해당 문제를 더이상 분리할 수 없을때까지 쪼갠 후 병합하면서 해답을 찾는 방식입니다.
- 분할 정복을 구현한 예로 병합정렬을 학습했습니다.
- 한 배열을 정렬할때 재귀 호출로 하나의 배열로 더이상 쪼갤 수 없을때까지 두 배열로 쪼갠 후 각각의 배열마다 포인트를 생성해 값을 비교해가면서 정렬하면서 병합합니다.
- 포인터가 인덱스를 모두 순회하면 해당 배열의 값들을 정렬 배열에 저장후 리턴합니다.
- 재귀호출이 아직은 익숙하지 않지만 직접 구현해보니 나중에 잘할 수 있겠다 라는 생각이 듭니다.
- 분할 정복을 구현한 예로 병합정렬을 학습했습니다.
- 동적 계획법은 그냥 단순히 어떠한 알고리즘을 구현할때 , 입력 크기가 작은 문제들부터 해결한 후 해당 문제들의 답을 기억해놓고 다음 문제 풀이에서 계속 사용하는 식으로 구현한다는것을 알게 되었습니다.
내일 목표 🤔
- 내일 휴가니까 끝내주게 쉬기
내일도 화이팅!
'TIL' 카테고리의 다른 글
22-12-28 TIL (0) | 2022.12.28 |
---|---|
22-12-26 TIL (0) | 2022.12.26 |
22-12-21 TIL (0) | 2022.12.21 |
22-12-20 TIL (0) | 2022.12.20 |
22-12-19 TIL (0) | 2022.12.19 |
Comments, Trackbacks