본문 바로가기

Programming120

[DBMS] PK 선정 전략 - surrogate key와 natural key 목차 PK 선정 시 고려할 것 Surrogate key, Natural key Surrogate key vs Natural key 생각 참고 How to Choose a Good Primary Key PK 선정 시 고려할 것 데이터베이스 테이블 모델링 시 가장 먼저 하게 되는 작업이 해당 테이블의 Primary key를 선정하는 작업입니다. Pk가 가져야 하는 기본성질은 아래와 같습니다. Uniqueness : 다른 ROW로부터 식별이 가능한 유일값 Stability (a situation in which something is not likely to move or change 캠브릿지 사전 참고) : 수정되면 안 됨 Irreducibility (비환원성) : 복합키를 사용한다면 그 키의 어느 컬럼이건.. 2023. 1. 15.
[SPRING] @Transactional을 얼마나 이해했는지 보자 목차 @Transcational CASE 정리 참고 2022.08.19 - [개발/데이터베이스 시스템] - 트랜잭션 (transaction) SQLException 발동! throw new SQLException(); } @Transcational에도 불구하고 트랜잭션이 commit 되었습니다. case 2~3에서 알 수 있듯 @Transcational은 UncheckedException (RuntimeException)에 대해서 rollback 하는 것이 default라는 것을 알 수 있습니다. 그러나 개발자가 설정하지 않으면 적용될 기본값일 뿐, 우린 많은 옵션을 줄 수 있습니다. case 4 : rollbackFor 속성 @Transactional (rollbackFor = SQLException... 2023. 1. 4.
[JSP] jsp를 모듈화할 때 액션태그를 써야하는 이유 목차 include 지시어와 액션 태그 jsp 런타임에서 차이점 jsp 페이지들을 모듈화 하고자 할 때 쓰는 방법이 include입니다. 방법은 2가지가 있습니다. 지시어를 사용하는 방법과 액션 태그를 사용하는 방법인데요. 둘의 차이를 알아보고 적절한 사용방법을 알아보겠습니다. include 지시어와 액션태그 include 지시어 지정된 파일 (foo.jsp)의 텍스트를 지시어 위치에 그대로 삽입합니다. 대상이 되는 JSP페이지가 서블릿으로 변환시키기 전에 삽입됩니다. 즉 JSP 파일의 텍스트 그 자체가 지시어가 사용된 곳에 그대로 삽입되어 그 이후 서블릿으로 변환됩니다. 주로 정적인 요소 (공통 scirpt, css, js library 등)들을 삽입하고자 할 때 사용합니다. include 액션태그 지.. 2022. 11. 13.
[JSP] 영역, Scope 목차 영역이란 영역 속성 값 JSP에서 관리되는 객체들은 영역을 가지고 각 영역에 따라 객체 정보를 공유하고 사용할 수 있게 합니다. Hello1.jsp 에서 생성한 유저 정보를 reqeust scope에 저장해두면 같은 reqeust scope에 해당하는 Hello2.jsp에서도 유저 정보를 사용할 수 있습니다. 마치 JSP 페이지 내에 있는 객체를 JSP 전역에 걸쳐 변수처럼 사용이 가능해지는군요. 이 scope (영역)에 대해서 알아보겠습니다. 영역 (scope)이란 JSP 페이지에서 존재하는 객체 (내장 객체 포함)들은 영역 (scope)속성을 가집니다. * scope : 객체의 활동 (사용) 영역 객체가 가지는 영역 속성 값의 종류 page request session application 같은.. 2022. 11. 11.
[JSP] 내장객체 목차 내장객체란 종류 내장객체란 JSP 프로그래밍에서 내장객체란 묵시적으로 이미 정의되어있는 자바 객체입니다. 이미 정의되어있으므로 선언하지 않고 바로 사용이 가능합니다. 선언과 초기화 과정은 필요 없습니다. 내장객체는 JSP 컨테이너가 번역과정 (jsp -> .java) 에서 만들어서 제공합니다. 내장객체는 스크립트릿, 표현식, 표현 언어 등에서 사용이 가능합니다. 종류 request : 클라이언트 (브라우저)의 request 정보 관리 response : 웹 서버 (아파치)의 response 정보 관리 pageContext : JSP 페이지에 대한 정보 관리 session : HTTP 세션 정보 관리 application : 웹 애플리케이션 정보 관리 out : 클라이언트 브라우저에 출력할 때 사용하.. 2022. 11. 10.
[JSP] Runtime JSP runtime Hello.jsp 요청이 최초일 경우 웹 컨테이너가 다음과 같이 처리합니다. 번역 : .jsp ->. java (서블릿 프로그램)로 번역 (translate) 컴파일 : .java -> .class (서블릿 클래스)로 컴파일 서블릿 실행, 클라이언트 요청 처리 그러나 Hello.jsp의 요청이 최초가 아닐 경우 이전 과정들을 생략합니다. 번역 : .jsp -> .java (서블릿 프로그램)로 번역 (translate) 컴파일 : .java -> .class (서블릿 클래스)로 컴파일 서블릿 실행, 클라이언트 요청 처리 단, 개발자가 jsp내용을 수정했다면 다시 번역 / 컴파일 과정이 필요한데 이는 웹 컨테이너가 jsp의 수정 일시를 식별하여 자동으로 수행해줍니다. 2022. 11. 2.