Java(33)
-
@Transactional
1. 트랜잭션의 성질 원자성 한 트랜잭션 내에서 실행한 작업들은 하나로 간주합니다. 일관성 트랜잭션은 일관성 있는 데이터베이스 상태를 유지합니다. 격리성 동시에 실행되는 트랜잭션들이 서로 영향을 미치지 않도록 격리합니다. 지속성 트랜잭션을 성공적으로 마치면 결과가 항상 저장되어야 합니다. 2. 스프링에서 트랜잭션 처리 방법 스프링은 트랜잭션 처리를 지원합니다. 일반적으로 @Transactional을 선언하여 사용하는 선언적 트랜잭션을 사용합니다. 클래스, 메소드 위에 @Transactional이 추가되면, 이 클래스에 트랜잭션 기능이 적용됩니다. 이 객체는 @Transactional이 포함된 메소드가 호출 될 경우, 구현된 PlatformTransactionManager를 사용하여 트랜잭션을 시작하고, ..
2020.04.17 -
.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