목록분류 전체보기 (166)
공부기록
ITEM 1. 생성자 대신 정적 팩터리 메서드를 고려하라 정적 팩터리메서드는 그 클래스의 인스턴스를 반환하는 정적 메서드이다. 다음은 Boolean클래스에서 발췌한 간단한 예시이다. 이 메서드는 기본 타입인 boolean 값을 받아 Boolean 객체 참조로 반환한다. public static void valueOf(boolean b){ return b? Boolean.TURE : Boolean.FALSE; } 이런 방식에는 장점 5가지가 있다. 이름을 가질 수 있다. 생성자는 반환될 객체의 특징을 설명할 수 없지만, 정적 팩터리 메서드는 반환될 객체의 특징을 설명할 수 있다. 호출될 때 마다. 인스턴스를 새로 생성하지는 않아도 된다. 위의 예시와 같이 인스턴스를 미리 만들어 재사용할 수 있다. 반환 타..
너무너무 기쁘다. 이제 이 블로그를 실질적인 테크 블로그로 만들어야겠다. 전형에 대해 궁금한 점은 댓글로 문의 부탁드려여
기본적으로 둘다 table을 통해서 Node 를 관리한다. table은 크기가 차면 따라 2배씩 커진다. 차이점은 LinkedHashMap은 따로 DoubleLinkedList로 key들의 순서를 관리한다는 점이다. 삽입, 삭제가 일어나면 table을 관리하는 hashMap에 더불어 링크드리스트를 관리하는 연산이 같이 일어난다.
PL에서의 Orthogonality는 가능한 한 즉은 크기의 기본적인 표현 및 연산 기호의 조합을 가지고 하나의 식을 표현을 하는 것이다. 이때 이 식을 표현하는 방법의 개수도 상대적으로 작아야 한다. 정리하면 적은 수의 기본 표현을 가지고 다양한 식에 대해서 표현을 하는데, 하나의 식을 표현하는 방법이 또 적어야 한다는 말이다. https://magok-leaders-coding.tistory.com/6
데이터 무결성은 데이터의 정확성, 일관성을 지키는 것을 말한다. 데이터 정확성은 데이터의 중복이나 누락이 없는 상태를 말한다. 데이터 일관성은 데이터의 모든 사용자가 자신의 트랜잭션과 다른 사람의 트랜잭션에 변경된 내용을 포함하여 일관된 값을 본다는 의미이다. 이는 트랜잭션 동시성과 관련이 있다. https://www.kdata.or.kr/info/info_04_view.html?field=&keyword=&type=techreport&page=84&dbnum=152560&mode=detail&type=techreport https://dataonair.or.kr/db-tech-reference/d-guide/da-guide/?mod=document&uid=302
linux c 라이브러리 기준으로, fork() 하고 나면, 자식은 부모의 자료구조, 힙, 스택의 복사본을 가짐으로써 별개의 메모리 영역을 점유하지만, 텍스트 구역은 자식과 부모가 공유하여 사용하게 된다.
red-black tree? 가장 유명하고 많이 사용되는 균형이진 트리이다. 즉 모든 연산의 시간복잡도가 _O(log N)_임을 보장한다. 노드가 red, black 색상을 가지며 아무것도 없는 nil을 leaf 노드라고 생각한다. red-black tree는 다음 5가지 조건을 만족해야 한다. 모든 노드는 red, black의 색을 가진다. root 노드는 black이다. leaf 노드는 black이어야 한다. red 노드는 두 개의 자식을 가지며, red 노드의 child 노드는 색이 모두 black이어야 한다. black 노드의 자식은 어떠한 색을 가지든 상관이 없다. *tree의 전체 depth가 log N 이기 위해서, 각 노드에서 leaf 노드로 가는 경로들 중에 있는 블랙노드의 개수는 항상 ..
block vs nonblock, sync vs async 사실 이들을 논하기 전에 우리는 블락과 논블락, 동기와 비동기가 다른 영역의 개념이라는 것을 깨달아야 한다. 시스템 콜의 측면에서 block은, 시스템 콜을 호출한 쓰레드가 대기 큐에 들어가게 되고, 시스템 콜이 끝나면 다시 실행대기 큐로 들어가게 되는 것을 말한다. 다시 실행을 재개하면, 그 쓰레드는 요청한 시스템 콜로부터의 결과값을 리턴받게 된다. non-block은 반대로, block하지 않는다는 것이다. 쓰레드를 대기큐에 넣지 않으며, 시스템 콜은 호출되고서 바로 결과값을 리턴하게 된다. synchronous 하다는 것은 시스템 콜을 호출했을 때, 호출 한 그 자리에서 호출한 쓰레드가 멈춰서 리턴 값을 기다린다는 것이다. asynchron..