728x90

JAVA 27

(Java) 로그관리! Logger 사용 이유 및 설정 방법

개발자라면 꼭 필요한 Logger를 통한 로그관리 방법과 사용하는 이유 및 설정방법을 알아보자 ! 먼저 사용방법은 간단하다. 로깅 라이브러리는 @slf4j 을 사용하여 내가 로그를 남길 컨트롤러 클래스에 선언을 해주고 메소드 내에서 사용하면 된다. @slf4j public class MainController(){ private final Logger LOGGER = LoggerFactory.getLogger(MainController.class.getName()); public void moveMainPage(){ LOGGER.info("Hello world!"); } } 그럼 다음과 같이 콘솔창에 찍힐 것이다(자세한 정보가 함께 출력!!) (참고로 로그 레벨은 TRACE > DEBUG > INFO >..

JAVA 2022.03.27

[디자인 패턴]Builder pattern 이란?

빌더 패턴(Builder pattern) Builder 패턴은 인스턴스를 생성할 때 생성자(Constructor)만을 통해서 생성하는데는 어려움이 있어서 고안된 패턴이다. 클래스에 생성자 인자가 많다면 Builder 패턴을 사용하면 좋다. 왜냐하면 생성자 인자가 너무 많다면 어떠한 인자가 어떠한 값을 나타내는지 알기 어렵기 때문이다. 코드를 보면서 이해해보자. public class User { private int userIdx; // 선택 private String name; // 필수 private String part; // 필수 private int age; // 선택 private String email; // 선택 } 위와 같은 User 클래스에서 필수적으로 받아야 하는 정보, 선택적으로 받..

JAVA 2022.03.22

Java 8 LocalDateTime 직렬화 역직렬화 오류

Java 8 date/time type `java.time.LocalDateTime` not supported by default: add Module "com.fasterxml.jackson.datatype:jackson-datatype-jsr310" to enable handling... 위와 같은 에러가 발생했는데 검색해보니 Java 8에서 추가된 LocalDateTime 항목을 제대로 직렬화 또는 역직렬화를 못하는 현상이라고 한다. ObjectMapper()함수에 JavaTimeModule를 추가해서 아래와 같이 해결하였다. 출처 - https://itpro.tistory.com/117

JAVA 2022.03.02

스트림의 기본 및 간단한 특징

(Java 8이상)스트림(Stream) 이란? 다양한 데이터 소스를 표준화된 방법으로 다루기 위한 것이다. 스트림이 제공하는 기능 - 중간 연산과 최종 연산 중간 연산 - 연산결과가 스트림인 연산. 반복적으로 적용 가능하다. 최종 연산 - 연산결과가 스트림이 아닌 연산. 스트림의 요소를 소모하므로 한번만 적용가능하다. 스트림의 구조 스트림의 특징 스트림은 데이터 소스로부터 데이터를 읽기만할 뿐 변경하지 않는다. 스트림은 Iterator처럼 일회용이다. 최종 연산 전까지 중간연산이 수행되지 않는다. - 지연된 연산 List list = Arrays.asList(4, 2, 5, 1, 3); List sortedList = list.stream().sorted() .collect(Collectors.toLis..

JAVA 2022.02.14

람다 함수(with 메서드 참조)

람다식이 하나의 메서드만 호출하는 경우에는 메서드 참조(method reference)라는 방법으로 람다식을 간략히 할 수 있다. //예1) static 메서드 참조 (기존) Function f = (String s) -> Integer.parseInt(s); //람다식 (변경) Function f2 = Integer::parseInt; //메서드 참조 //예2) 인스턴스 메서드 참조 (기존) BiFunction f = (s1, s2) -> s1.equals(s2); //람다식 (변경) BiFunction f2 = String::equals; //메서드 참조 //예3) 특정 객체 인스턴스 메서드 참조 MyClass obj = new MyClass(); (기존)Function f = (x) -> obj.e..

JAVA 2022.02.14
728x90