spring (7) 썸네일형 리스트형 backend logging 시스템 구축 목차 Log 개념정리 Logging 왜 필요할까? Logging Library - Log4j vs Logback vs Log4j2 Logging Dependencies Log4j2 xml 설정 Async Thread 설정 Filter vs Interceptor MDC 설정 Logging 사용 방법 Logging Test 방법 Log 개념정리 1. log란? 모든 행위와 이벤트 정보를 시간의 경과에 따라 기록한 데이터 2. logging이란? 로그를 생성하는 과정 3. log level log level 순서 trace < debug < info < warn < error 설정 레벨 총 5가지 [1] error 요청 처리하는 중 오류가 발생한 경우 [2] warn 경고성 메시지 [3] info 상태변경 같.. Thymeleaf 작동 구조 Intro. 일반적으로 사용자가 보낸 request를 프론트에서 받은 후 뷰를 사용자에게 리턴하고 서버에서는 데이터를 사용자에게 리턴해준다. 하지만 Thymeleaf를 사용하게 되면 사용자가 보낸 request를 서버 controller가 받고 view를 사용자에게 리턴해준다. references https://www.geeksforgeeks.org/spring-boot-how-thymeleaf-works/ cors 에러 1. cors(Cross-origin resource sharing)란? 추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제 즉, 다른 출처의 resource(url)를 공유할 수 있도록 설정하는 것을 의미 2. cors 에러 cors 설정을 해주지 않으면 cors 에러가 발생해 api 호출이 불가능하게 된다. 3. cors 에러 발생 이유 프론트와 back의 코드가 각각 다른 서버에서 운영되기 때문에 보통 발생한다. front와 back이 같은 domain에서 온다면 cors 에러 처리를 따로 하지 않아도 된다. 4. cors back-end 해결 import org.springframework... slf4j 들어가기. slf4j 설명에 앞서 logging에 대해 정리하고 slf4j에 대해 설명하겠다. 1. log란? api 호출 정보를 기록한 데이터 2. logging이란? 로그를 생성하는 과정 3. log level 순서 trace < debug < info < warn < error 1) error api 호출 에러 발생 시 해당 에러에 대한 로그 표시 2) warn 경고 메세지 3) info api 호출 성공적인 경우 정보성 로그 표시 4) debug info보다 더 상세한 정보로 디버깅하기 위한 정보 표시 5) trace debug보다 더 상세한 정보 6) 동작 원리 출력 레벨을 설정하면, 출력 레벨보다 더 상위 레벨의 로그까지 볼 수 있다. ex) info로 설정하면 warn, error까지 볼 수.. 배포방식 1. jar 파일 springboot는 내장 톰캣을 사용해서 jar파일로 배포하는 것이 가능하다. 이 파일 하나로 웹서버를 운영 가능 이 파일 안에 코드와 의존성과 웹서버까지 모두 들어있다. jar 안에 필요한 jar 파일들과 코드를 모두 넣어둔다. 코드에 대한 자세한 내용은 JarFile class, JarLauncher class를 참조 2. war + web server application(tomcat) war 파일에 코드와 의존성 등을 모두 넣고 web server에 배포하는 방식이다. http와 https 둘 다 운영하는 방법 1. 첫 번째 방법 https로 만든 서버를 띄우고, http로 만든 서버도 띄우면 된다. 그렇다면 https와 http를 동시에 사용 가능하다. 그 이유가 이 프로토콜을 받는 connector가 디폴트로 하나만 설정되어 있다. 그래서 https로 받으면 http로 받을 수가 없다. 그러므로, http로 또 다른 서버를 띄우고(같은 코드로) 사용해야 한다. scale out도 마찬가지이다. 같은 코드로 여러 서버를 띄우고 그 서버들이 하나의 데이터베이스를 가르키면 된다.* 2. 두 번째 방법 : 다중 커넥터 설정 http 프로토콜을 받는 connector를 늘리면 된다. 그렇다면 https와 http동시에 받기 가능. 이때에는 당연히 각 커넥터당 포트 하나씩 놓아야 한다. 즉, 총 2개 필요 ps. 실 .. 의존성 버전에 대한 이야기 pom.xml, build.gradle 에 의존성을 추가할 때, 참고해야 할 내용이다. spring boot starter 가 의존성 버전 관리를 해준다. starter로 의존성 추가를 하면 spring-boot-starter-parent로부터 의존성을 상속 받음 그래서 spring boot dependency에서 관리하는 의존성은 버전 명시 안 해도 됨. 하지만 spring boot starter가 관리해주지 않는 것은 버전을 명시해줘야 한다. 왜냐하면 지원해주지 않는 버전이 들어온다면 문제가 발생할 수 있으므로, references 1. 외부에서 가져오는 의존성들. https://mvnrepository.com/artifact/org.modelmapper/modelmapper 이전 1 다음