[Routine] 14 주차 시작!
in Daily on Routine
![[Routine] 14 주차 시작!](/assets/img/daily/routine/2023/2023-04-23/2023-04-23-myroutine-14th.png)
“2023년 4월 17일 부터 4월 23일 까지의 나의 루틴.”
#목차
2023-04-17
- 저번 주 금요일에 동욱 님의 책을 다 읽어서 새로운 책과 함께 출근하였다.
- 인강은 영한 님의 인강을 계속 듣고, 구글 엔지니어는 이렇게 일한다를 읽으면서 출근하였다.
2023-04-18
- 오늘은 인강을 듣지 않고 내가 여태까지 배운 거와 기본 지식이 얼마나 쌓여있는지 확인하면서 오게 되었는데.. 한참 모자란 거 같다는 생각이 든다..
- 막상 내가 사용하고 있는 기술이고 인터넷이나 문서를 보게 되면 이해가 가지만, 막상 보지 않고 생각해 보려고 하면 꽤 시간이 걸리고 까먹은 지식들도 많다고 느끼게 된다.
- 역시 답은 꾸준히 하는 수밖에 없는듯하다.
2023-04-19
- 오늘도 영한 님의 인강을 듣지 않고 출근하였다.
- 이유는
Spring Batch
에 대해 궁금한 점이 생겨 이것저것 자료를 찾아보며 출근하였다. - 아직 까진 부족하지만
Spring Batch
를 사용하는 이유는 가장 큰 이유는 대용량DB
의 작업을 위한다는 것이다. - 또한 작업의 방식이 다르다.
Spring Web MVC
는 요청 -> 응답 -> 요청 식으로 계속해서 인터렉션이 발생한다.Spring Batch
의 경우 인터렉션이 발생하지 않는다. 요청하면 끝!이라는 점이다. 요청하게 되면Batch Application
에서 완결이 나는 작업들을 하게 되는데 이것이Spring Web MVC
의 차이다.- 위 정보들은 [우아한테크세미나] 190926 우아한스프링배치 by 우아한형제들 이동욱님의 영상에 나오는 정보들이며, 해당 영상과 또다른 자료들을 참고하여 공부해야겠다는 생각을 한다.
- 대용량의 트래픽을 상당히 경험해보고 싶은 나로썬 꼭 공부해야 겠다는 생각이 든다!.
Spring Batch
뿐만 아니라TDD
의 경우Batch Application
을 작업하는대 무조건 선행되어야 하는 작업이라고 한다.- 또한
SaaS
의 기술도 공부해서 무중단 배포의 환경을 만들어 보고 싶다는 생각도 한다. - 다 해봐야지!
2023-04-20 스터디
- 오늘은 영한 님의 인강을 들으면서 출근하였다.
- 어제
Spring Batch
의 테스트 작업이 선행되어야 한다고 했는데, 이것 또한 방법론이라 어떤 방법이 더 좋은지 조금 더 고민해 볼 필요가 있다고 생각한다.
스터디
- asd - 컬레션 프레임워크3
- HashSet
- HashSet은 Set인터페이스를 구현한 가장 대표적인 클래스이며 Set 인터페이스의 특징대로 HashSet은 중복된 요소를 저장하지 않는다.
- HashSet에 새로운 요소를 저장할때는 add 메서드나 addAll 메서드를 사용하는데 만일 HashSet에 이미 저장되어 있는 요소와 중복된 요소를 추가하려고 한다면 이 메소드들은 false를 반환함으로서 중복된 요소리기 때문에 추가에 실패했다는 것을 알린다.
- 이러한 HashSet의 특징을 이용한다면 컬렉션내의 중복된 요소를 쉽게 제거할 수 있다.
- AraayList와 달리 HashSet은 저장순서를 유지하지 않음으로 저장순서를 유지하고자 한다면 LinkedList를 이용해야 한다.
- TreeSet
- TreeSet은 이진 탐색 트리라는 자료구조 형태로 데이터를 저장하는 컬렉션 클래스이다. 이진 탐색 트리는 정렬, 검색, 범위 검색에 높은 성능을 보이는 자료구조이며 TreeSet 이진 탐색 트리의 성능을 향상 시킨 레드-블랙 트리 형태로 구현되어 있다.
- Set 인터페이스를 구현했으므로 중복된 데이터의 저장을 허용하지 않으며 정렬된 위치에 저장하므로 저장순서를 유지하지도 않는다.
- 이진 트리
- 이진 트리는 링크드 리스트처럼 여러개의 노드가 서로 연결되어 있는 구조로, 각 노드에 최대 2개의 노드를 연결할 수 있으며, 루트라고 불리는 하나의 노드에서부터 시작해서 계속 확장되어 나갈 수 있다. 이진 탐색 트리는 이진 트리의 한 종류이다.
- 위 아래로 연결된 두 노드를 부모, 자식 관계에 있다고 하며 위의 노드를 부모, 아래의 노드를 자식 노드라고 한다. 부모 - 자식 관계는 상대적인 것이며 하나의 부모노드 최대 두개의 자식 노드와 연결될 수 있다.
- 이진 탐색 트리
- 이진 탐색 트리는 부모노드의 왼쪽에는 부모노드의 값보다 작은 값의 자식노드를 오른쪽에는 큰 값의 자식노드를 저장하는 이진 트리이다.
- 왼쪽 마지막 값에서부터 오른쪽 값까지 값을 왼쪽 노드 -> 부모 노드 -> 오른쪽 노드 순으로 읽어오면 오름차순으로 정렬된 순서를 얻을 수 있다. TreeSet은 이처럼 정렬된 상태를 유지하기 때문에 단일 값 검색과 범위검색이 매우 빠르다. 저장된 값의 개수에 비례해서 검색시간이 증가하긴 하지만 값의 개수가 10배 증가해도 특정값을 찾는데 필요한 비교 횟수가 3~4번 증가할 정도로 검색 효율이 뛰어난 자료구조이다. 트리는 데이터를 순차적으로 저장하는 것이 아니라 저장하는 위치를 찾아서 저장해야하고 삭제하는 경우에는 트리의 일부를 재구성해야하기때문에 링크드리스트보다 데이터의 추가/삭제 시간은 더 걸린다. 대신 배열이나 링크드 리스트에 비해 검색과 정렬기능이 더 뛰어나다.
- 즉, 이진 탐색 트리는
- 모든 노드는 최대 두 개의 자식 노드를 가질 수 있다.
- 왼쪽 자식노드의 값은 부모 노드의 값보다 작고 오른쪽 자식 노드의 값은 부모노드의 값보다 커야한다.
- 노딍 추가 삭제에 시간이 걸린다. (반복 비교로 자리를 찾아 저장)
- 검색(범위검색)과 정렬에 유리하다.
- 중복된 값을 저장하지 못한다.
- HashSet
- 왕돼지티라노의 기록 - 연관관계 매핑 기초
- 슈팅이가키우는강아지 - docker
2023-04-21
- 어김없이 영한님의 인강과 함께 출근하였다.
2023-04-22
- 오늘은 향로 님의 스프링 부트와 AWS로 혼자 구현하는 웹 서비스을 다시 보며 직접 코드를 짜며 테스트 해보았다.
Commit with 게시글 수정/삭제 구현
2023-04-23
- 오늘도 역시 어제와 같이 스프링 부트와 AWS로 혼자 구현하는 웹 서비스을 다시 보며 직접 코드를 짜며 테스트 해보았다.
Commit with spring security oauth2 설정
Back to [Routine] 13 주차 시작!
Continue with [Routine] 15 주차 시작!