2020/11 9

[jpa] 로그 설정(logging 설정 외 p6spy로 하기)

logging.level.jdbc 로 설정하는 방법은 Mybatis에 설정할때 사용할 수 있는 것이다. JPA로 되어있는 프로젝트에서는 다른 방법으로 로깅해야 한다. 하나는 application.properties에 다음의 두 설정을 하는 방법이다 spring.jpa.show-sql=true spring.jpa.properties.hibernate.format_sql=true 이렇게 할 경우 쿼리가 생성되면서 화면에 보여진다. 다만 바인딩 값이 ?로 표기된다. format_sql 을 false로 지정할 경우 쿼리가 한줄로 나와 가독성의 떨어질 수 있으니 주의. ?로 들어가는 파라미터에 실제 값이 적용되는 쿼리를 보고 싶다면 다음의 옵션을 추가한다 logging.level.org.hibernate.type..

[react] next.js 프로젝트, npm으로 설정하기

npm 프로젝트 생성 npm init -y reaact 관련 설치 - react - react-dom - next npm i react react-dom next package.json 파일의 script 부분에 다음 추가 { ... "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "dev": "next", "build": "next build", "start": "next start" }, ... } nodemon : 파일이 수정되면 자동으로 restart npm i nodemon -D page 폴더를 생성하고 안에 index.js 파일을 만든다 const Index = () => { return ( Hello! ) } expor..

[eslint, react] eslint-disable-next-line 에러 표기 뜰 때

내 경우 태그를 사용하면 line을 떨어뜨릴때가 있는데, eslint를 적용하면서 위의 경고가 생겼다. => eslint-disable-next-line react/react-in-jsx-scope 마우스를 올려보니 다음과 같이 표기 다음과 같이 주석을 붙이면 경고메세지가 사라지긴 한다. 그러나 매번 이렇게 붙일 수 없으니 근본적 문제를 해결해야 했는데, 살펴보니 설정에서 off하면 된다. .eslintrc 을 열어 rule 부분에 다음을 추가한다 ... "rules": { ... "react/react-in-jsx-scope": "off" ... }, ... 이제 다시 돌아가보면 경고메세지가 사라짐을 알 수 있다. 끝.

[webpack] Cannot read property 'tap' of undefined 에러

react 프로젝트를 만드는데 next, webpack을 설치, 그리고 script에 next를 이용해서 실행하는데 다음의 에러가 발생한다 package.json { ... "scripts": { "dev": "next", "build": "next build", "start": "next start" }, ... } dgpark@Deokui-MBP frontend % npm run dev ready - started server on http://localhost:3000 TypeError: Cannot read property 'tap' of undefined at /Users/dgpark/git/ediya/analytics/frontend/node_modules/@next/react-refresh-..

[springboot] refresh_token 호출 시 에러날 때(Authorization Server)

AuthenticationProvider 를 구현해서 로그인을 인증하고 있다면 실패한다. 유저정보를 호출할때 에러가 발생하는데, 결론만 이야기하면 AuthorizationServerEndpointsConfigurer에 UserDetailsService를 삽입해야 refresh_token으로 갱신할때 유저정보를 꺼내올 수 있다. 이전글인 [springboot, oauth] Authorization Server(인증서버) 구축하기 에서는 AuthenticationProvider로 구현했었는데, 그러다보니 refresh_token을 호출할 때 다음의 에러가 발생했다. { "error": "server_error", "error_description": "Internal Server Error" } 관련글: l..

[aws] CodeDeploy(CI/CD) 자동 배포에 실패할때 복구방법 정리

현 서버는 로드밸런서로 구성되어 있으며 CI/CD 를 진행할때면 교차로 배포하고 슬랙으로 알림이 온다. 그리고 개인적으로 AWS에서 대상그룹으로 배포가 잘 되고 있는지 확인한다. 그런데 오늘 처음으로 장애가 발생했다. 배포 중 실패하여 대상그룹의 상태가 Request Error 가 발생한 것. 해서 서버의 로그를 보기 위해 접속했다. 보니 다음의 에러가 발생. 18-Nov-2020 17:48:53.002 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The APR based Apache Tomcat Native library which allows optimal performance in production environ..

[springboot, slf4j] logging 파일분리 application.properties 에 설정하기(RollingFileAppender)

이전에 logback-spring.xml 에다 설정한 것을 application.properties에 설정하기로 하여 정리. 이전 기능중에는 용량이 100MB 이상될 때 파일을 분리하는 것을 추가했는데, 이걸 application.properties에 추가하려니 애좀 먹었다. 파일을 분리하는데 필요한 옵션은 logging.pattern.rolling-file-name 이다. 그래서 풀 세팅으로 설정하면 다음과 같다. # 30일 까지 보관 logging.file.max-history=30 # 용량제한 logging.file.max-size=100MB logging.file.name=logs/[파일명].log logging.pattern.rolling-file-name=${LOG_FILE}.%d{yyyy-M..

[springboot, security] AuthorizationServer 실무에 써먹게 설정

@EnableAuthorizationServer 을 설정하면 Authorization을 발급하는 서버로 지정된다. 이전 포스팅 참조. lemontia.tistory.com/927 [springboot, oauth] Authorization Server(인증서버) 구축하기 OAuth2 역할은 크게 4가지로 분류된다 - Resource Owner - Authorization Server - Resource Server - Client :: Resource Owner는 유저를 뜻한다. 내가 만든 서비스를 이용하고자 하는 고객을 의미한다 :: Author.. lemontia.tistory.com 이번엔 DB(Mysql)을 이용한 토큰발급을 설정한다. AuthorizationServerConfigurerAdapt..

[ajax, axios] Get호출 시 배열(list) 파라미터 전달하기

Get조회에서 서버에 배열로 보내야 할때, 예를들어 다음과 같이 id가 있어 서버에 조회요청을 해야할 때다. ids: [215, 217, 218, 219, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 227] 이때 axios를 사용해 get을 호출을 했다. 그 코드는 다음과 같다. ... const ids =..