일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 스택
- deque
- Java
- priority_queue
- Calendar
- 힙덤프
- 스프링부트
- JPA
- html
- Properties
- BFS
- date
- 리소스모니터링
- javascript
- sql
- CSS
- string
- set
- alter
- union_find
- scanner
- Union-find
- spring boot
- dfs
- math
- NIO
- GC로그수집
- map
- 큐
- List
- Today
- Total
목록Spring Framework (20)
매일 조금씩
구현된 서비스는.. pdf 파일을 업로드 하면, 1. 원본파일을 저장하고 2. 각 페이지를 image와 thumbnail로 변환한다. 위의 1,2번을 완료 해야 스프링 컨트롤러에서 응답하도록 구현을 했는데.. 2번의 과정이 너무 오래 걸려 응답이 늦어졌다. 따라서 1번까지만 하고 응답하고, 2번은 비동기로 구현하게 되었다. 방법은 간단하다. @EnableAsync로 비동기 기능을 활성화 비동기로 동작을 원하는 메소드(public 메소드)에 @Async 어노테이션을 붙여준다. @Async 어노테이션을 사용해서 비동기 서비스 만들기 1. springboot에서 Async 비동기 기능 활성화 및 thread pool 설정 아래와 같이 java config 파일을 만든다. > config > AsyncConfi..
백엔드에서 업로드한 파일을 삭제하는 기능을 구현하려면, 서버에서 저장된 것과 DB에 저장된 걸 두개다 삭제해야한다. 여기서 DB의 메타 하나를 삭제하는건 문제가 되지않는다. 실제 물리파일이 아니기 때문에 delete쿼리로 쉽게 삭제가 되기 때문이다. 하지만, 실제 물리파일이 저장된 폴더를 삭제하는 것이 문제가 된다. 한번에 삭제 되지않고, 폴더가 비어있어야 삭제가 되기때문이다. 현재 서비스에서 물리파일은 서버에 다음 경로로 저장되어 있다. *** (파일/폴더명) 폴더 파일 *** (파일 메타 pk) > (원본 pdf 파일명) > image > (페이지번호).png > thumbnail > (페이지번호).png 그래서 image, thumbnail폴더에 저장된 png 파일들을 모두 삭제한후 image, t..

application.properties 를 세팅할 수 있는 방법중 하나. 이렇게 properties 파일을 여러개 둔다. 여기선 로컬에서 실행시 application-local.properties를 사용하고 서버에서 실행시 application-prod.properties를 사용한다. 그리고 둘중 어느것을 사용할지 정해주는게 application.properties이다. > application.properties 로컬일때, server.port=8080 spring.profiles.active=local 서버일때, server.port=8080 spring.profiles.active=prod > application-local.properties spring.datasource.url=jdbc:ti..

Spring에서 batch 와 scheduler를 사용하여 매일 같은시각에 업데이트된 시각이 일주일 이전인 파일을 서버와 DB에서 삭제하는 기능을 구현하였다. 1. batch, scheduler 개념 더보기 batch 란? 배치작업은 데이터를 실시간으로 처리하는게 아니라, 일괄적으로 모아서 한번에 처리하는 작업을 의미한다. 가령, 은행의 정산작업의 경우 배치 작업을 통해 일괄처리를 수행하게 되며 사용자에게 빠른 응답이 필요하지 않은 서비스에 적용할 수 있다. 특정 시간이후에는 자원을 거의 소비하지 않는 것이 특징이다. Spring Batch Spring Batch 는 로깅/추적, 트랜잭션 관리, 작업 처리 통계, 작업 재시작, 건너뛰기 등 대용량 레코드 처리에 필수적인 기능을 제공합니다. 또한 최적화 및..
스프링 부트에서 JPA를 사용하려면 application.properties를 설정해두어야 한다. > main / resources / application.properties # create, update, validate, none spring.jpa.hibernate.ddl-auto=none spring.jpa.show-sql=true spring.jpa.database=mysql # mariadb configuration spring.datasource.url=jdbc:mariadb://localhost:3306/meeting_document?characterEncoding=UTF-8 spring.datasource.username=root spring.datasource.password=비밀번호..

파일은 pdf 파일만 받는 것으로 프론트에서 처리한다. pk인 'document_id'는 auto_increment이다. 대략적으로 클래스는 다음과 같이 구성하였다. 로직은 다음과 같다. 프론트에서 pdf 파일(MultipartFile)과 roomId(@RequestParam)를 받는다. 파일 메타를 DB 테이블에 insert 한다. (pk 가 auto_increment 이기 때문에 id 값 가져오기위해 먼저 실행) pdf 파일을 이미지와 썸네일로 변환하여 원본 pdf파일과 함께 서버에 저장한다. DB의 파일 메타를 update 한다. (파일 변환여부 등) pdfbox와 imgscalr 라이브러리를 사용하기 때문에 다음 dependencies를 추가해주어야한다. > build.gradle implemen..