본문 바로가기

spring boot9

Spring boot 환경 logback 날짜별 디렉토리 분리 안녕하세요. 지난 포스팅에서 Spring boot 환경의 logback 설정에 대해서 간단하게 포스팅을 했었습니다.이번에는 제가 회사에서 클라이언트의 요청에 따라 로그를 날짜별로 저장을 하는 방식에 대해서 작성하려고 합니다.어쩌면 너무 간단하고 단순한 설정이지만 매번 써오던 설정이 아니여서 그런지 실수를 했던 부분에 대해서 잊지 않으려고 제가 어떤 문제에 직면 했었고 어떻게 해결했는지에 대해서 작성하고자 합니다.  클라이언트 요청 사항 기존에 제가 사용했던 logback 설정은 '어플리케이션 실행 경로/logs/' 의 경로에서 'application.log - 현재 쌓이고 있는 로그 파일'과application-2023-05-31.log' 등 하나의 로그 디렉토리에서 날짜별로 로그를 저장하는 설정으로 사.. 2024. 6. 1.
RSA 암호화를 위한 openssl Private Key 발급 안녕하세요. 오늘은 회사에서 RSA 암호화 로직을 개발하기 위해 선행 되어야 할 openssl Private Key 발급에 대해서 포스팅 하려고 합니다.사실 제가 개발자로 일하면서 보안 로직에 대한 경험이 많지 않아서 이번에 보안 로직 개발을 하게 되면서 많은 어려움이 있었는데요. 그 과정을 잊지 않기 위해 이번에도 회사 프로젝트를 진행하면서 작업했던 내용을 기록하고자 글을 쓰기 시작했습니다. 이번 포스팅은  Ubuntu 환경에서 openssl을 설치하여 RSA Private key, Public key를 발급 받는 과정을 작성을 하려고 합니다. openssl 설치apt install openssl -y 위 명령어로 openssl을 설치를 했으면 잘 설치가 되었는지 dpkg -l 명령어로 확인을 하실 수.. 2024. 5. 31.
Spring boot 환경 logback 설정 및 날짜별 로그 저장 안녕하세요.이번 포스팅은 spring boot에서 log를 남길 수 있는 logback 설정에 대해서 작성을 해보려고 합니다.제가 회사에서 클라이언트의 요청에 따라 로그의 위치와 디렉토리 구조를 알맞게 설정을 해야하는 업무가 있었는데요.해당 업무를 하면서 매번 써오던 logback 설정에 대해서 놓쳤었던 부분을 잊지 않고자 포스팅을 하게 되었습니다.사실 해당 포스팅은 개념적인 내용을 담기보다는 실제로 제가 프로젝트를 진행하다 삽질했던 부분에 대해서 작성을 하려고 했기 때문에개념 정리가 좀 부족할 수 있습니다. 😂 log란프로그램에서 log란 개발자 혹은 어플리케이션 관리자 등에게 있어서 매우 중요한 운영 기록이라고 할 수 있습니다.어플리케이션을 개발할 때 혹은 운영중에 예기치 못한 장애가 발생했을 때 .. 2024. 5. 31.
Spring JPA / @MappedSuperclass 안녕하세요. 이번 포스팅에서는 JPA에서 사용하는 @MappedSuperclass 어노테이션에 대해서 작성을 해보려고 합니다. 먼저 JPA에서는 3가지의 상속관계 매핑이 존재하며 @MappedSuperclass 어노테이션은 상속관계 매핑과는 전혀 무관합니다. 상속관계 매핑과는 무관하다고 하면서 JPA에 3가지 상속관계 매핑이 존재한다고 얘기를 했냐면 DB에서의 상속 관계와는 무관하지만 객체 지향 관점에서 중복되는 컬럼을 하나의 클래스로 정의를 하고 해당 클래스를 상속을 받기 때문입니다. JPA의 상속관계에 대해 잘 모르시는 분들은 이 말이 이해가 잘 안가실 수 있습니다. 위에 얘기가 잘 이해가 안가시는 분들은 일단 머리속에서 JPA의 3가지 상속관계 매핑이라는 개념을 지우고 @MappedSuperclas.. 2023. 7. 12.
Spring JPA / Entity 연관관계 지난 포스팅에서는 JPA의 Entity에 대해서 작성을 했었는데요. Entity란 JPA에서 관리하는 DB와 매핑이 되는 객체를 뜻하며 객체 클래스 위에 @Entity을 사용해서 JPA에게 '해당 객체는 Entity로 사용을 할 것이다' 라고 명시를 했습니다. 그렇다면 이번 포스팅에서는 'JPA에서는 DB의 연관 관계를 어떻게 사용을 하는 것인가?', '두개의 테이블을 join을 어떻게 객체화 시키지?' 라는 주제로 Entity의 연관 관계에 대해서 알아보도록 하겠습니다. RDB Table의 연관관계 프로젝트에서 사용하는 DB는 Mysql, MariaDB, Oracle 등 RDB (관계형 데이터 베이스)를 사용을 하는데 이러한 RDB에서는 FK (Foreign Key)를 사용해서 두 테이블간의 연관 관계.. 2023. 6. 27.
Spring AOP 지난 포스팅에서 @Async 어노테이션을 사용하여 비동기 멀티 스레드를 구현하는 방식에 대해서 포스팅을 했었다. 해당 기능은 Spring AOP의 기능이라고 작성을 했었는데 이번 포스팅에서는 Spring AOP가 무엇인지, 또 어떻게 사용을 하는지 포스팅을 하고자 한다. AOP란. AOP(Aspect-Oriented Programming)는 흩어진 Aspect를 모듈화 할 수 있는 프로그래밍 기법으로 OOP를 보완하는 수단으로 사용. 프로젝트 전반적으로 여러 메소드들에서 반복되는 코드 또는 로직을 모듈화 하여 재사용 할 수 있게 해주는 기능 가장 흔한 예를 들자면 로깅을 하는 기능이 있다고 했을 때 각 메소드 마다 성능 측정 로깅을 넣는다고 하면 메소드 내부에 반복되는 코드들이 계속 늘어날 것이며 유지보.. 2023. 6. 13.