전체 글 46

SpringBoot Kotlin Log(AOP/Filter)

안녕하세요~ 요가하는 개발자입니다 ㅎㅎ 어느날 Log를 어떻게 찍을 것이냐! 라는 이야기를 듣고, 내 나름대로 Log에 대한 데이터를 찾아보며, Log를 어떻게 찍을 것인지에 대해서 정해보았습니다. 몇가지 규칙을 정하고 자료 검색 / 사람들은 어떻게 구현하였는지에 대한 코드 분석을 하여, 아래와 같은 규칙을 정하고 구현을 시작하였습니다. 규칙. Controller / Service / Repositroy에 들어가는 ClassName과 Parameter, Time, Api 주소, Api 요청은 항상 Log로 남겨둘 것. 유저 표시로는 AOP에서 Body 데이터를 꺼내 유저에 대한 정보를 얻을 수 있는 방법을 어렵고, 현재는 Spring Security는 너무 복잡하고 무겁기 때문에, RequestHeade..

Spring 2021.06.06

EffectiveJava Question Series -1- (Item. 1 ~ Item. 7)

이펙티브 자바를 읽고 궁금한 점에 대한 시리즈물입니다. item 1. 생성자 대신 정적 팩토리 메서드를 고려하라. Java8에서 interface는 어떻게 변경이 되었고, 왜 변경하였을까요? Java8부터 Defualt Method와 Static Method가 추가됨. Java8 이전까지는 추상메서드와 상수 정의만 가능하였음. Default Method : 기본 구현을 가지는 Method Static Method : Class의 Static Method와 같음. 재정의 불가능 Default Method : 기존 인터페이스가 변경이 되면, 인터페이스를 구현하는 모든 클래스들이 해당 메소드를 구현해야 하는 문제가 있어, 해당 문제를 해결하기 위하여 인터페이스에 메소드를 구현해 놓을 수 있도록 함. Stati..

Java/EffectiveJava 2021.05.09

Mysql Log설정

오늘은 Mysql Log 설정에 대해서 글을 쓰려고 합니다. Mysql의 로그 종류에는 아래와 같습니다. ErrorLog GeneralLog BinaryLog SlowQueryLog 오늘은 위의 로그에 대해 알아보고, 설정 방법 그리고 logRotate에 대해서 알아보려고 합니다. 읽기 전 체크사항 일단 Mysql의 로그는 File과 DB로 각각 기록할 수 있으며, File 설정이 Default임을 기억하셨으면 합니다. 해당 글에서 Log 설정 방법은 my.cnf를 변경하는 방법만 적어놓았습니다. my.cnf를 변경하게 되면 mysql을 다시 재시작하여야 합니다. 하지만 Mysql에 직접 접속하여, 설정을 한다면 재시작할 필요는 없으나, Mysql이 재시작되면 해당 설정을 다시 해줘야 하기 때문에 my...

Mysql 2021.05.01

@Transactional 사용 시 주의해야하는 8가지

지난번에 @Transactional에 대해서 알아보았다. 오늘은 @Transactional을 사용시 주의점에 대해서 8가지정도 알아보려고 합니다. @Transactional이 무엇인지 궁금하다면, 아래의 링크를 통하여 한번 보고 오시길 바랍니다. @Transactional 이란? @Transactional Spring을 공부하다보면 AOP(Aspect oriented programming) 라는 주제가 항상 나온다. 그 AOP라는 주제에 대해서 공부하다보면 가장 먼저 나오는 AOP의 주제는 바로 @Transactional을 구현하는 것이다. 해당 @Tran.. flambeeyoga.tistory.com @Transactional 사용 시 주의해야하는 8가지 1. @Transactional의 우선순위. 클..

Spring 2021.03.21

@Transactional을 아시나요?

Spring을 공부하다보면 AOP(Aspect oriented programming) 라는 주제가 항상 나온다. 그 AOP라는 주제에 대해서 공부하다보면 가장 먼저 나오는 AOP의 주제는 바로 @Transactional을 구현하는 것이다. 해당 @Transactional을 구현하는 방법에 대해서는 토비님의 책 중에 토비의 스프링Vol1에서 AOP의 주제와 함께 세세하게 설명되어 있다. 오늘은 바로 @Transactional이 무엇인지에 대해서 설명하려고 합니다. @Transactional 이란? Spring에서 지원하는 트랜잭션 처리 Annotation. AOP로 구성되어 있으며, 직접적으로 Repository와 연결되어 작업되는 Service method에 @Transactional을 붙여주면, 처음에..

Spring 2021.03.21

@ControllerAdvice와 RequestBodyAdvice을 이용한 RequestBody 데이터 변경 방법

이 글에 앞서, 일단 @ControllerAdvice에 대해서 짧게 알아가려고 합니다. @ControllerAdvice를 아시나요? @ControllerAdvice는 짧게 말해서 Spring이 제공하는 AOP(Aspect oriented programming)의 기능 중에 하나이며, 전역에 있는 컨트롤러에 공통적으로 사용되는 것이 있을때, 적용시켜주는 annotation입니다. 현재 흔히 사용하는 @ControllerAdvice의 방법은 대표적으로 Global ExceptionHandler를 만드는 방식으로 쓰이고 있고, 많은 블로그에서 대부분 @ControllerAdvice의 예제는 Global ExceptionHandler에 대한 예제로 가득차 있다. 또한 @ControllerAdvice는 Excep..

Spring 2021.03.20