728x90
반응형

Project/Management 10

[Management] Nginx - vue.js 새로고침 시 404 Error

Nginx 에서 vue.js를 빌드 한 후 홈페이지에 접속을 했습니다. 그리고 새로고침을 눌렀을 때 아래와 같은 오류가 발생했습니다. /etc/nginx/sites-enabled/default 설정 파일 수정 기존 설정 파일 server { listen 8081 default_server; listen [::]:8081 default_server; server_name {publicIPv4}; location / { # add_header Cache-Control "max-age=0, no-cache, no-store, must-revalidate"; # add_header Pragma "no-cache"; root /home/ubuntu/twim/dist; index index.html try_file..

Project/Management 2022.12.06

[Management] Spring Data JPA : nativeQuery의 결과를 DTO에 직접 매핑

Error No converter found capable of converting from type [org.springframework.data.jpa.repository.query 1. 문제 인식 원자재 아이템 항목의 전체 재고를 한번에 조회하기 위한 쿼리를 만들었습니다. Spring Data Jpa 를 사용하기 때문에 @Query를 이용해서 작성했습니다. @Query(value = "SELECT item.name AS itemName, SUM(material.count) AS sumCount, MAX(material.created_date) AS recentCreatedDate " + "FROM material JOIN item ON item.id = material.item WHERE mater..

Project/Management 2022.11.11

[Management] QueryDSL : QueryReuslt Dto로 반환 & Join Error & Alias orderBy 참조 방법

오늘은 QueryDSL 사용 시 Q객체를 사용하지 않고, 결과값을 사용하지 않고 DTO를 이용해서 반환하는 방법을 정리해보겠습니다. 1. DTO를 이용해서 반환하는 경우 sum()이나 count() 같은 메서드 사용하는 경우 join을 이용해 다른 엔티티 정보를 반환하는 경우 2. DTO를 반환하는 방법 queryFactory.select( Projections.bean ( Entity.class, QEntity.entity.properties ... ) ) Setter를 이용한 바인딩으로 잘 사용하지는 않는 방법입니다. queryFactory.select( Projections.constructor( Entity.class, QEntity.entity.properties ... ) ) 생성자를 이용한 ..

Project/Management 2022.11.09

[Management] QueryDSL : orderBy() - MultiSort 동적으로 적용

Frontend 요청 페이징을 적용하고 나니, 전체 데이터를 응답해주지 않기 때문에 프론트에서 속성 별 정렬이 안되기 때문에 페이징이 적용된 부분에는 백엔드에서 동적으로 Multi Sort를 적용해달라는 요청을 받았습니다. Frontend의 Request Body /*Request Body JSON FORMAT*/ { "page":Integer, "size":Integer, "sortBy":String[], // 정렬이 필요한 필드 값 "sortDesc":Boolean[] // sortBy가 DESC인지 ASC인지 Boolean값을 통해 알려줍니다. } Backend 처리 1. 기존 코드 /*Entity에 실제 엔티티의 이름 적용*/ public Page EntitySearch(SearchConditio..

Project/Management 2022.11.08

[Management] Nginx를 이용한 Vue.js와 Spring 배포

개요 저희 프로젝트는 AWS에 Spring Project 내부 /resources/static에 Vue.js 빌드파일을 넣고, WAR파일을 빌드하여 하나의 빌드파일로 배포를 하고 있었습니다. 원래는 한 서버에서 두 개의 파일을 빌드해야 프론트를 수정할 때 서버를 끄지 않고 진행할 수 있습니다. 하지만 의사소통의 문제로 하나의 빌드파일을 이용해서 배포를 하고 있었습니다. 그래서 AWS서버에 Nginx를 이용해서 Vue.js 빌드파일을 웹서버에 올리고, Spring과 연결하는 작업을 진행하였습니다. 1. EC2 서버에 접속하여 Nginx 설치 sudo apt-get update sudo apt-get install nginx #nginx 설치 sudo vi /etc/nginx/sites-enabled/def..

Project/Management 2022.11.08

[Management] API 통신 시 로그 출력하는 필터 추가

각 코드에 log.info 또는 log.error를 출력하기 위해서 많은 코드를 추가해야합니다. 저는 Filter를 이용해서 API 호출을 할 때 그 결과를 로그로 출력하려고 합니다. 1. Filter를 상속한 LogUtil을 생성합니다. @Component @Order(0) @RequiredArgsConstructor public class LogUtil implements Filter { } @Component를 통해 Bean으로 등록합니다. @Order(0)을 통해 우선적으로 필터링을 적용합니다. 2. log를 출력하기 위한 Logger를 받아오고, Json을 스트링 객체로 변환하기 위한 ObjectMapper를 받아옵니다. private final Logger log = LoggerFactory...

Project/Management 2022.11.03

[Management] AWS 배포 빌드 파일 자동 재시작 스크립트

현재 진행중인 프로젝트를 AWS에 배포를 하였습니다. 배포를 하고 수정사항이 계속 나오고 있는 시점에 젠킨스를 적용하기 전이라 서버를 재시작할 때 실행중인 프로세스를 찾아서 종료하고 다시 실행시키는 작업이 반복되었습니다. 그래서 스크립트 파일을 통해 실행 시켰을 때 이작업을 바로 해주는 쉘 스크립트를 작성하였습니다. start.sh #!/bin/bash echo "start Project Spring Boot Application" #현재 실행중인 프로세스의 PID를 찾습니다. CURRENT_PID=$(ps -ef | grep java | grep jar) echo "$CURRENT_PID" #실행중인 프로세스가 없다면 프로세스 종료할 필요가 없습니다. if [ -z $CURRENT_PID ]; echo..

Project/Management 2022.10.27

[Management] 날짜 별 로그 생성

로그 관리 날짜별로 로그를 관리하고, 에러 로그도 따로 관리하기 위해 일정 날짜가 지나면 자동으로 로그를 모아주는 기능과 에러 로그를 모아서 관리하는 기능을 추가하였습니다. 1. /src/main/resources application.properties #로그레벨설정 logging.level.root=info logging.level.com.test.box=info logging.level.com.test.box.controller=debug logging.level.web:info #logging config logging.config=classpath:logging-spring.xml //아래 생성하는 xml 파일 이름 2. /src/main/resources logging-spring.xml 파일..

Project/Management 2022.10.24

[Management] DB Error : ORDER BY clause is not in SELECT list

전체 에러 내용 2022-10-13 07:29:13.707 WARN 20835 --- [nio-9080-exec-8] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 3065, SQLState: HY000 2022-10-13 07:29:13.707 ERROR 20835 --- [nio-9080-exec-8] o.h.engine.jdbc.spi.SqlExceptionHelper : Expression #1 of ORDER BY clause is not in SELECT list, references column 'mesdb.warehousin1_.created_date' which is not in SELECT list; this is incompatible w..

Project/Management 2022.10.14

[Management] vue.js 빌드 파일 spring project 병합

문제 인식 원래 생각했던 방식은 /src/resource/static 폴더에 빌드를 통해 만들어진 /js, /css index.html 파일을 넣고 http://localhost:8080/ 으로 접속하면 되겠다고 생각했습니다. 하지만 다른 설정이 필요했고, Spring Security도 적용되어 있어서 설정해줘야할 내용이 많았습니다. 설정 내용 config 파일이 모여있는 디렉터리에 WebMvcConfig 클래스를 생성하여 설정을 하였습니다. import org.springframework.context.annotation.Configuration; import org.springframework.core.io.ClassPathResource; import org.springframework.core.i..

Project/Management 2022.10.14
728x90
반응형