본문 바로가기
728x90
반응형

Spring4

[JPA] @Transactional 멀티스레드 테스트 및 동시성 이슈 돌파 안녕하세요! 예약 시스템을 개발해 보면서 @Transactional 멀티스레드 테스트 시 발생하는 트러블슈팅과 동시성 이슈를 해결한 경험을 되짚기 위해 공유하려고 합니다. 관리가 필요해 누구나 꽤 높은 확률로 비슷한 경험을 해봤을 것이다. "그건 다 팔고 1인분 밖에 안남았는디~ 친구는 다른 거 주문혀~" 친구와 동일한 메뉴를 주문했지만 재료가 부족해 주문이 실패한 케이스다. 베테랑 아주머니께서는 냉장고의 상태를 고려하여 주문을 받은 것이다. 주문을 했어도 냉장고의 상태에 따라 주문이 됐을 수도 있고 메뉴를 변경해야 할 수도 있다. 그 말은 즉 냉장고의 상태는 공유되는 자원이고, 공유되는 자원은 정확한 상태 관리가 필요하다는 것이다. 이처럼 프로그래밍도 공유되는 자원은 정확하게 관리가 될 수 있도록 레이.. 2024. 3. 11.
[Spring] IoC(Inversion of Control : 제어의 역전)컨테이너란? 들어가면서.. Spring 하면 떠오르는 3 대장 IoC, DI, POJO가 있다. 이 중에서도 핵심 of 핵심 IoC 컨테이너가 무엇인지 오늘 알아보려고 한다. 우선 IoC 컨테이너가 무엇인지 알아보기에 앞서 컨테이너가 무엇인지부터 살펴보도록 하자. 컨테이너란? 한 가지 예시로 우리가 컴퓨터를 조립하는 회사에 다닌다고 하자. 고객에게 주문서가 들어오면 우리는 주문서대로 컴퓨터를 만들기 위한 부품들을 박스에 담게 되는데 그것을 컨테이너라고 한다. 마찬가지로 우리가 스프링을 사용할 때 만들어야 할 주문서대로 객체를 담아야 하는데, 소프트웨어상 그 객체들을 담는 공간을 일반적으로 컨테이너라고 한다. 그리고 컨테이너는 보통 인스턴스의 생명주기를 관리, 생성된 인스턴스들에게 추가적인 기능을 제공하도록 하는 것이.. 2021. 9. 29.
[Spring] 스프링 빈(Bean)이란? Spring Bean이란? Spring IoC 컨테이너가 관리하는 자바 객체를 빈(Bean)이라고 부른다. 우리가 알던 기존의 Java Programming에서는 Class를 생성하고 new를 입력하여 원하는 객체를 직접 생성한 후에 사용했었다. 하지만 Spring에서는 직접 new를 이용하여 생성한 객체가 아니라, Spring에 의하여 관리당하는 자바 객체를 사용한다. 이렇게 Spring에 의하여 생성되고 관리되는 자바 객체를 Bean이라고 하고, Spring Framework에서는 Spring Bean을 얻기 위하여 ApplicationContext.getBean()와 같은 메소드를 사용하여 Spring에서 직접 자바 객체를 얻어서 사용하게 된다. * Application Context는 Bean들을.. 2021. 9. 24.
[Spring] MVC 패턴 & Spring MVC Architecture & Spring 설정 파일 들어가면서.. Spring Framework로 웹 개발을 할 땐 기본적으로 MVC 패턴을 따른다. MVC 패턴은 Model, View, Controller 이 세 가지로 나뉘고, 역할을 분할하여 처리한다. 역할을 나누어 처리하기 때문에 서로의 결합도가 낮아져서 좋은 코드가 되며 유지보수도 하기 편해진다. Spring MVC Architecture와 Spring Framework의 설정 파일을 공부하기 앞서 MVC 패턴의 방식과 개념에 대해 알아보자. MVC 패턴이란? MVC 패턴은 Model, View, Controller 개념이 합쳐지면서 생긴 방식으로 소프트웨어 공학에서 사용되는 디자인 패턴이다. 디자인 패턴이란? 건축으로치면 공법에 해당하는 것으로, 소프트웨어의 개발 방법을 공식화 한 것이다. 소수.. 2021. 9. 6.
728x90
반응형