본문 바로가기

Back-End53

Spring Boot Logback 설정으로 로그파일 생성 최근 회사에서 예외처리(에러) 및 엔드포인트에 대한 응답에 대한 데이터를 확인하기 위해서 직접 Slf4j 를 통해서 작성을 했으나 현재 동작시키고 있는 리눅스에서 백그라운드로 실행한다지만 좀더 실용성 있게 로그에 대한 정보를 파악하고 수집하고자 로그에 대한 정보를 파일로 저장해서 만들었으면 한다고 사수님께서 요청을 해주셨다. 직접 하는 과정에서 알아두면 좋을거 같고 혹여 다른 프로젝트를 스프링 프레임워크로 사용할 때도 적용시키면 괜찮을거 같아서 작성해본다. 기본적으로 스프링 부트는 프로퍼티파일에서 로그에 대한 레벨을 설정해서 사용이 가능하다. 보통 로그레벨은 TRACE < DEBUG < INFO < WARN < ERROR 순으로 설정되어있고 지정한 레벨에 따라서 그 하위 레벨의 로그까지 같이 찍을 수 있.. 2021. 9. 4.
java) LocalDateTime , String 형식 변경 사실 Date 클래스들의 경우 검색을 해서 사용하는 경우가 대부분이다. 그렇지만 날짜 관련 클래스의 사용빈도는 의외로 많이 있었다. 게임쪽을 예를 들면 타임어택과 같은 컨셉이나 이벤트성 미션 그리고 현금성류의 할인등등에 마찬가지로 쓰이는 클래스라고 할 수 있다. 최근에 날짜 클래스를 다루기도 했고 간단하게 LocalDateTime 과 String 타입 데이터를 서로 변환하는 방법에 대해서 써보려고 함. 1. LocalDate 클래스들의 현재시간 구하기 // Test Class private final LocalDateTime localDateTimeNow = LocalDateTime.now(); private final LocalDate localDateNow = LocalDate.now(); priva.. 2021. 8. 1.
Spring Boot + Gradle + MyBatis 설정 사실 Mybatis 설정은 요근래 처음하는건데 보통은 Spring 레거시 프로젝트에서 썼던 프레임워크고 Spring Boot로는 보통 JPA를 많이 사용하는 추세이니 이것으로 개발을 주로하곤 한다. 근래 면접을 보았던 회사에서 MyBatis를 사용하신다고 하였고, JPA에 비해 조금 더 추가적인 설정이 필요하다보니 설정 방법을 알아보면 괜찮을거 같기도해서 써봄. 개발환경은 다음과 같다. Spring Boot 2.4.5 Gradle 7.x MyBatis dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-sta.. 2021. 7. 5.
Spring Boot Test Code 동작순서 정렬 - @TestMethodOrder 최근 실무에서도 테스트코드의 중요성에 대해 알고 단위 테스트나 TDD 형식의 주도개발을 통해서 프로젝트를 구축하는 추세로 알고 있다. 지극히 주관적인 생각으로 테스트코드를 통해서 얻을수 있는 장점은 다음과 같다 1. 각각의 기능 테스트를 통한 검증. 2. 각 기능 테스트 검증에 의한 전체 프로젝트 구축시 기능동작에 대한 확신 정리해서 말하자면 테스트코드는 프로젝트가 구축되어 갈수록 해당 기능들이 전체적으로 정상적으로 동작해야 하기 때문에 그것에 대한 검증을 위한 행위이고 버그를 고치기 위한 원인을 파악하는 데 좀 더 편의성을 높이기 위한 것이라고 생각해볼 수 있다. 물론 테스트 코드를 작성해 나가면서 개발하는 것은 많은 시간과 인력(?)이 필요로 하지만 그만큼 테스트 코드가 있는 프로젝트가 좀 더 신경쓴.. 2021. 6. 25.
디자인 패턴의 정의 및 종류 디자인 패턴이란? - 디자인 패턴은 소프트웨어를 설계하면서 발생하는 고질적인 문제에 대한 해결책이라고 보면 편하다. 이 해결책에는 여러개의 패턴을 정의하고 이 패턴들을 3가지의 큰 부류로 분류시켰다. 1. 디자인 패턴의 분류 - 생성(Creational) 패턴 객체 생성에 관련된 패턴으로 객체의 생성과 조합을 캡슐화해 특정 객체가 생성되거나 변경되어도 프로그램 구조에 영향을 크게 받지 않도록 유연성을 제공한다. - 구조(Structural) 패턴 클래스나 객체를 조합해 더 큰 구조를 만드는 패턴 예를 들어 서로 다른 인터페이스를 지닌 2개의 객체를 묶어 단일 인터페이스를 제공하거나 객체들을 서로 묶어 새로운 기능을 제공하는 패턴이다. - 행위(Behavioral) 객체나 클래스 사이의 알고리즘이나 책임 .. 2021. 5. 29.
Validator 인터페이스 사용 Spring boot 프로젝트 만드는 과정에서 Validator를 한번 써보기 위해서 적용을 시켜봤습니다.. 보통 특정 객체에 대한 검증을 하기 위해서 사용된다. Validator 인터페이스를 사용하기 위해서는 2가지 메서드를 오버라이딩해서 사용합니다. @Override public boolean supports(Class clazz) { } @Override public void validate(Object target, Errors errors) { } supports -> 어떤 클래스의 객체의 검증을 지원할 것인지에 대한 코드를 작성해야한다. validate -> 매개변수 target의 객체에 대하여 검증을 실행 한 후 문제가 있을 경우 errors 를 통해서 확인합니다. 예시코드 @Setter @.. 2021. 5. 20.