분류 전체보기 328

Jsp- jstl

1. value는 필수적으로 입력해야 하는 속성으로 화면에 출력할 값 적는다. escaperXml 속성은 기본적으로 true https://lifejusik1004.tistory.com/entry/JSP-JSTL-cout-%ED%83%9C%EA%B7%B8-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0 [JSP] JSTL c:out 태그 사용하기 c:out 태그란? c:out 태그는 자바에서의 System.out.println 메서드, JSP와 비슷한 역할을 가지고 있습니다. 어떤 값을 입력받던지 간에 콘솔이 아닌 화면에 문자열로 바꾸어서 보여주는 역할입니다. 얼핏 lifejusik1004.tistory.com 2. document.listForm.action = ""; function..

ORACLE 실행계획, Hint, SQL 튜닝

1. 실행계획 실행계획이란 사용자가 요청한 SQL을 최적으로 수행하고자 옵티마이저가 수립한 일련의 처리 절차를 트리구조로 표현한 것이다. (실행계획을 통해 SQL이 테이블을 스캔하는지, 인덱스를 스캔하는지 확인할 수 있다.) SQL을 수행하기 전에 실행계획을 확인하려면 explain plan 명령어를 사용한다. 이 명령어를 사용하기 전에 plan_table을 생성해야 하며 아래 스크립트 실행하면 plan_table 만들어진다. SQL> @?/rdbms/admin/utlxplan.sql 하지만 10g 버전부턴 오라클이 기본적으로 sys.plan_table$ 테이블을 만들고 'PLAN_TABLE'으로 synonym도 생성하기 때문에 위 스크립트 실행하지 않아도 된다. 실행 계획을 보는 방법에는 EXPLAIN..

CS/DataBase 2022.12.31

ORACLE 식별자

식별자 분류 방식 속성 수에 따라 단일 식별자(하나의 속성으로 구성된 식별자), 복합 식별자( 둘 이상의 속성으로 구성된 식별자) 예를 들어 교육 이력 table에서 사원번호와 수강일자를 복합 식별자로 가질 수 있다. 대체 여부에 따라 본질식별자(업무에 의해 만들어지는 식별자)와 인조식별자(업무적으로 만들어지지는 않지만 원조 식별자가 복잡한 구성을 갖고 있어서 인위적으로 만든 식별자) 예를 들어 접수 테이블에서 접수번호 = 관할부서(3) + 접수일자(8) + 일련번호(3)로 인조식별자를 통해 구성할 수 있다. 외부식별자는 자기 자신의 엔터티에서 필요한 속성이 아닌 다른 엔터티와의 관계에서 자식쪽에 생성되는 엔터티에 생성되는 속성을 말한다. (데이터 베이스 생성시 Foreign Key 역할을 함) 외부식별..

CS/DataBase 2022.12.31

DB ConnectionPool

1. 커넥션 풀(DBCP)이란? 웹 컨테이너(WAS)가 실행되면서 DB와 미리 connection을 해놓은 객체들을 pool에 저장했다가, 클라이언트 요청이 오면 connection을 빌려주고, 처리가 끝나면 다시 connection을 반납받아 pool에 저장하는 방식을 말한다. 자바에서 DB에 직접 연결해서 처리할 경우(JDBC)드라이버를 로드하고 커넥션 객체를 받아와야 한다. 이럴 경우 매번 사용자가 요청할 때 마다 드라이버를 로드하고 커넥션 객체를 생성하여 연결하고 종료하기 때문에 매우 비효율적이다. 이를 해결하기 위해 DBCP를 사용한다. DBCP는 웹 컨테이너(WAS)가 실행되면서 connection객체를 미리 pool에 생성해 두고, HTTP 요청에 따라 pool에서 connection객체를 ..

CS/DataBase 2022.12.30

Spring MVC <component-scan>, <annotation-config>, <annotation-driven>

Spring MVC framework provides different configuration elements that are helping or instructing the Spring container to effectively manage the beans and inject the beans when required. 1. 있으면 필요없음. - spring version2.5에 나왔다. - context:component-scan element in the spring configuration file would eliminate the need for declaring all the beans in the XML files. (과거에는 XML file에 bean들 일일이 등록했어야 했다.) -..

Web.xml, DispatcherServlet, ContextLoaderListener 각각의 역할 및 관계

