전체 글 164

[PostgreSQL] upsert 시 excluded 명령어

upsert 쿼리 시에 excluded 명령어에 대한 개념과 사용법을 정리해보겠습니다. - excluded 정의 기존의 파라미터 값을 그대로 사용할 때 사용. insert 에서 이용한 값을 재이용하고 싶을 때 excluded 키워드를 사용합니다. - 예시 INSERT INTO post (title, contents) values ('POST TITLE', 'POST CONTENTS') ON CONFLICT (title) DO UPDATE SET (contents) = (excluded.contents) 아래 excluded.contents 라는 것은 위에서 사용한 contents 값을 그대로 사용한다는 의미입니다.

Database 2022.03.25

STOMP에 대한 이해

STOMP란? (STOMP : Simple Text Oriented Messaging Protocol) STOMP는 메시지 전송을 효율적으로 하기 위한 프로토콜로, 기본적으로 Publish-Subscribe 구조로 되어있다. Publish-Subscribe 구조란 메시지를 공급하는 주체와 소비하는 주체를 분리해 제공하는 메시징 방법이다. 따라서 메시지를 전송하고 / 받아서 처리하는 부분이 확실하게 구조로 정해져있다. COMMAND key(header):value key(header):value ... BODY^@ COMMAND 리스트 - CONNECT, SEND, SUBSCRIBE, UNSUBSCRIBE, BEGIN, COMMIT, ABORT, ACK, NACK, DISCONNECT 참고 : http:/..

Spring 2022.03.14

QueryDSL StringTemplate 사용

