-
sync/async, blocking/non-blocking Java9도, Spring5도, nodejs도 얘기할 때 가장 큰 토픽이 async/non-blocking이라고 하던데 정확히 구분을 할 수 없어 공부해야겠다는 생각이 들었음 헷갈리는 부분 두 그룹의 구분해서 이해하기 blocking/non-blocking : 시스템 콜에 대한 결과 반환 전까지 대기(wait), 처리가 완료되지않아도 결과가 반환되어 제어권이 넘어와서 다음 처리를 할 수 있음 sync/async : 호출하는 쪽에서 작업 완료 여부를 신경씀(완료 확인을 계속함)과 작업 완료 여부 신경쓰지않고 호출한 함수에 맡겨버림(완료 처리는 콜백함수로 호출받은 쪽에서 완료 후 처리함) 참고자료 HomoEfficio - Blocking-NonBlocking-Synchronous-Asynchronous nesoy...
-
트리 말 그대로 나무형태 구조 : 뻗아나가는 계층적인 구조, 루트 노드(오직 1개), 브랜치 노드, 리프 노드(더 이상 자식노드가 없는) 사용하는 곳 : (빠른)검색 관련(이진 탐색) 탐색(순위) 방법 : 중간 노드를 기준으로 이름이 정해짐, 자식 노드(왼/오)는 각각이 트리일 수 있음 전위 : 중간 노드 - 왼쪽 노드 - 오른쪽 노드 순 중위 : 왼쪽 노드 - 중간 노드 - 오른쪽 노드 순 후위 : 왼쪽 노드 - 오른쪽 노드 - 중간 노드 순 직접 구현 배열...
-
6개월 코드스쿼드 과정을 모두 끝내고… 처음엔 어떻게 보낼까 생각했던 6개월이 점점 가면 갈수록 시간이 빠르게 느껴졌고, 이전에는 생각치 못했던 실력을 가지게 됨을 느꼈다. 어떻게보면 짧은 시간이지만 또 어떻게보면 6개월이라는 시간은 굉장히 길다. 절대 시간은 적지만 그 시간을 제대로만 활용해도 엄청난 시간이 될 것이라는 믿음을 가지고 계속해서 공부를 해나갔다. 마스터들의 도움, 같이 공부하는 동료들의 도움들로 인해 쉽게 얻기 힘든 것들의 가치와 그것들을 얻게 되었다. 어제 코드스쿼드 생활의 마지막 장식으로 면접을 보고 부산을 내려오게 되었다. 부산 내려오는...
-
Jvm 메모리 힙 영역 힙 : 객체가 저장되는 곳, 쓰레드 간 공유 영역, gc의 청소 대상 - 참조되지않는 객체(메모리 회수) 추상적인 가비지 컬렉터 지식을 조금 더 구체화 하고 싶었음 가비지 컬렉터 조금 더 알아가기 GC가 청소할 때는 ‘stop-the-world’로 자바 어플리케이션의 동작을 일시적으로 멈추고 청소함 : 청소 작업 쓰레드 이외의 쓰레드는 동작 멈춤 GC 성능 튜닝 : ‘stop-the-world’ 시간 줄이는 것에 집중, 어플리케이션 처리 일시정지가 길어지는만큼 처리 속도가 느리게 보임 메모리 청소 시에 부분 부분 청소를...
-
Java API ArrayList vs LinkedList 많이 쓰는 자료구조지만, 개념적으로 차이도 이해하고 있지만 익숙하다고해서 ArrayList만 사용하지않나? 제대로 사용하기위해서 코드를 눈으로 봐야겠다싶었음 개념적 차이 ArrayList는 배열로, LinkedList는 객체 간 연결을 통해 리스트를 만듦 ArrayList는 탐색에 유리 : 인덱스 LinkedList는 제일 앞, 뒤 확장에 유리 : 삽입이 빈번할 때 유리 API 코드 확인 LinkedList /* head와 tail을 알고 있음 */ transient Node<E> first; transient Node<E> last; /* 꼬리에 붙임 */ public boolean add(E e) { linkLast(e); return true;...