String, StringBuilder, StringBuffer 성능 비교
·
책/자바 성능 튜닝이야기
JSCODE 자바스터디 2주차 공부 중 실습 String, StringBuilder, StringBuffer지난번정리https://bocho-developer.tistory.com/16  String은 불변클래스로 문자열 연산 시 기존 문자열을 수정하는 것이 아니라 새로운 인스턴스를 생성하여 힙 영역에 저장된다.이런 작업이 반복 수행되면서 메모리를 많이 사용하게 되고 응답 속도에도 많은 영향을 끼치게 된다. StringBuilder는 동기화 되어있지 않아 싱글스레드 환경에서 사용StringBuffer는 메소드 내부에 synchronized 키워드 설정이 되어있어 멀티스레드 환경에서 안전하다.  성능 테스트  private static void stringTest() { long startTi..
try-with-resources
·
책/이펙티브 자바
try-finally 문제점package exam;public class TryFinally { public static void main(String[] args) throws Exception { TestResource testResource = new TestResource(); try { testResource.firstMethod(); } finally { testResource.close(); } } static class TestResource implements AutoCloseable { public void firstMethod() { System.o..
트랜잭션 전파
·
책/토비의 스프링
트랜잭션 정리의 시간 어떻게 동작되는걸까 트랜잭션 전파에 대해 공부를 해보자 일단 트랜잭션 전파수준에 7가지 단계가 있다. 머 이런식으로 정할 수가 있다. default는 required다. REQUIRED Default 속성 기본적으로 부모 트랜잭션이 있으면 부모 트랜잭션에 종속 부모 트랜잭션이 없을 경우에는 새로운 트랜잭션 생성 SUPPORTS 부모 트랜잭션이 있을 때만 해당 부모 트랜잭션에 종속 부모 트랜잭션이 없으면 트랜잭션이 적용되지 않는다. MANDATORY 부모 트랜잭션이 있을 때만 해당 부모 트랜잭션에 종속 부모 트랜잭션이 없으면 예외가 발생한다. REQUIRES_NEW 부모 트랜잭션을 무시하고 무조건 새로운 트랜잭션 생성 부모 트랜잭션은 현재 트랜잭션이 종료될 때 까지 대기상태로 존재 자..
트랜잭션
·
책/토비의 스프링
트랜잭션이란?트랜잭션은 데이터베이스에서 하나의 기능을 수행하기 위한 작업의 단위이다.데이터베이스에 접근 하는 방법은 쿼리이므로 여러개의 쿼리들을 하나로 묶는 단위라고 말할 수 있다. 트랜잭션의 특징으로는원자성,일관성,독립성,지속성 ACID라고 하는 4가지가 있다. [ Atomicity - 원자성 ] 작업이 모두 반영되거나 모두 반영되지 않아야 한다. all or nothing 이라는 말이 있다. [ Consistency - 일관성 ]데이터베이스의 제약이나 규칙을 만족해야 한다 [ Isolation - 독립성 ]트랜잭션을 수행 시 다른 트랜잭션이 영향을 주거나 받아서는 안된다 [ Durability - 지속성 ] 트랜잭션이 성공적으로 수행되었다면, 영원히 반영되어야 한다.   여기서 독립성이 중요한 포인트..
모던자바인액션 - 람다와 스트림
·
책/모던 자바 인 액션
람다란? ( ) -> { } 익명클래스의 떨어지는 가독성과 불편한 사용점을 보안하기 위해 만들어진 자바8부터 추가된 인터페이스이다. 람다는 익명클래스로 전환가능하고 익명클래스도 람다로 전환가능하다. 함수를 하나의 식(expression)으로 표현 ,메서드를 하나의 식으로 표현한 것. 함수를 간략하면서도 명확한 식으로 표현 메서드의 이름과 반환값이 없어지므로 람다식을 익명함수라고도 한다. 인터페이스에 메서드가 하나 인것들만 적용 가능하며 개발자의 의도가 명확히 드러나고 간결하여 가독성이 높아진다. 장점 개발자의 의도가 명확히 드러나고 간결하여 가독성이 높아진다. 병렬프로그래밍이 용이하다. 단점 람다가 내부적으로 수행하는 작업이 더 많기 때문에 코드가 복잡해 질수록 어디에서 문제가 발생했는지 확인하기가 어려..