moto6 / open-library

3 stars 0 forks source link

open-library

Java Bean Validation

javax.validation.constraints.

필요성

왜 DataTime 류 자료구조 안쓰고 UNIX-TIMESTAMP 썼나요?

엔티티 이름 관련

SQL 컬럼명 규칙

- ###_ID : 프라이머리키이거나, 검색조건, 항상 유니크함, 인덱스는 없을수있음
- IS_### : 불리언저장
- ###_TIMESTAMP : UNIX 타임스테프
- ###_DATETIME : 로컬데이트타임 저장
- ###_COUNT : 횟수세는거임

이외

로컬환경 실행 인프라셋팅

#DB 실행
docker-compose -f demo-docker-compose.yml up -d

#DB 상태확인
docker-compose ps

#ES 
docker-compose -f single-es-docker-compose.yml up -d 

#test 프로파일로 spring boot 실행
./gradlew bootRun --args='--spring.profiles.active=test'

test-profile

컨피그파일

DDD 관점

ES 붙이기

mysql 풀텍스트서치

SHOW VARIABLES LIKE 'innodb_ft_min_token_size'; -- return:2
SHOW VARIABLES LIKE 'ft_min_word_len';  -- return:2

mysql 풀텍스트서치 쿼리문

: (검색키워드가 "반도체" 일때)

SELECT * from BOOK_MASTER where TITLE LIKE '%반도체%';

-- 검증
EXPLAIN SELECT * from BOOK_MASTER where TITLE LIKE '%반도체%';
SELECT * FROM BOOK_MASTER where match(TITLE) AGAINST('*반도체*' IN BOOLEAN MODE);
EXPLAIN SELECT * FROM BOOK_MASTER where match(TITLE) AGAINST('*반도체*' IN BOOLEAN MODE);

트러블슈팅

SQLException Connection is read-only 문제

데이터셋 이야기

데이터셋 구하는 법 공유

데이터셋 관련 트러블슈팅1 : 깃허브 최대파일용량

데이터셋 관련 트러블슈팅1 : 깃허브 최대파일용량 > 손으로 쪼개는것도 보통일이 아니다.

데이터셋 관련 트러블슈팅2 : 파일인코딩

��ȣ,������,����,���ǻ�,����⵵,ISBN,��Ʈ ISBN,�ΰ���ȣ,��,�����з���ȣ,�����Ǽ�,����Ǽ�,�������,
"1","We need to talk  how to have conversations that matter","Headlee, Celeste","Harperwave","2017","9780062669018","","","","802.56","1","0","2022-12-30",
"6","��Ƽ �ȼ�, ���� ��� ��� ��ʴϱ�? [��Ȱ�ں�]","������","�Ѱܷ���","2022","9791160408577","","","","813.6","1","0","2022-12-30",
"7","��� ������ ���� [��Ȱ�ں�] : ���ʿ� �Ҽ���","���ʿ�","�Ѱܷ���","2022","9791160406962","","","","813.6","1","0","2022-12-30",

인프라 구축 가이드