트랜잭션 적용 확인 @Transactional을 통해 선언적 트랜잭션 방식을 사용하면 다눈히 어노테이션 하나로 트랜잭션을 적용할 수 있음 제대로 적용 되었는지 아래와 같이 확인 해 볼 수 있음 public class TxBasicTest { @Autowired BasicService basicService; @Test void pr...
Spring DB - 식별자(PK) 선택 전략
권장하는 식별자 선택 전략 데이터베이스의 기본키는 다음 3가지 조건을 모두 만족해야 함 null 값을 허용하지 않음 유일해야 함 변해선 안됨 위 조건을 기반으로 테이블의 기본 키를 선택하는 전략은 크게 2가지가 있음 자연 키(natural key) 비지니스에 의미있는 혹은 연관된 키 예) 주민등록번호...
Spring DB - 예외처리, 반복
체크 예외와 인터페이스 서비스 계층은 가급적이면 특정 구현 기술에 의존하지 않고 순수하게 유지되는 것이 좋음. 그러나 이렇게 하려면 예외에 대한 의존도 함꼐 해결해야 함 예를 들어서 리포지토리가 던지는 SQLException 체크 예외는 서비스에서 처리할수 있든 없든 체크 예외이므로 반드시 SQLException 예외에 의존하게 됨. 이러한 문제를...
Java - Exception
예외 계층 Object 예외도 객체 모든 객체의 최상위 부모는 Object이므로 예외의 최상위 부모도 Object Throwable 최상위의 예외 Error 메모리 부족이나 심각한 시스템 오류와 같이 어플리케이션에서 복구 불가능한 시스템 예...
Chromium - Netowk
Chromium의 Network Service Network Process(Utility Process) Class Diagram TLS Handshaking Sequence https://www.chromium.org/developers/design-documents/network-stack/ https://docs.google.c...
Spring MVC - MVC 패턴 개요
MVC 패턴 하나의 서블릿이나 JSP만으로는 비지니스 로직과 뷰 렌더링까지 모두 처리하게 되면 너무 많은 역할을 하게되고 결국 유지보수가 어려워짐. 비지니스 로직을 호출하는 부분만 변경이 발생해도, UI만을 변경하더라도 같은 파일을 수정해야 함 가장 중요한 포인트는 비지니스 로직과 UI는 서로간 변경의 라이프 사이클이 다르다는 점. UI를 일...
Spring DB - 스프링을 통한 트랜잭션 동작 개선
어플리케이션 구조 현재 가장 많이 사용하는 어플리케이션의 구조는 역할에 따라 3가지 계층으로 나누는 것 프리젠테이션 계층 UI와 관련된 처리 담당 웹 요청과 응답 사용자 요청을 검증 주 사용 기술 : 서블릿, HTTP와 같은 웹 기술, 스프링 MVC 서비스 계층 ...
Spring DB - 트랜잭션 이해
트랜잭션 데이터를 데이터베이스에 저장하는 대표적인 이유는 데이터베이스가 트랜잭션 이라는 개념을 지원하기 때문 트랜잭션이란 데이터베이스에서 하나의 작업을 안전하게 처리하도록 보장해주는 것을 뜻함 예를 들면, A가 B에게 1000원 계좌이체를 한다고 생각했을떄, A의 잔고 1000원 감소 B의 잔고 1000원 증가 위 두가지 작업이 합쳐 ...
Spring DB - 커넥션풀과 데이터소스 이해
커넥션 풀 이해 데이터데이스 커넥션을 획득할 떄는 복잡한 과정을 걸치게 됨 어펄리케이션 로직은 DB 드라이버를 통해 커넥션 조회 DB 드라이버는 DB와 TCP/IP 커넥션 연결 DB 드라이버는 TCP/IP 커넥션이 연결되면 ID, PW와 기타 부가정보를 DB에 전달 DB는 ID, PW를 통해 내부 인증을 완료하고 내부에 DB 세션을...
Spring DB - JDBC 이해
JDBC 표준 인터페이스 JDBC(Java Database Connectivity)는 자바에서 데이터베이스에 접속 할 수 있도록 하는 자바 API. JDBC는 데이터베이스에서 자료를 쿼리하거나 업데이트 하는 방법을 제공함 대표적으로 다음 3가지 기능을 표준 인터페이스로 정의해서 제공함 java.sql.Connection : 연결 java...