본문 바로가기

Computer Science

(251)
Reduce VS Collector.of
Index RDB에는 데이터를 색인해서 빠르게 찾기 위해 도와주는 Index라는 개념이 존재한다. Mongo DB에도 해당 개념이 존재하는데, 이를 바로 Index라고 한다 ( 용어가 동일 하다 ? ) 이러한 Mongo DB에는 다양한 Index가 존재한다. 1. Single Field Index ( 단일 필드 인덱스 ) - 하나의 필드 인덱스를 사용하는 것을 단일 필드 인덱스라고 합니다. MongoDB에는 기본적으로 컬렉션에 _id라는 단일 필드 인덱스가 생성됩니다. 2. Compound Index ( 복합 인덱스 ) - 두 개 이상의 필드를 사용하는 인덱스를 복합 인덱스라고 부릅니다. - 아래와 같이 인덱스를 생성한다면, 아래 그림과 같이 userid는 오름차순으로 정렬됩니다. 그리고 같은 userid를 지니면..
TCP
CSAP VS CVE
Tomcat ThreadPool Thread 컴퓨터가 실행이 되고, 소히 말하는 프로그램이 실행될때 그 실행 주체는 Process이다. 그러한, 프로세스내에의 실행흐름이라고 부르는 실행주체가 Thread이다. 또한, CPU core가 이 Thread를 물리적으로 실행시켜주는 실행주체이다. 그래서 한 프로그램 (프로세스)내에서 할수 있는것들이 많아져 Thread가 많아지면 좋지 않을까라는 생각을 할수 있다. 하지만, 그렇지만은 않다. Thread는 생성 비용이 많이 드는 작업이다. 1. Java는 One-to-One Threading-Model로 Thread를 생성한다. 2. User Thread(Process의 스레드) 생성시OS Thread(OS 레벨의 스레드) 와 연결해야 한다. 3. 새로운 Thread를 생성할 때마다 OS Ker..
QueryDSL은 왜 Q-Class를 사용할까? Entity를 compile하게 되면 static한 QClass들이 생성된다. 해당 Class들은 Meta Data에 대한 정보를 가지고 있는 Class들이다. 그렇다면 왜 Meta Class ( Q-Class )를 만드는 것일까 ? 자바에서는 객체에 접근하기 위해서는 new라는 키워드를 통해 객체를 생성해주어야 한다. Entity Class에서도 Property에 접근을 하기 위해서는 생성해줄 필요성이 있다는 이야기이다. 하지만, 이는 Java의 RunTime단계 즉, Spring Boot가 실행하면서 Entity에 해당하는 테이블을 Check하든지 등의 작업을 할때, 통제할수 있는 부분이 아니다. 따라서, Meta Class - 즉 static한 class를 만들게 되면 객체를 생성할 필요없이 pro..
깊은 복사(Deep Copy) ... 얕은 복사(Shallow Copy) , @Qualifier - @Autowired 같이 Value and Reference type 모든 데이터 타입은 값 타입(value type) 또는 참조 타입(reference type)을 가진다. 값 타입(Value type) : 각각의 고유의 메모리를 소유한다. 스위프트에서 struct, enum, array, tuples 들이 해당 타입에 속한다. 참조 타입(Reference type) : 생성된 인스턴스들은 주소값을 공유한다. 스위프트에서 class가 해당 타입에 속한다. 두 가지 타입 모두 copy 메소드가 존재하는데 과연 깊은 복사(deep copy)가 일어날까? 아니면 얕은 복사(shallow copy)가 일어날까? 깊은 복사(Deep copy)란? 데이터 자체를 통째로 복사한다. 복사된 두 객체는 완전히 독립적인 메모리를 차지한다. va..
MongoDB , KakaoPay 결제 API 모듈 사용해보기. 1. spring security oauth2.0 다시 봐보기. 2. giv vs svn 과연 무슨 차이일지 ? 생각해보기.