7가지 동시성 모델 by 폴 부처
메소드를 실행시킴과 동시에 결과 값이 기대되는 경우, 요청을 보낸쪽에서 결과가 반환될 때까지 기다린다.안전성과 실행순서가 보장된다.느리다.요청을 보낸 쪽이 아니라 응답을 주는 쪽에서 결과를 알려준다.요청을 보낸 쪽은 응답이 올 때까지 다른일을 하고 있는다.빠르다.순서가
AOP는 Spring 프레임워크가 제공하는 강력한 기능 중 하나로, 객체 지향의 한계를 보완하여 책임을 관점에 따라 한번 더 분리하고 더욱 객체 지향스럽게 코딩할 수 있다.AOP는 어떤 로직이 있을때, 핵심적인 관점과, 부가적인 관점을 분리하여 각각의 관점에서 모듈화하
트랜잭션 대부분은 충돌이 발생하지 않는다고 낙관적으로 가정하는 방법이다.낙관적 락은 트랜잭션을 커밋하기 전까지는 트랜잭션의 충돌을 알 수 없다는 특징이 있다.JPA가 제공하는 버전 관리 기능을 사용한다. 엔티티 특정 필드에 @Version 어노테이션을 추가하면, 엔티티
해당 스레드에서 저장한 값만 제거한다.제거하지 않으면 메모리 누수가 발생할 수 있고,스레드 풀을 사용하기 때문에 요청반환이 끝나고, 스레드는 풀로 들어가서 여전히 살아있게 된다.그럼 스레드 로컬에 저장된 값도 살아있기 때문에 다음 요청이 이전 스레드를 받아서 사용하게
변하는 부분과 변하지 않는 부분을 분리한다.변하는 부분에 대해서는 다형성을 사용변하지 않는 부분에 대해서는 abstract class로 추출하여 모듈화한다.장점단일 책임 원칙이 잘 지켜지도록 구조화 할 수 있다.하나의 변경사항은 한 곳에서만 변경이 있도록 한다.익명 내
인프런 스프링 - 고급편 강의 내용을 참고하여 정리한 내용입니다. 지난 포스팅에서 알아본 탬플릿 메서드 패턴은 부모 클래스에 변하지 않는 템플릿을 두고, 변하는 부분을 자식 클래스에 두어서 상속을 사용해서 문제를 해결했다. 전략 패턴은 변하지 않는 부분을 Contex
콜백?프로그래밍에서 콜백 또는 콜애프터 함수는 다른 코드의 인수로서 넘겨주는 실행 가능한 코드를 말한다.콜백을 넘겨받는 코드는 이 콜백을 필요에 따라 즉시 실행할 수도 있고, 아니면 나중에 실행할 수도 있다.중간에 추가한다면 원본 코드에 대한 수정이 필수적이다.클래스가
프록시라는 말이 나오면 '대리자'를 떠올려 보자. 어떤 서버에 직접 요청을 보내는 것이아니라 대리자를 통해 요청을 가져와달라고 간접 요청을 보낼 수 가 있다. 이 순서가 중요한 이유는 proxy 객체가 개발중간에 추가되거나 빠져도 클라이언트와 원본 객체에는 아무런 수정이 필요하지 않다는 점에 있다. 이렇게 중간에서 대리자 역할을 하는 프록시 객체는 다음과...