전체보기(201)
-
Full Text Index
Full Text Index 배경 일반적으로 mysql에서 문자열을 검색할 때, 텍스트 내용이 어마어마한 경우에는 성능이 저하됩니다. 이를 해결하기 위해 Full Text Index가 만들어졌습니다. Full Text Index은 첫 글자 뿐 아니라 중간의 단어나 문자응로도 인덱스를 생성해 주기 때문에 순식간에 검색 결과를 얻을 수 있습니다. Full Text Index 인덱싱 Stop-word parser 공백이나 Tab, 문장 기호 또는 사용자가 정의한 문자열을 기준으로 토큰을 나누는 기법입니다. ex) 아빠가 방에 들어갔다. -> 아빠가/방에/들어갔다 N-gram parser n-gram 기법을 이용하여 할당한 토큰의 크기 n만큼씩 데이터를 인덱스로 파싱해두었다가 사용하는 기법입니다. ex) 아빠가..
2023.09.30 -
@Async 사용법
@Async 사용법 @EnableAsync @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } } @Service public class MessageService { @Async public void print(String message) { System.out.println(message); } } @RequiredArgsConstructor @RestController public class MessageController { private final MessageService messa..
2023.07.31 -
Node.js
Node.js란 Node.js는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임입니다. 즉, Node.js를 토앻 다양한 자바스크립트 애플리케이션을 실행할 수 있으며 서버를 실행하는데 주로 사용됩니다. 내장 HTTP 서버 라이브러리를 포함하고 있어 웹 서버에서 아파치 등의 별도 소프트웨어 없이 동작하는 것이 가능하며, 이를 통한 웹서버의 동작에 있어 더 많은 통제에서 벗어나 여러 가지 기능을 가능하게 합니다. 이벤트 기반 Non Blocking I/O 모델 Node.js는 이벤트 기반 Non Blocking I/O 모델을 구현하고 있습니다. 여기서 이벤트 기반이란 이벤트가 발생할 때 미리 지정해둔 작업을 수행하는 방식을 의미합니다. 즉, 이벤트 기반 시스템에서는 특정 이벤..
2023.07.26 -
Stream 사용시 주의사항
Stream 재사용 문제 IntStream stream = IntStream.of(1, 2, 3); stream.forEach(x -> System.out.println(x)); //첫번째 stream 사용 stream.forEach(x -> System.out.println(x)); //두번째 stream 사용 stream은 오직 한번만 소비할 수 있기 때문에 두 번째 사용할 경우 IllegalStateException이 발생할 수 있습니다. Stream의 동작 순서 Arrays.stream(new String[] {"c", "python", "java"}) .filter(word -> { System.out.println("filter method : " + word); return word.leng..
2023.07.05 -
Timestamp, Datetime
Timestamp 1970-01-01 00:00:01 ~ 2038-01-19 08:44:07 까지의 데이터만 지원 4byte 크기가 필요 TIMEZONE에 따라 시간 변화 가능 데이터가 숫자형으로 저장 Datetime 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 사이의 데이터 지원 5byte + 3byte(초단위를 저장하기 위함) 크기가 필요 TIMEZONE에 따라 시간 변화 불가 데이터가 문자형으로 저장
2023.06.19 -
varchar, char, text
char 고정 크기의 문자열을 담는 데이터 타입 경우에 따라 데이터가 낭비될 수 있음 크기가 고정이라 남는 부분에 대한 연산이 필요 없기에 조회시 속도가 varchar에 비해 빠른 속도를 보임 varchar 가변 크기의 문자열을 담는 데이터 타입 인덱스 생성이 가능 text 가변 크기의 문자열을 담는 데이터 타입 최대 65535 글자를 담을 수 있지만 크기 지정 불가 길이를 표현하기 위한 2byte의 공간복잡도 존재 인덱스를 제한적으로 생성 가능. 부분 prefix 인덱스만 가능 text를 사용하는 이유 varchar 타입은 한 레코드에 65535 글자만 적재할 수 있음(한 레코드 모든 글자의 합 - InnoDB의 레코드 크기 제한사항) text 타입은 위와 같은 제한이 없고 다른 속성들과 별도로 다른 ..
2023.04.22