<DB> Transaction과 Lock 이해하기
개발을 하시면서 Transaction이라는 용어를 정말 많이 들어보셨을 것입니다.저 또한 용어의 정확한 의미는 모른채 사용했었습니다.예를 들어 “뭐 대충 데이터에 변경의 결과를 보장해준다는 거 아냐?” 정도의 느낌으로만 이해했습니다.혹시나 저와 같이 저런 느낌으로만
개발을 하시면서 Transaction이라는 용어를 정말 많이 들어보셨을 것입니다.저 또한 용어의 정확한 의미는 모른채 사용했었습니다.예를 들어 “뭐 대충 데이터에 변경의 결과를 보장해준다는 거 아냐?” 정도의 느낌으로만 이해했습니다.혹시나 저와 같이 저런 느낌으로만
Connection Pool 저희는 JDBC를 이용해서 자바 어플리케이션에서 DB와 통신을 하고 데이터를 주고 받는 방법을 알아보았습니다.그러면 이제 조금 더 이론적인 내용에 대해 알아보겠습니다.아래의 코드에서 DriverManager를 통해서 Connection을 얻어오는 방식으로 DB와 통신을 진행하였습니다.
필자가 JDBC를 처음 사용해본것은 학교 교과목 중 데이터베이스라는 수업에서 사용해보았습니다.당시만 하더라도 저도 JPA를 공부하고 있던터라 “그냥 CRUD만 코드 따라쳐서 해봐야지”하고 간단하게 실습 후 넘어갔던 적이 있습니다.하지만 JPA를 사용해 어플리케이션을 만들고
MVC의 등장 배경 자바의 JSP와 서블릿만을 이용해서 웹서비스를 개발해보신 경험이 있으신가요?JSP의 경우 아래와 같은 코드 구조를 가지게 됩니다.굉장히 간단한 코드임에도 자바 코드와 함께 HTML 코드가 복잡하게 얽혀 있는것을 확인 할 수
해당 포스팅은 스프링 배우기 전 알아두면 좋은 개념 [https://hongchangsub.com/springstarter/]과 연속적으로 진행되는 포스팅입니다. 프로젝트 설정하기 우선 https://start.spring.io/으로 접속해서 아래와 같이 스프링부트 프로젝트를 하나 만듭니다.구지 서블릿만을
Web Application Server vs Web Server * Web Server : 단순한 정적인 리소스들 화면에 뿌려줄 수 있습니다.대표적인 예로 Apache,Nginx 등이 존재합니다. * WAS : 단순히 정적인 리소스들을 화면에 뿌리는 것은 물론 동적으로 사용자에게 맞춰서 데이터를
이번 포스팅에서는 쓰면서도 헷갈리던 JPA의 Cascade 옵션에 대해서 정리하겠습니다.일단 기본적으로 Cascade라는 옵션이 등장하게 된 배경부터 알아봅시다. 아래의 코드를 보시죠 @Setter @Getter @Entity public class Parent { @Id @GeneratedValue private Long id; private String
지난번 포스팅의 Proxy를 활용해 JPA의 즉시로딩과 지연로딩에 대해서 알아봅시다. Member와 Team이 엔티티가 존재합니다.만약 Member를 조회할 때 Team 엔티티를 함께 조회하는 방식이 즉시로딩이고,Team 엔티티를 Proxy객체로 조회하는것이 지연로딩 방식입니다.아래 코드를 보면 직접
만약 Member라는 엔티티와 Team이라는 엔티티가 존재하는 상황에서 Member를 조회할때 Team도 함께 조회할 수 있는 방법이 있을까요? JPA에서는 위와 같은 과정을 Proxy와 연관관계의 옵션을 맺어서 해결해줍니다. 프록시가 무엇인지 부터 알아봅시다. Proxy 우선 Proxy의 경우
왜 JPA를 사용할 경우 객체간 연관관계의 타당성을 따져야 할까요? 이는 테이블이 다른 테이블에 접근하는 방식과 객체가 다른 객체에 접근하는 방식의 차이 때문에 발생합니다. 테이블의 경우 우리는 잘 알고있는 FK 값을 활용해서 Join 연산을