Java(55)
-
.map()과 .flatMap()의 차이
1. .map() .map()은 단일 스트림의 원소를 매핑시킨 후 매핑시킨 값을 다시 스트림으로 변환하는 중간 연산을 담당합니다. 객체에서 원하는 원소를 추출해는 역할을 한다고 말할 수 있습니다. 아래의 예시를 살펴보겠습니다. Person.java class Person { int age; String name; ... } MapTest.java List sample = Arrays.asList( new Person(20, "park"); new Person(35, "kyung"); new Person(67, "seok"); new Person(10, "test man"); new Person(45, "test woman"); ); //List -> Stream -> map -> Stream Stream..
2020.04.10 -
LogBack
1. LogBack이란 LogBack이란 Log4J를 만든 개발자 Ceki Gülcü가 Log4J를 기반으로 더 빠른 속도와 더 적은 메모리 점유율 등의 성능을 개발하여 만든 Logging Framework입니다. 2. LogBack의 특징 Level 로그에 레벨을 설정할 수 있습니다. 개발 시 디버깅을 위해 출력하도록 한 로그들은 개발 완료 후 운영 시점에서는 더 이상 출력하지 않게 합니다. 로그마다 레벨을 설정해두고 설정 파일에서 출력 로그 레벨을 설정하여 원하는 단계의 로그만 출력할 수 있습니다. Appender 출력 방법을 선택할 수 있습니다. 로그의 기록을 담당하는 Appender에게 출력 위치(콘솔, 파일 등)나 출력 내용(날짜/시간, 레벨 등)에 대한 패턴을 설정할 수 있습니다. Logger..
2020.04.06 -
SLF4J
1. SLF4J란 SLF4J(Simple Logging Façade For Java)란 Logging Framework들을 추상화해 놓은 것입니다. Facade Pattern을 이용한 Logging Framework입니다. SLF4J는 추상 Logging Framework이기 때문에 단독으로는 로깅을 할 수 없습니다. 보통은 Log4J나 Logback 프레임워크를 함께 사용합니다. SLF4J의 특징 JVM에 의해 유효성 체크가 되며, 바인딩 Logging Framework가 없다면 아무런 동작을 할 수 없습니다. Log4J나 Logback과 같은 Logging Framework를 지원합니다. 기존 Legacy Logging Api를 지원하며, SLF4J로 Migration도 지원합니다. 인자형 로그 메시..
2020.04.03 -
Jar과 War의 차이
1. Jar(Java Archive) Jar는 Java 어플리케이션 소스를 배포할 때, path등의 설정으로 인한 이슈를 제거하기 위해 만들어진 압축 방식입니다. Jar 방식은 압축의 해제 없이 JDK에서 각 파일들을 접근하여 사용할 수 있도록 설계되었습니다. Path 등의 경로를 유지하기 때문에 배포된 Jar 파일을 사용하는 사용자들은 각 파일들에 대한 path 문제에서 벗어날 수 있습니다. 2. War(Web Archive) War는 Java Web 어플리케이션 소스를 배포할 때, path등의 설정으로 인한 이슈를 제거하기 위해 만들어진 압축 방식입니다. War 방식은 압축의 해제 없이 JDK에서 각 파일들을 접근하여 사용할 수 있도록 설계되었습니다. War는 웹 프로젝트에서 배포를 위한 최소한의 단..
2020.04.03 -
Java Logging
1. Logging이란 Log란 시스템 동작 시 시스템 상태, 작동 정보를 시간의 경과에 따라 기록한 것을 말합니다. 그리고 Logging이란 정보를 제공하는 일련의 기록인 Log를 생성하도록 시스템을 작성하는 활동을 말합니다. 저장된 Log는 사용자의 패턴이나 시스템 동작 자체의 분석에 사용될 수 있으며 해킹이나 침입 등의 사고가 발생한 경우 비정상 동작의 기록을 통해 감사 추적을 수행할 수 있습니다. Logging의 장점 Log는 재현하기 힘든 버그에 대한 유용한 정보를 제공 Log는 성능에 관한 통계와 정보를 제공할 수 있음 설정이 가능할 때, Log는 예기치 못한 특정 문제들을 디버그하기 위해, 그 문제들을 처리하도록 코딩하지 않아도 일반적인 정보를 갈무리할 수 있음 2. Java.util.log..
2020.04.03 -
Junit5
JUnit5란 Junit5는 이전의 Junit과 달리 3개의 다른 서브 프로젝트로부터 각기 다른 모듈로 이루어져 있습니다. Junit5 = Junit Platform + Junit Jupiter + Junit VintageJUnit 5의 모듈 Junit Platform JVM 환경에서 테스트 프레임워크 기동을 위한 기초입니다. 또한 테스트 프레임워크 개발을 위한 Test Engine API를 제공합니다. 다음과 같은 기능을 추가로 제공합니다. Command line으로 플랫폼을 기동할 수 있는 console launcher 빌드 플러그인(gradle, maven) Junit4를 실행할 수 있는 테스트 엔진 Junit Jupiter 새로운 개발 모델과 테스트 케이스 작성을 위한 확장 모델을 포함합니다. 테..
2020.04.01