1. DispatcherServlet : - FirstController로 한 개의 WebApplicationContext를 가지며, 또한 여러 개의 DispatcherServlet 가질 수 있다. - 그러나, DispatcherServlet 간(각각 별도의*. xml파일 설정)에는 객체 서로 공유되지 않는다. - 순서는 순서으로 준다. 2. ContextLoaderListener : - DispatcherServlet에서 공통 빈을 필요로 하는 경우 ContextLoaderListener에 설정해주면 된다.(아래 예시) - 통상적으로 여기에는 datasource, springsecurity 등을 설정해준다. contextConfigLocation /WEB-INF/spring/appServlet/root..

디버깅 똑바로 알고 사용하기(인텔리, 이클립스)

1. 블로그 https://jojoldu.tistory.com/149 IntelliJ 디버깅 해보기 안녕하세요? 이번 시간엔 intellij의 debugging 을 간단하게 진행해보려고 합니다. 모든 코드는 Github에 있기 때문에 함께 보시면 더 이해하기 쉬우실 것 같습니다. (공부한 내용을 정리하는 Github와 jojoldu.tistory.com 2. 인텔리 대표 단축키 1) shift + shift : 전체 검색 2) ctrl + e : 최근 열었던 파일 리스트 보기 3) 로컬 개발에서는 debug로 실행 습관화 3. 디버깅 관련 메모 1) Break Point 우클릭 시 break에 조건 걸 수 있다. (for, while 등에서) 2) Resume : 다음 Break Point로 이동 3) ..

CS/ETC. 2022.12.30

Lock 과 트랜잭션 동시성 제어

1. Lock 영화관 예약 시스템에서 두 명이 동시에 한 좌석을 요청할 때 정확히 한명만 좌석을 배정받을 수 있도록 해야한다. 이 때 사용되는 개념이 Lockdlek. 가. 공유적 Lock(Shared Lock) 공유 Lock은 데이터를 읽을 때 사용한다. 공유 Lock을 설정한 리소스에 다른 트랜잭션이 추가로 공유 Lock을 설정할 수 있지만, 배타적 Lock은 설정 불가능하다. 따라서 자신이 읽고 있는 리소스를 다른 사용자가 동시에 읽을 수는 있어도 변경은 불가능하다. 또한, 다른 사용자가 읽고 있는 리소스를 동시에 읽을 수 는 있어도 변경은 불가능하다. 나. 배타적 Lock 배타적 Lock은 데이터를 변경할 때 사용하며, 트랜잭션이 완료될 때까지 유지된다. 배타적 Lock은 Lock이 해제될 때까지..

CS/DataBase 2022.12.29

Oracle PL/SQL

1. PL/SQL (Procedural Language extension to SQL) SQL을 확장한 절차적 언어(Procedural Language)이다. PL/SQL은 블록단위로 구성되며 논리적인 작업을 진행하는 여러 명령어들을 하나의 블록으로 만들어서 모듈식 프로그램 개발이 가능해진다. 2. 종류 Procedure, Function, Trigger 3. 트랜잭션(TCL) = 데이터베이스의 논리적 연산 단위 트랜잭션은 밀접힌 관련돼 분리될 수 없는 한 개 이상의 데이터베이스 조작을 가리킨다. 하나의 트랜잭션에는 하나 이상의 SQL 문장이 포함된다. DDL의 경우(CRATE, ALTER, DROP, RENAME, TRUNCATE 등) 자동으로 커밋됨. 데이터 베이스를 정상적으로 접속 종료하면 DML ..

CS/DataBase 2022.12.29

쉘 스크립트(.sh)

1. 쉘 스크립트란 쉘에게 어떤 명령을 할지 스크립트를 .sh 파일 확장자로 생성하고 파일로 작성 후 파일을 실행하는 방식을 사용한다. sh 파일로 해주는 것은 리눅스 사용자에 ASCII test 실행파일이라는 것의 암묵적 약속이다. 파일 생성 : vi script.sh 쉘은 커널과 사용자간의 중간 다리 역할을 한다. 사용자로부터 명령을 받아 명령을 해독하고 프로그램을 실행한다. 즉, 사용자가 사용자 프로그램(에디터, 서버, 터미널 등)을 이용해 명령어를 입력하면 사용자가 이용하는 쉘이 명령을 받아 커널에 전달해준다. 커널은 하드웨어를 감싸고 있어 하드웨어를 직접적으로 제어하는 역할을 하며, 컴퓨터가 이해할 수 있는 기계어를 통해 하드웨어에게 전달해주는 역할을 한다. 2. 용도 보통 자동화 작업을 위해 ..