본문 바로가기
반응형

backend29

[java] Hwplib 사용해보기 회사에서 큰 프로젝트를 앞두고 이것 저것 라이브러리를 테스트 해보고 있는데 주어진 라이브러리였다. 한글파일에서 텍스트를 뽑아내는 라이브러리인데 유용할거 같아 사용법을 공유한다. kr.dogfoot hwplib 1.0.1 먼저 pom.xml 파일에 다음과 같이 입력한다. import kr.dogfoot.hwplib.object.HWPFile; import kr.dogfoot.hwplib.reader.HWPReader; import kr.dogfoot.hwplib.tool.textextractor.TextExtractMethod; import kr.dogfoot.hwplib.tool.textextractor.TextExtractor; public class Hwplib { public void test() .. 2023. 2. 8.
[TypeORM] insert와 save TypeORM을 쓰다보면 데이터베이스에 데이터를 insert 해야될 때 어떤 걸 써야할지 고민을 할 때가 있다. 보통 구글에 검색하면 1차적으로 나오는게 .save() 인데 .save()는 기본적으로 select 작업을 한다. 그래서 해당 데이터가 있으면 update 작업을 하고 없으면 insert 작업을 한다. (그러한 이유로 따로 update 작업을 할 때 .save()를 쓰면 불편할 때가 있다.) .save() 를 쓰면 select 작업이 실행 되기 때문에 단순데이터를 저장하는데에도 많은 리소스를 사용하고 성능저하의 주 원인으로 꼽힌다. 그래서 이 부분을 제거하고 순수하게 insert 쿼리만 수행하는 기능이 바로 .insert() 이다. 그러면 불필요한 select 연산 없이 insert 쿼리를 수.. 2023. 1. 31.
[NestJS]NestJS에서 Transaction(트랜잭션) 활용 프로젝트를 개발하면서 한 객체를 데이터베이스에 넣고 해당 인덱스를 활용하여 또 다른 insert 작업을 해야하는 상황이 발생했다. 만약 중간 단계에서 에러가 난다면 해당 작업 도중 발생한 insert를 모두 되돌려야 하는데 이럴 때 트랜잭션 단위로 묶어서 처리를 해줄 수 있다. 트랜잭션이 무엇인지 정리하고 프로젝트 도중 트랜잭션을 활용한 내용으로 공유하도록 하겠다. 트랜잭션(Transcation) 트랜잭션의 사전적 정의는 시스템에서 사용되는 더 이상 쪼갤 수 없는 업무 처리의 최소 단위라고 말할 수 있다. 데이터베이스에서의 트랜잭션은 데이터베이스 서버에 여러 개의 클라이언트가 동시에 엑세스를 하거나 응용프로그램이 갱신을 처리할 때 중단 될 수 있는 등 데이터 부정합을 방지하고자 할 때 사용한다. 예를 들.. 2023. 1. 27.
[NestJS]캐시 및 NestJS에서의 캐시 사용 프로젝트를 하다가 정보를 띄워주는 페이지에서 속도가 느려지는 현상이 있었다. 그 현상을 해결하기 위해서 캐시를 공부하고 사용해보았기에 그 내용을 포스팅하려한다. 캐시(cache) 캐시란 컴퓨터 내부의 임시 저장공간이라고 할 수 있다. 인터넷에서 사이트에 방문했을 때 다운로드한 파일들이 캐시에 저장되는데 캐시를 사용하면 다음에 같은 사이트를 방문할 때 시스템이 모든 정보를 다시 로드하지 않아도 된다. 데이터를 미리 복사해 놓았기 때문에 계산이나 접근 시간 없이 더 빠른 속도로 데이터에 접근할 수 있어 브라우저가 사이트를 더 빠르게 로드할 수 있다. 캐시에 원하는 데이터가 존재할 경우 해당 데이터를 반환하며 이 상황을 Cache Hit라고 하며 원하는 데이터가 캐시에 존재하지 않을 경우에는 DBMS 또는 서.. 2023. 1. 18.
반응형