* QueryDSL StringTemplate 사용 QueryDSL에서도 SQL Function 사용을 통해 쿼리를 간단하게 작성해야 할 경우가 있습니다. 이 경우 Expressions.stringTemplate() 혹은 Expressions.numberTemplate() 등을 통해 SQL Function을 사용할 수 있습니다. 이를 통해 Date cast, lower case 작성 등을 QueryDSL에서 쉽게 사용 가능합니다. Postgres에서 사용하는 간단한 예시 쿼리문을 몇개 살펴보겠습니다. 예시1) Date 추출 JPAQuery query = this.queryFactory.selectfrom(myTable) .groupby(Expressions.stringTemplate( "DATE_FORM..

Java 2022.02.23

[gUnicorn 이슈] WORKER TIMEOUT 에러

이번 글에서는 간단하게 에러 발생 원인과 해결 방안에 대해서 정리해보겠습니다. gUnicorn을 사용하여 Flask 서버를 구동 시 아래와 같은 에러가 발생하는 경우가 있습니다. [CRITICAL] WORKER TIMEOUT (pid:00000) 제가 겪은 위 에러가 발생한 상황에 대해서 정리하자면 다음과 같습니다. 1. DB 또는 다른 서버와의 통신이 불가할 경우 해당 경우는 다른 DB 또는 서버와 통신이 불가하여 Connection Timeout이 발생하였고, 이로 인해 gUnicorn에서도 Timeout이 발생한 경우였습니다. 위의 경우 Timeout이 발생하는 서버와의 통신을 허용해주면 됩니다. 2. Flask 구동 전 수행되는 로직이 너무 오래 걸릴 경우 저의 환경에서 gUnicorn의 Time..

ETC 2020.12.07

[NLP] Tokenizer에 대해

■ [NLP] Tokenizer에 대해 Tokenizer에 대해 간단히 정리해보겠습니다. ● Tokenization 먼저 Tokenization이 무엇인가에 대해 알아야 할 것 같습니다. 간단하게 말하면 Tokenization이란 Text를 여러개의 Token으로 나누는 것을 말합니다. 보통 공백, 구두점, 특수문자 등으로 이를 나누는데요. 그 방법에 따라 다양한 Tokenizer가 있습니다. ● Tokenization 그리고 이런 Tokenization을 하는 것을 Tokenizer라고 합니다. 간단한 예로 2가지의 Tokenizer를 보겠습니다. 1. nltk.tokenize의 word_tokenize from nltk.tokenize import WordPunctTokenizer target_sen..

AI/NLP 2020.12.01

[MyBatis] if와 foreach를 활용하여 동적 쿼리생성 (필터링 기능)

● MyBatis - if와 foreach를 활용하여 동적 쿼리 생성 MyBatis에서 if와 foreach를 활용하여 동적 쿼리를 생성하는 방법에 대해 정리하겠습니다. 그리고 이를 이용하면 간단한 검색 필터링 기능을 쉽게 구현할 수 있습니다. 이 내용에 대한 예제를 통해 간단히 정리해보겠습니다. ■ MyBatis에서의 if와 foreach 먼저 MyBatis에서의 if와 foreach에 대해 살펴보겠습니다. 이름 그대로 if는 조건문이며, foreach는 반복문에서 사용됩니다. 사용방법은 다음과 같습니다. 해당 조건에 참일 경우만 내부의 쿼리문이 더해집니다. {QUERY 문} 다음으로 foreach의 사용법은 다음과 같습니다. collection에는 전달받은 파라미터값이 들어가며, item은 실제 쿼리..

ETC 2019.12.18

[Linux Study-23] Linux Python 기본 버전 변경

● Linux Python 기본 버전 변경하기 Linux에서 기본 Python버전을 변경하는 방법을 간단히 정리하겠습니다. 여기서 예시는 2.7 버전을 3.6버전으로 변경하는 방법입니다. 먼저 현재 파이썬 버전을 확인합니다. [root@localhost ~]# python -V python 2.7.16 그 다음은 파이썬의 위치를 확인합니다. 아래 명령어를 사용하면됩니다. [root@localhost ~]# which python /usr/bin/python 위 경로는 실제 경로가 아니라 심볼릭 링크로 설정된 경로입니다. 정확한 위치를 확인하기 위해 해당 경로를 다리 ls로 살펴보면 다음과 같을거에요. [root@localhost ~]# ls -al /usr/bin/python usr/bin/python ..

Linux 2019.07.21

[PageSpeed Insights] 웹 페이지를 개선하자

● PageSpeed Insights란? 구글에서 제공하는 훌륭한 서비스 중 하나인 PageSpeed Insights에 대해서 정리하겠습니다. PageSpeed Insights (PSI)는 모바일 및 pc에서의 웹 페이지에 대해 분석하고 해당 페이지의 성능을 향상 시킬 수 있는 방법을 제안해주는 서비스입니다. 개발한 페이지의 성능을 확인함을 물론 이를 쉽게 개선할 수 있도록 도움을 주고 있습니다. ● 사용 방법 먼저 웹 페이지를 분석하기 위해서는 아래 url로 접속합니다. https://developers.google.com/speed/pagespeed/insights 화면 중앙에 보이는 URL입력 창에 확인하고자 하는 URL을 입력 후 분석을 누르면 끝입니다. PSI에 대한 자세한 가이드는 위 그림의 ..

SoftWare 2019.06.10

[JavaScript #11] dataTables 사용하기 (2)

● dataTables - 2 오늘은 지난 포스팅에 이어 dataTables의 server-side processing에 대해서 정리하겠습니다. 너무 많은 데이터 행을 처리할 때는 너무 느리고 모든 데이터를 다루기가 힘듭니다. 이를 해결하기 위해서 제공해주는 방법이 바로 server-side processing입니다. ● Server-side processing paramter server-side processing은 데이터를 그리기 위해 javascript에서 서버측으로 ajax 요청을 합니다. 서버에서는 이 ajax요청을 받아 해당하는 데이터만 다시 리턴해주게 됩니다. 그럼 먼저 서버로 보내는 파라미터 종류를 살펴보겠습니다. - draw count. ajax요청에 의해 그려질 때 dataTable이..

JavaScript 2019.05.08

[JavaScript #10] dataTables 사용하기 (1)

● DataTables? dataTables란 데이터를 테이블로 쉽게 표현하고 다양한 기능을 제공하는 라이브러리입니다. 아래 그림과 같은 다양한 기능을 제공하고 있습니다. (https://datatables.net/) ● DataTables 사용 방법 먼저 DataTables를 사용하기 위해서는 css와 js파일을 추가해야 합니다. 각 url은 아래와 같습니다. https://cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js 이제 아래 테이블과 같은 간단한 테이블을 만드는 예제를 살펴보겠습니다. 뭔가 기능도 많고 복잡할 것 같지만 구현 방법은..

JavaScript 2019.05.05