joonbread의 등록된 링크

키자드에 등록된 총 1673개의 포스트를 확인하실 수 있습니다.

Naver Blog

SQL(Oracle 기준) - Partition Index(파티션 인덱스)

** Partition Index- 파티션을 나눌 때 기준이 된 키(컬럼)를 파티션키라 하는데, 해당 파티션 키를 어떻게 사용하느냐에 따라 성능, 관리성에 차이가 생긴다.- Local Index가 Global Index보다 성능, 관리성 등이 상대적으로 우수하지만, 상황에 따라 Global Index를 사용한다.- 파티션 키를 사용해서 인덱스를 만들거나 해당 파티션 별 인덱스를 만들어서 사용- Oracle DB는 Global Non-Prefixed를 지원하지 않는다.** Partition Index 종류

Naver Blog

SQL(Oracle 기준) - Range Partition(파티션 테이블)

*** Partition- 대용량의 테이블을 여러 개의 데이터 파일에 분리해서 저장하는 방법- 하나의 큰 테이블을 물리적으로 나누고, 논리적으론 한 개의 테이블- 물리적으로 나눠진 만큼, 분리된 파일의 입력, 수정 ,삭제, 조회 성능이 좋아진다.- 각 파티션 별로 독립적으로 관리할 수 있어, 백업과 복구가 보다 빠르고, 해당 파티션의 전용 인덱스를 사용할 수 있다.** Partition 종류 ** Range Partition- 데이터가 정말 많아 여러 데이터를 범위별 분할하는 방식- 정해진 범위에 적용하기엔 안성맞춤인 분할기법이며 기준값이 중요하다.-- 파티션 기준 값으로, 가장 작은 값보다 작거나, 사이의 값으로 값 설정(설정값보다 작아야.......

Naver Blog

SQL(Oracle 기준) - Hash Partition(파티션 테이블)

*** Partition- 대용량의 테이블을 여러 개의 데이터 파일에 분리해서 저장하는 방법- 하나의 큰 테이블을 물리적으로 나누고, 논리적으론 한 개의 테이블- 물리적으로 나눠진 만큼, 분리된 파일의 입력, 수정 ,삭제, 조회 성능이 좋아진다.- 각 파티션 별로 독립적으로 관리할 수 있어, 백업과 복구가 보다 빠르고, 해당 파티션의 전용 인덱스를 사용할 수 있다.** Partition 종류** Hash Partition - Hash 함수와 같이, key-value로 구성된 파티션 테이블이다.- 관리쪽에 타 파티션에 비해 적합하진 않으나, 특정 데이터를 다루는데 최적화 된 파티션이다.- 파티션 키 조건에 의존되므로 조건이 까다롭고 각 테이블 스페이스별로.......

Naver Blog

SQL(Oracle 기준) - Window Function(윈도우 함수) 구조

*** Window Function- 행과 행간의 관계를 정의하는 함수- 순위, 합계, 평균, 행 위치 등을 조작할 수 있다.- GROUP BY 구문과 같이 사용할 수 없다.- 중첩 사용은 불가능하지만, 서브쿼리에서 사용 가능하다.** WINDOW 함수 구조* 기본 작성 방법** WINDOWING 구조* BETWEEN 사용 / 미 사용 타입** WINDOW 함수 예제1. EMP 테이블의 첫번째 행부터 마지막 행까지의 연봉 전체 합계를 TOTAL에 넣기SELECT EMPNO, ENAME, SAL,SUM(SAL) OVER(ORDER BY SALROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) TOTALFROM EMP;2. 출력!3. EMP 테이블의 첫번째 행부터 현재 행까지의 합계 SELECT EMPNO, ENAME, SAL,SUM(SA.......

Naver Blog

SQL(Oracle 기준) - Window Function(윈도우 함수), RANK(), DENSE_RANK(), ROW_NUMBER()(랭크 함수)

*** Window Function- 행과 행간의 관계를 정의하는 함수- 순위, 합계, 평균, 행 위치 등을 조작할 수 있다.- GROUP BY 구문과 같이 사용할 수 없다.- 중첩 사용은 불가능하지만, 서브쿼리에서 사용 가능하다.** WINDOW 함수 구조* 기본 작성 방법** WINDOWING 구조* BETWEEN 사용 / 미 사용 타입** 그룹 내 관련 함수** RANK 함수란?- 동일 순위에 동일 값이 부여되며 이후의 순위는 밀려나는 걸 볼 수 있다.* 사용 방법 ** RANK 함수 예제1. EMP 테이블의 급여 순위 계산(동일 순위는 동일하게 조회) SELECT ENAME, JOB, SAL, RANK() OVER (ORDER BY SAL DESC) ALL_RANKFROM EMP;2. 출력!3. EMP 테이블의 직업별 급.......

Naver Blog

SQL(Oracle 기준) - Window Function(윈도우 함수), SUM, AVG, COUNT, MAX, MIN(그룹 내 집계함수)

*** Window Function- 행과 행간의 관계를 정의하는 함수- 순위, 합계, 평균, 행 위치 등을 조작할 수 있다.- GROUP BY 구문과 같이 사용할 수 없다.- 중첩 사용은 불가능하지만, 서브쿼리에서 사용 가능하다.** WINDOW 함수 구조* 기본 작성 방법** WINDOWING 구조* BETWEEN 사용 / 미 사용 타입** 그룹 내 관련 함수** 그룹 내 집계함수- 파티션 별 집계 값을 계산한다.(집계 함수와 다른 점 : 파티션 별 계산한다는 것)- SUM : 파티션 별 합계 계산- AVG : 파티션 별 평균 계산- COUNT : 파티션 별 행 수 계산- MIN : 파티션 별 최소값 계산- MAX : 파티션 별 최대값 계산* 사용 방법 ** 그룹 내 집계함수 예제1. EMP 테.......

Naver Blog

SQL(ORACLE 기준) - Join(Outer Join)

*** Join - 두 개 이상의 테이블을 연결한 테이블 검색- 주로 테이블의 기본 키와 외래 키를 연결하는데 사용하여 Join 한다.- 테이블 조인 시 연결하는 칼럼의 데이터 타입이 서로 동일해야 가능하다.** OUTER JOIN- EQUI JOIN과 달리 조인 조건을 만족하지 못한 행도 같이 조회한다.- 사용법 : SELECT 칼럼명 1,2.. FROM 테이블명 1,2.. WHERE 테이블 1. 칼럼(+) = 테이블 2. 칼럼;- 조건에 만족하는 값이 없어도 조회하는 쪽에 (+)를 붙여서 조회- (+)는 연산자이며 한쪽에만 붙여서 사용 가능하며 조회 기준점이 (+) 반대 칼럼- 연결하는 기준의 값이 있어야 하니까 조회 기준은 NULL이 나오지 않음- 첫 번째 OUTER JOIN - 두 번.......

Naver Blog

SQL(ORACLE 기준) - Join(Inner Join, Cross Join, Natural Join)

*** Join - 두 개 이상의 테이블을 연결한 테이블 검색- 주로 테이블의 기본키와 외래키를 연결하는데 사용하여 Join한다.- 테이블 조인 시 연결하는 컬럼의 데이터 타입이 서로 동일해야 가능하다.** INNER JOIN- 일반적인 JOIN에서 ,를 생략하고 INNER JOIN을 사용한다.- 수학적으로 말하면 교집합의 결과가 반환된다. 즉, 겹치는 부분만 출력- INNER 키워드를 생략해도 되며 WHERE절 대신 ON절을 사용한다.- 사용법 : SELECT 컬럼명1,2.. FROM 테이블명 1 (INNER) JOIN 테이블명2 ON 테이블명 1.컬럼 = 테이블명2. 컬럼; ** CROSS JOIN- 수학의 카테시안 곱을 의미하며, 양쪽 테이블 검색 내용을 서로 곱한 결과를 조회 - 사용법 :.......

Naver Blog

DB - Oracle SQL Developer 설치

*** Oracle SQL Developer - SQL 개발자를 위해 오라클에서 만든 개발도구로, 무료로 사용 가능하다.- 2021.01 기준 JDK버전 10 이상은 아직 지원하지 않으며 작동하지 않으므로 JDK 8을 추천한다.- 설치 전 JDK와 Oracle DBMS Client 설치를 해줘야 하며 오라클 계정이 있어야 한다.** 개발환경- JDK : JDK 1.8 - OS : Windows 10 64bit- Oracle DBMS Client : 11g** 설치 순서 설치 홈페이지- 위의 페이지에서 JDK8을 포함한 버전, 없는 버전, OS별 파일을 제공한다.1) 빨간색 박스는 JDK 8이 포함된 WINDOW 64 bit 파일, 초록색은 JDK가 포함되지 않은 WINDOW 32/64 bit파일이며, 필자는 JDK가 있으므로 초록색을 선택했다.2)Do.......

Naver Blog

SQL(ORACLE 기준) - Sub Query(서브 쿼리)

*** Sub Query(서브 쿼리)- SQL 문장 내에 포함된 또 다른 SQL문이 있는 쿼리문- 전체 SQL문장(메인 쿼리)와 안에 있는 SQL문장(서브 쿼리)라고 한다.- 서브쿼리는 반드시 () 안에 작성해야 한다.- 서브쿼리의 결과물에 따라 다양한 연산자와 결과를 볼 수 있다.** 서브쿼리의 종류 단일 행 서브 쿼리- 서브쿼리의 결과물이 1개만 나온다.- 서브쿼리의 결과와 단일 행 연산자를 사용하여 메인 쿼리 실행한다.- 다중 행 연산자(IN, ANY, SOME, ALL, EXISTS) 사용 불가 다중 행 서브 쿼리- 서브쿼리의 결과물이 2개 이상 나온다.- 서브쿼리의 결과와 다중 행 연산자를 사용하여 메인 쿼리 실행한다.- 단일 행 연산자(=, <&gt.......

Naver Blog

IntelliJ - GIT주소를 활용한 프로젝트 다운로드 및 실행

*** IntelliJ - GIT을 활용한 프로젝트 실행- GIT 주소를 통해 프로젝트를 다운로드 하고 그것을 실행하고자 한다.** 내용 수행 전 필요 사항- 아이디 : GIT아이디, 오라클 아이디(JDK 설치)- IDE : IntelliJ(Community버전 가능)- JDK : JDK 11(개인 사용 같은 특정 사용일 때 무료 허용 - 2021.01 기준)1) GIT주소 추출 - 프로젝트가 있는 GIT 홈페이지 -해당 홈페이지로 가면 스프링에서 제공하는 프로젝트임을 알 수 있는데, Code 버튼을 클릭하면 git의 주소, git 오픈, zip파일로 다운로드 등이 나온다.- 필자는 git주소를 사용해서 프로젝트를 진행할 것이므로 주소를 복사해놓는다.- 아래 Spring PetClinic의 샘플 애플리케.......

Naver Blog

Eclipse - Spring Tools 설치 및 Spring MVC 프로젝트 생성

** 개발 환경개발도구 : Eclipse운영체제 : Windows 10*** Eclipse - Spring Tools 설치 및 Spring MVC 프로젝트 생성 1) 이클립스 상단 메뉴의 Help > Eclipse Marketplace 클릭 2) spring을 검색하면 2번째 Spring Tools 3를 install 하기3) 해당 화면이 나오면 Confirm클릭3-2) Confirm버튼 클릭 시 install 이후 동의 페이지에서 동의하기 선택 후 Finish클릭- 하단 install이 완료되면 사용 가능하며, 너무 오래걸리면 이클립스를 껏다가 다시 키는게 좋다.4) 모두 설치가 되면 이클립스를 껏다가 재실행한 다음 Project Explorer > New > Others > spring 검색, Spring Legacy Project 클릭 5) Spring MVC Project.......

Naver Blog

SQL(ORACLE 기준) - UNION, UNION ALL, MINUS

*** UNION, UNION ALL, MINUS- UNION : 두 개의 테이블을 하나로 합치는 것 - UNION ALL : 두 개의 테이블을 하나로 합치되, 중복을 제거하거나 정렬을 하지 않는다.- MINUS : 두 개의 테이블에서 먼저 쓴 SELECT문에 있고 뒤의 SELECT문에 없는 집합을 조회한다.** UNION UNION- 수학적 용어로 합집합과 같다.- 주의사항은 두 개의 테이블의 칼럼 수, 데이터 형식이 모두 일치해야 한다.- 사용 시 중복 제거와 동시에 정렬된 결과를 반환한다.** UNION ALL UNION ALL- UNION과 동일한 기능을 수행한다.- UNION과 다른 점은 사용 시 중복 제거와 정렬을 하지 않고 그냥 합친다.** MINUS- 수학적 용어로 차집합과 같다.- 2개의 SELE.......

Naver Blog

SQL(Oracle 기준) - 계층형 조회(Connect by)

*** 계층형 조회(Connect by)- 오라클 DB에서 지원한 계층형으로, 데이터를 조회할 수 있다.- 상하관계의 정보를 조회하는데, Tree 형태의 구조로 질의문을 수행한다.- 시작 위치와 테이블의 연결된 정보를 찾기 위해 조인 조건을 걸어서 수행한다.** 키워드** 예제1) Oracle Developer 또는 sqlplus창에서 SCOTT 계정 접속2) 출력!1) 최하위 계층 값 출력(1이 가장 높음)SELECT MAX(LEVEL) FROM EMP ESTART WITH E.MGR IS NULLCONNECT BY PRIOR E.EMPNO = E.MGR;2) 계층형 구조, 1부터 4까지의 계층 값 출력하기(연결된 계층)SELECT LEVEL, E.EMPNO, E.MGR, E.ENAMEFROM EMP ESTART WITH E.MGR IS NULLCONNECT BY PRIOR E.EM.......

Naver Blog

SQL(Oracle 기준) - ROLLUP (그룹 함수)

*** 그룹함수- 내장형 함수의 그룹함수는 집계 함수에 불과하여, 범위가 제한적이지만 그룹 함수를 사용하면 소계, 합계 등의 정보를 모아 보고서를 만들 수 있다.- DECODE / CASE 함수를 사용할 경우 보기 편하게 보고서를 작성할 수 있다.** 그룹 함수 종류** ROLLUP 예제1) Oracle Developer 또는 sqlplus창에서 SCOTT 계정 접속2) 출력!- 부서별 합계, 전체합계 구하기SELECT DECODE(DEPTNO, NULL,'전체합계', DEPTNO),SUM(SAL)FROM EMPGROUP BY ROLLUP(DEPTNO);- 부서명과 직업을 기준으로 연봉 합계, 전체 합계를 구하기SELECT DECODE(DNAME,NULL,'전체합계',DNAME),DECODE(JOB,NULL,'합계&#x2.......

Naver Blog

SQL(ORACLE 기준) - 내장형함수(문자형 함수)

*** 내장형 함수- 오라클 DB에서 제공하는 SQL 함수- DBMS에 따라 사용하는데 조금 다르지만 대체로 내용은 동일하다.- 내장형 함수엔 문자형, 숫자형, 날짜형 등의 함수가 존재한다.** 문자형 함수- 문자형 함수는 매개변수에 문자 데이터를 받아서 문자나 숫자를 반환한다. ** 내장형 함수 - 문자형 함수 예제1) DBMS에 해당 SQL문 작성 후 실행2) 결과!2020년 한해 모두 고생 많으셨습니다. 다들 코로나 조심하시구 내년도 건강하게 무사히 지내시길 기원합니다.

Naver Blog

SQL(ORACLE 기준) - 내장형 함수(날짜형/형 변환 함수)

*** 내장형 함수- 오라클 DB에서 제공하는 SQL 함수- DBMS에 따라 사용하는데 조금 다르지만 대체로 내용은 동일하다.- 내장형 함수엔 문자형, 숫자형, 날짜형 등의 함수가 존재한다.** 날짜형 함수- 날짜형 함수는 문자나 숫자를 변수로 받아 날짜를 반환한다.** 형변환 함수- 날짜 데이터는 형변환 함수 안에서도 사용 할 수 있다.- TO_NUMBER ↔ TO_CHAR ↔ TO_CHAR 의 구조로 형 변환 가능하다.- 숫자형에서 날짜형은 바로 형변환 할 수 없다.* TO_CHAR를 이용한 숫자 데이터 출력 종류* TO_CHAR를 이용한 날짜 데이터 출력 종류 ** 내장형 함수 - 날짜형 함수 예제1) DBMS에 해당 SQL문 작성 후 실행2) 결과!- 오늘 날짜(SYSDATE 사.......

Naver Blog

SQL(ORACLE 기준) - 내장형 함수(숫자형 함수)

*** 내장형 함수- 오라클 DB에서 제공하는 SQL 함수- DBMS에 따라 사용하는데 조금 다르지만 대체로 내용은 동일하다.- 내장형 함수엔 문자형, 숫자형, 날짜형 등의 함수가 존재한다.** 숫자형 함수- 숫자형 함수는 숫자 데이터를 변수로 받아서 숫자를 반환한다. ** 내장형 함수 - 숫자형 함수 예제1) DBMS에 해당 SQL문 작성 후 실행2) 결과!

Naver Blog

SQL(ORACLE 기준) - 사용자 계정 생성 및 권한 부여

*** 사용자 계정 생성, 권한 부여- 사용자 계정 생성 시 반드시 SYSTEM 계정에 접속해야한다.(최상위 계정)** 사용자 계정 생성, 권한 방법- 해당 아이디에 비밀번호를 입력한 유저 생성 권한 부여 종류- RESOURCE : 자신의 스키마 영역 내, PS/SQL을 사용할 수 있는 권한 부여- CONNECT TO : 접속 권한 ROLE(테이블 생성, 조회와 같은 기능)- DBA : DB 관리자와 같은 DB의 모든 시스템 권한 부여 권한 부여/ 철회는 아래에서 다룬다. ** 사용자 계정 생성 예제(Oracle Developer, console) Oracle Developer 사용1) system 계정 접속 - name : 접속 이름- 사용자 이름 : db에 접속할 사용자 이름- 비밀번호 : db에 접속.......

Naver Blog

SQL(ORACLE 기준) - 내장형 함수(NULL 관련 함수)

*** 내장형 함수- 오라클 DB에서 제공하는 SQL 함수- DBMS에 따라 사용하는데 조금 다르지만 대체로 내용은 동일하다.- 내장형 함수엔 문자형, 숫자형, 날짜형 등의 함수가 존재한다.** NULL 관련 함수- 0과 공백과는 다른 NULL을 판별하기 위해 사용하는 함수- 주로 NULL값이 포함된 데이터 타입이나, 연산 결과에서 NULL의 유무 확인 ** 내장형 함수 - NULL 관련 함수 예제1) DBMS에서 SCOTT 계정의 EMP테이블을 참조하여 SQL 실행- EMP 테이블 내용(SELECT * FROM EMP;)- SQL문 실행 2) 결과! NVL(컬럼,치환할 값) : EMP테이블의 COMM 컬럼의 NULL값을 0으로 치환SELECT ENAME, NVL(COMM,0) AS "NVL", COMM FROM EMP;.......

Naver Blog

SQL(ORACLE 기준) - 내장형 함수(그룹 함수)

*** 내장형 함수- 오라클 DB에서 제공하는 SQL 함수- DBMS에 따라 사용하는데 조금 다르지만 대체로 내용은 동일하다.- 내장형 함수엔 문자형, 숫자형, 날짜형 등의 함수가 존재한다.** 그룹 함수- 행들을 그룹화하여 하나의 도출된 결과를 반환한다.- 주로 수와 연관되어 있는 함수이다. ** 내장형 함수 - 그룹 함수 예제1) DBMS에서 SCOTT 계정의 EMP테이블을 참조하여 SQL 실행- EMP 테이블 내용(SELECT * FROM EMP;)- SQL문 실행 2) 결과!- COUNT(컬럼) : 해당 컬럼의 행 수 출력SELECT COUNT(*), COUNT(EMPNO), COUNT(COMM), COUNT(MGR) FROM EMP;- SUM(컬럼) : 해당 컬럼 값들의 총 합을 반환SELECT SUM(SAL) FROM EMP;- MAX(컬.......

Naver Blog

SQL(ORACLE 기준) - ROWNUM, ROWID

*** ROWNUM- SELECT문 결과로 나오는 행의 일련번호를 의미한다.- ROWNUM을 통해 최소 한개의 행을 가져올 수 있으며, 여러 행을 가져오기 위해선 Inline view를 사용해야한다. - 주로 한 화면에 보여지는 조회 개수를 정할 때(페이지번호, 조회된 콘텐츠 개수 등...) 사용한다.** ROWNUM 예제1) DBMS에 해당 SQL문 작성 후 실행2) 결과!- ROWNUM : SELECT문 결과의 행의 일련번호 출력SELECT * FROM EMP WHERE ROWNUM <= 1;- ROWNUM의 다중 행 출력(제한 없음)SELECT * FROM (SELECT ROWNUM LIST, ENAME FROM EMP);- ROWNUM의 다중 행 출력(제한 있음)SELECT * FROM (SELECT ROWNUM LIST, ENAME FROM EMP) WHERE LIST<&#.......

Naver Blog

SQL(ORACLE 기준) - Join((비)등가 Join, 셀프 Join)

*** Join - 두 개 이상의 테이블을 연결한 테이블 검색- 주로 테이블의 기본 키와 외래 키를 연결하는데 사용하여 Join 한다.- 테이블 조인 시 연결하는 칼럼의 데이터 타입이 서로 동일해야 가능하다.** EQUI JOIN(등가 조인)- 가장 일반적으로 사용하는 '='에 의한 조인이다.- 조인 대상의 테이블에서 공통으로 칼럼 값이 일치하는 행을 연결하여 사용한다.- 한쪽 칼럼에 값이 없을 경우의 행은 조회하지 않는다.** NON-EQUI JOIN(비등가 조인)- 동일 칼럼 없이 다른 조건을 사용하는 조인- 특정 범위, 부정, NULL 관련 조건을 사용하는 조인이다.** SELF-JOIN(셀프 조인)- 자신과 자기 자신의 테이블, 즉 자신을 조인한.......

Naver Blog

IntelliJ - IntelliJ 설치

*** IntelliJ 설치- IntelliJ는 Java 개발 툴 중 하나로, 스프링을 배우려고 하던 도중, 이클립스보다 IntelliJ이 초기 준비시간이 단축된다는 얘기가 있어서 설치하게 되었다. - 무료와 유료 버전이 있는데, 무료버전에선 기능의 제한이 있다고 생각하면 된다.- 유료는 학생일 경우 잠깐 쓸 수 있는걸로 알고 있으나, 필자는 학생도 아니고 사용만 해보기 위해 Community인 무료 버전으로 설치하고자 한다.** IntelliJ 설치 과정1) 해당 홈페이지로 이동하자 - 화면은 다음과 같이 뜨는데, OS버전 별 설치와 좌측은 유료 우측은 무료 개발 툴을 다운 받을 수 있다.(유료는 30일 평가판을 제공한다.)- 왼쪽을 보면 다른 버전을 선택해.......

Naver Blog

API - 네이버 API 등록

*** 네이버 API 등록 네이버 아이디 필요https://developers.naver.com/main/- 해당 홈페이지로 이동하면 아래와 같은 내용이 보여진다.- 필자는 네이버 아이디로 로그인을 클릭(일명 네아로)1) 로그인된 상태에서 메뉴를 클릭하면 등록할 수 있는 페이지* 애플리케이션 등록(API 이용신청)- 애플리케이션 이름 : 말 그대로 애플리케이션 이름을 입력하기(필자는 PS)* 사용 API- 사용 API : 네이버 API중 어떤 API를 사용할지 추가하는 곳(필자는 모두 추가)* 환경추가, 로그인 오픈 API 서비스 환경, 비로그인 오픈 API 서비스 환경- 환경 추가 : 안드로이드, iOS, 모바일 웹, PC 웹, Windows App중 환경 추가(사용할 환경을 선.......

Naver Blog

DB - RDB(Relational DataBase), OODB(Object-Oriented DataBase)

*** RDB(Relational DataBase)- 데이터에 관계 개념을 부여하여 데이터를 테이블화하여 칼럼과 로우로 구성한다.- 관계를 이룰 때 key란 기능을 사용해서 테이블 간 관계를 기술하고 구조화한다.- 질의어(Query Language)가 존재하며 신기술에 대해 신속한 지원을 해준다.# 장점- 관계로 이뤄진 만큼 데이터의 분류, 정렬, 탐색 속도가 빠르다.- 범용적인 DB이며 안정적이며 데이터의 무결성을 보장해준다.# 단점- 테이블 간 관계를 맺는데 복잡하며 테이블 구조 변경 시 관계에 따라 어렵다.- 설계가 어렵고 대량의 데이터를 입력, 조회 시 오래 걸린다.** RDB 특징- 모든 데이터를 표라는 테이블로 표현한다.- 테이블은 행(row, tuple, r.......

Naver Blog

SQL(ORACLE 기준) - DUAL 테이블

*** DUAL 테이블- Oracle DB에 의해 자동으로 생성되는 테이블이자 오직 한 행에 한 컬럼만 담고 있는 dummy 테이블이다.- Oracle DB의 모든 사용자 사용 가능하며 내장형 함수를 사용할 수 있다.- SELECT문에서 상수를 계산(산술연산)할 때 좋다.- DUAL테이블은 dummy 컬럼의 varchar2(1) 타입으로 구성되어있다.- X라는 값이 저장되어 있는데 X는 아무 의미가 없다.(형식상의 의미)** DUAL 테이블 예제1) DUAL 테이블 출력2) 60*60의 값을 출력3) 날짜 출력

Naver Blog

SQL(ORACLE 기준) - TCL(Transaction Control Lauguage), 트랜잭션(Transaction)

*** TCL(Transaction Control Lauguage)- 트랜잭션 제어 언어 ** 트랜잭션- 데이터베이스의 작업 처리를 나타내는 단위(연산들의 집합)- 실행 전부터 후까지 중간 문제 발생 시 기존 실행했던 작업을 무효화한다.- 말 그대로 4개를 실행할 때 2개 진행 완료 후 2개 실행 중 1 문제 발생 시 모든 작업을 초기화하여 미완료 작업 처리 하는 것 트랜잭션 특성(ACID)1. Atomicity(원자성)- 데이터베이스 연산의 전부 실행 또는 전부 미실행만 있음2. Consistency(일관성)- 트랜잭션 실행 결과로 데이터베이스의 모순적인 결과가 있으면 안됨- 실행 후 결과에 맞는 일관성이 필요3. Isolation(고립성)- 트랜잭션 실행 중의 연산 중간 결과.......

Naver Blog

SQL(ORACLE 기준) - 인덱스(INDEX)

*** INDEX- 데이터베이스 객체 중 하나로 색인 기능을 가지고 있다.- 책의 목차처럼 데이터 조회 시 검색 속도를 향상시키기 위한 용도- 테이블과 별개의 독립 객체지만, 테이블에 의존적인 성향을 가지고 있다.- 기본키나 유일키와 같은 제약 조건이 지정되면 해당 키에 인덱스가 자동 설정** INDEX의 장, 단점** INDEX 종류 B-TREE INDEX- 실시간 데이터 입력/수정 환경에 주로 사용1) 고유 INDEX - 중복되지 않는 데이터를 인덱스의 키값으로 지정하는 인덱스2) 비 고유 INDEX- 중복되는 데이터를 인덱스의 키값으로 지정하는 인덱스3) FUNCTION BASED INDEX(함수 기반 인덱스)- 조인이나 조건에 사용할 인덱스로 생성한다.- 해당.......

Naver Blog

DB - DBMS(DataBase Management System)

*** DBMS(DataBase Management System)- DB를 구성하고 운영하는 소프트웨어 시스템으로 DB를 만들고 사용하는 도구- DBMS 종류로 Oracle, MySQL, MS SQL 등이 있다.** DBMS 종류 1) Oracle# 장점- 사용층이 가장 많음- PC뿐만 아니라 대형 서버에도 설치할 수 있음- 분산처리를 지원하며 제품 우수성이 입증* ORACLE 설치 홈페이지 https://www.oracle.com/kr/downloads/- 데이터베이스에서 설치할 버전을 선택한 뒤, 사용환경에 맞춰 설치하면 된다.# 단점- 운영하는데 많은 자원이 필요하며 타 DBMS보다 상대적으로 가격이 비쌈2) MySQL# 장점- 저렴한 가격으로 사용되어 중소 규모 서비스에 적합하다.- 지속적인 성능 향상을 통해 대.......

Naver Blog

SQL(ORACLE 기준) - 형변환

*** 형변환- 두 데이터의 타입(형)이 일치하도록 변환하는 방법- (숫자 / 문자열), (문자열 / 날짜형)과 같은 타입 불일치 시 사용- 형변환은 명시적(직접 적용)과 묵시적(간접 적용)으로 나뉜다.- 인덱스 칼럼에 사용 시 묵시적 형변환이 발생하면 인덱스의 기능이 무의미해진다** 형변환 종류 명시적 형변환- 말 그대로 형변환을 직접 적어서 적용시키는 것이다.* 명시적 형변환 함수- FORMAT : 변환 데이터 타입을 의미1) TO_NUMBER(문자열)- 문자열로 구성된 숫자를 숫자로 변환한다.2) TO_CHAR(숫자 OR 날짜, FORMAT)- 숫자형 또는 날짜형을 FORMAT(문자형)으로 변환한다.3) TO_DATE(문자열, FORMAT)- 문자열을 날짜형으로 변환.......

Naver Blog

SQL(ORACLE 기준) - DCL(Data Control Language - 데이터 제어어)

*** DCL(Data Control Lauguage)- 데이터 접근 권한, 롤(권한 집합체) 권한 부여 명령어(유저, role, 시스템 대상)- 모든 사용자에게 모든 데이터 접근 허용으로 인한 불상사를 방지할 수 있다.- 특정 사용자에겐 제약된 권한을 부여함으로써 특정 사용자가 업무를 쉽게 배울 수 있다.(자신의 위치에서 필요한 권한만 사용하기 때문에)- DBMS의 트랜잭션 관리** 권한 검색(유저, ROLE, 시스템(데이터베이스) )** GRANT- 데이터베이스에 대한 사용자의 권한 부여(부여된 권한 레벨에 따라 데이터베이스에 접근 제약이 있음) GRANT 부여 방법** REVOKE- 데이터베이스에 대한 사용자의 권한 회수 REVOKE 회수 방법

Naver Blog

JSP / Servlet - 리스너(ServletContextAttributeListener)

*** 리스너- 컨테이너에서 발생하는 특정 이벤트 상황에서 실행되는 장치- 여기서 이벤트란, 어떤 사건이 발생하는 걸 의미한다.- 특정 이벤트에 따라 동작하는 인터페이스를 구현한 클래스로, 특정 상황 시 행동하는 걸 '이벤트 핸들링'이라고 하며 주로 웹 애플리케이션 전체의 설계 관점에서 사용한다. - 그냥 간단하게 특수 상황에 행동하는 장치로 보면 된다.- javax.servlet.ServletContextAttributeListener를 임포트해서 메서드를 사용 - ServletContextAttributeEvent 발생 시 호출하는 메서드를 가진 인터페이스- ServletContextAttributeEvent 객체를 통해 해당 속성이름과 값을 호출한다.- 서블릿 컨텍스트 속성에 대해 추.......

Naver Blog

JSP / Servlet - 리스너(ServletRequestListener)

*** 리스너- 컨테이너에서 발생하는 특정 이벤트 상황에서 실행되는 장치- 여기서 이벤트란, 어떤 사건이 발생하는 걸 의미한다.- 특정 이벤트에 따라 동작하는 인터페이스를 구현한 클래스로, 특정 상황 시 행동하는 걸 '이벤트 핸들링'이라고 하며 주로 웹 애플리케이션 전체의 설계 관점에서 사용한다. - 그냥 간단하게 특수 상황에 행동하는 장치로 보면 된다.- javax.servlet.ServletRequestListener를 임포트 해서 메서드 사용 - ServletRequest 객체 발생 시 호출하는 메서드를 가진 인터페이스- ServletRequest 객체의 생성, 소멸 시 알림 이벤트* ServletRequestListener 추상 메서드** ServletRequestListener 예제(이.......

Naver Blog

JSP / Servlet - 리스너(ServletRequestAttributeListener)

*** 리스너- 컨테이너에서 발생하는 특정 이벤트 상황에서 실행되는 장치- 여기서 이벤트란, 어떤 사건이 발생하는 걸 의미한다.- 특정 이벤트에 따라 동작하는 인터페이스를 구현한 클래스로, 특정 상황 시 행동하는 걸 '이벤트 핸들링'이라고 하며 주로 웹 애플리케이션 전체의 설계 관점에서 사용한다. - 그냥 간단하게 특수 상황에 행동하는 장치로 보면 된다.- javax.servlet.ServletContextAttribute 인스턴스를 통해 해당 메서드를 사용 - ServletContextAttributeEvent 발생 시 호출하는 메서드를 가진 인터페이스- ServletContextAttributeEvent 객체를 통해 해당 속성이름과 값을 호출한다.- 서블릿 컨텍스트 속성에 대해 추.......

Naver Blog

JSP / Servlet - 리스너(HttpSessionListener)

*** 리스너- 컨테이너에서 발생하는 특정 이벤트 상황에서 실행되는 장치- 여기서 이벤트란, 어떤 사건이 발생하는 걸 의미한다.- 특정 이벤트에 따라 동작하는 인터페이스를 구현한 클래스로, 특정 상황 시 행동하는 걸 '이벤트 핸들링'이라고 하며 주로 웹 애플리케이션 전체의 설계 관점에서 사용한다. - 그냥 간단하게 특수 상황에 행동하는 장치로 보면 된다.- javax.servlet.http.HttpSession 인스턴스를 통해 해당 메서드를 사용 - HttpSessionEvent 발생 시 호출하는 메서드를 가진 인터페이스- HttpSessionEvent 객체를 통해 해당 속성 이름과 값을 호출한다.- 세션 생성, 소멸에 대한 알림을 받는 것- 세션은 브라우저와 연.......

Naver Blog

SQL(ORACLE 기준) - View(뷰)

*** view- 테이블로부터 유도된 가상 테이블로 실제 데이터를 갖고 있지 않다.- 존재하는 테이블을 참조해서 사용자가 원하는 컬럼만 조회할 수 있다.- 특정 컬럼만 조회해서 보안성을 향상시킨다.(검색 용도)- 기존 생성된 뷰에 입력, 수정이 불가능하며 원하는 내용을 추가하거나 수정할 시 뷰 자체를 삭제 후 재생성 해야한다.** view 생성과 삭제** view의 장, 단점** view 생성 예제1. 해당 member란 테이블 생성 후 데이터를 입력한다.2. member 검색한 내용을 가진 view1를 만든 다음 view1를 출력해본다.3. select를 통해 member 테이블과 view1 뷰를 검색해본다.4. 동일한 내용이 나온것을 확인- select * from member;- se.......

Naver Blog

JSP / Servlet - 리스너(HttpSessionBindingListener)

*** 리스너- 컨테이너에서 발생하는 특정 이벤트 상황에서 실행되는 장치- 여기서 이벤트란, 어떤 사건이 발생하는 걸 의미한다.- 특정 이벤트에 따라 동작하는 인터페이스를 구현한 클래스로, 특정 상황 시 행동하는 걸 '이벤트 핸들링'이라고 하며 주로 웹 애플리케이션 전체의 설계 관점에서 사용한다. - 그냥 간단하게 특수 상황에 행동하는 장치로 보면 된다.- javax.servlet.http.HttpSessionBinding 인스턴스를 통해 해당 메서드를 사용 - HttpSessionBindingEvent 발생 시 호출하는 메서드를 가진 인터페이스- HttpSessionBindingEvent 객체를 통해 속성 이름 값을 호출한다.- 세션에서 동시 사용자 및 중복 로그인 방지를 위.......

Naver Blog

JSP / Servlet - 리스너(HttpSessionAttributeListener)

*** 리스너- 컨테이너에서 발생하는 특정 이벤트 상황에서 실행되는 장치- 여기서 이벤트란, 어떤 사건이 발생하는 걸 의미한다.- 특정 이벤트에 따라 동작하는 인터페이스를 구현한 클래스로, 특정 상황 시 행동하는 걸 '이벤트 핸들링'이라고 하며 주로 웹 애플리케이션 전체의 설계 관점에서 사용한다. - 그냥 간단하게 특수 상황에 행동하는 장치로 보면 된다.- javax.servlet.http.HttpSessionAttributeListener 인터페이스를 통해 해당 메서드를 사용 - HttpSessionBindingEvent 발생 시 호출하는 메서드를 가진 인터페이스- HttpSessionBindingEvent 객체를 통해 해당 속성이름과 값을 호출한다.- HttpSession 객체 값을 저장하.......

Naver Blog

JSP / Servlet - 리스너(HttpSessionActivationListener)

*** 리스너- 컨테이너에서 발생하는 특정 이벤트 상황에서 실행되는 장치- 여기서 이벤트란, 어떤 사건이 발생하는 걸 의미한다.- 특정 이벤트에 따라 동작하는 인터페이스를 구현한 클래스로, 특정 상황 시 행동하는 걸 '이벤트 핸들링'이라고 하며 주로 웹 애플리케이션 전체의 설계 관점에서 사용한다. - 그냥 간단하게 특수 상황에 행동하는 장치로 보면 된다.- javax.servlet.http.HttpSessionActivationListener 인터페이스의 추상 메서드 사용 - HttpSessionEvent 발생 시 호출하는 메서드를 가진 인터페이스- HttpSessionEvent 객체를 통해 객체 안의 필드 확인- 새로운 가상머신으로 옮겨가기 전 후(마이그레이션)의 행동을 정.......

Naver Blog

JSP / Servlet - 필터(filter)

*** 필터(filter)- 리스너와 같이 웹 애플리케이션에서 걸러내는 용도로 사용한다.- 사용자 요청 이전에 먼저 실행되므로, 설계 관점에서 매우 중요하다.- 인증과 같은 기능을 수행할 수 있으며, 필터를 이용하면 각각의 페이지에서 필터 기존 내용을 수정하지 않고도 인증 기능을 수행할 수 있다.- 필터를 통해 요청사항과 출력사항에 대한 기록을 출력하며 확인을 통해 해당 설계가 정확히 실행되는지 확인 할 수 있다.- 다국어나 파일 압축, 변환 등.. 필터를 통해 적용할 수 있다.**필터의 작동 과정1) 톰캣 서버를 실행 시 javax.servlet.Filter 인터페이스를 구현한 클래스들이 초기화되는데, 각 필터는 init()메서드를 통해 초기화 작.......

Naver Blog

JSTL - SQL 라이브러리 주요 태그(쿼리 전송)

*** SQL 라이브러리 주요 태그** 쿼리 전송* []안의 내용은 생략이 가능하다.* 실행하기 전, 반드시 db가 연결된 환경을 구현해야 한다. <sql:query> - <sql:query>를 통해 sql 쿼리 문장을 실행한다.- 자바의 executeQuery()기능과 비슷함* <sql:query> 속성 값 <sql:update>- <sql:update)를 통해 데이터베이스에 insert, update와 같은 값을 수정하거나 입력할 sql 쿼리 문장을 실행한다.- 자바의 executeUpdate()와 비슷함* <sql:update> 속성 값 <sql:param>, <sql:dateParam>- <sql:param>을 통해 파라미터 값(문자열 형식) / <sql:dateParam>은 날짜, 시간 관.......

Naver Blog

JSTL - 다국어 처리 1(Locale Class)

*** 다국어 처리- 웹 브라우저를 사용하는 국가에 따른 언어, 지역을 지원하는 서비스- JSTL의 FMT 태그를 이용해서 다국어를 지원할 수 있음- 다양한 언어와 지역, 문화에 적용될 수 있게 한다.** Locale class- 다국어 처리하는데 사용하는 클래스로, 사용자의 지역 환경에 따라 결정되는 지역적 문화의 정보를 담고 있다.- request 내장 객체를 사용하며, JSP 페이지에서 Page 디렉티브 태그의 import 속성으로 패키지 java.util.Locale을 설정하거나 Locale 인스턴스나 필드를 사용** Locale 감지 메서드* locale 감지 메서드, 특정 날짜, 통화, 숫자 형식 예제

Naver Blog

DB - Database

*** Database(이하 DB)- 체계적으로 데이터를 관리할 수 있는 소프트웨어로 정보를 보관하는 창고- 데이터를 다루는 개발에 있어서 반드시 필요하고 중요한 부분- 여러 사람이 공유할 목적으로 방대한 데이터를 체계적으로 정리, 저장하여 데이터를 효율적으로 사용할 수 있다.** DB의 장단점# 장점- 데이터 중복 최소화- 데이터 불일치 문제 해결- 쉬운 데이터 공유- 정보 표준화를 이룰 수 있음- 데이터에 대해 보안성 제공- 데이터의 무결성 유지- 대량 데이터를 빠르게 검색하며 텍스트 이외 다양한 데이터 관리 가능- 애플리케이션 개발을 쉽게 한다.# 단점 - DBMS를 위한 하드웨어가 추가적으로 필요하여 증설에 대해 추가 비용이 발생.......

Naver Blog

JDBC - 데이터베이스 커넥션

*** 데이터베이스 커넥션 - 데이터베이스 커넥션 풀(DBCP) : 애플리케이션에서 필요로 하는 시점에 커넥션을 생성한 게 아닌, 미리 일정한 수의 커넥션을 생성한 다음 필요한 시점에 애플리케이션에 제공하는 서비스 및 관리 체계- DB 커넥션 객체를 생성하는 부분에 대한 비용, 대기시간, 네트워크 연결에 대한 부담을 줄이는 방법이다. - 다수의 HTTP 요청에 대한 쓰레드를 효율적으로 처리할 수 있다. - 커넥션 풀 미사용 : 클라이언트가 요청하는 시점에 DB 연결 - 내용 처리 - DB 종료 - 커넥션 풀 사용 : 커넥션 풀에서 DB 연결 관리, 웹 프로그램에서 JNDI를 이용해 DB 연결 사용** DB 커넥션 풀 동작 과정1) 웹 애플리케이션 서버가.......

Naver Blog

애플리케이션 - 초기화 매개변수

*** 초기화 매개변수- 웹 애플리케이션이 컨테이너에 의해 구동될 때 로딩되는 정보- 공통적으로 참조하는 값을 설정하는 용도로 사용한다.- 초기화 매개변수 값의 공유 범위에 따라 ServletConfig, ServletContext 객체를 통해 사용되며 web.xml에서 설정한다.(서블릿 3.0이상에서는 어노테이션으로 설정 가능하며 어노테이션 사용 시 web.xml에 서블릿을 등록하지 않아도 됨 )** 어노테이션이란?- JEE5부터 새롭게 추가된 문법요소로, 자바 코드에 주석 형식으로 의미 부여- @를 이용한 주석이며, 자바코드에 주석을 달아 특별한 의미를 부여하는 코드이다.- 컴파일러를 위한 정보를 제공하는 용도로도 쓰이며, 컴파일 과정에서 정보를 이.......

Naver Blog

SQL(ORACLE 기준) - DDL(Data Definition Language - 데이터 정의어)

*** DDL(Data Definition Language)- 데이터가 담을 구조를 정의하는 언어로, 테이블과 관련이 많다. - 데이터가 담길 테이블을 생성, 수정, 삭제할 수 있다.* []안의 내용은 생략이 가능하다.** CREATE(테이블 생성) - 테이블 생성하는 방법- 작성* CREATE 속성 값- 데이터 입력 시 문자열을 입력할 경우 ' '를 사용해야한다.** ALTER(수정)- 테이블 수정하는 방법* ALTER 속성 값- 데이터 입력 시 문자열을 입력할 경우 ' '를 사용해야 한다.** DROP, TRUNCATE(삭제)- 테이블 삭제하는 방법- 삭제 시 테이블의 구조, 데이터 모두를 삭제하는 것이므로 주의가 필요하며 복구 불가능하다.- 테이블 구조 자체를 삭제(DROP.......

Naver Blog

JSP / Servlet - 리스너

*** 리스너- 컨테이너에서 발생하는 특정 이벤트 상황에서 실행되는 장치- 여기서 이벤트란, 어떤 사건이 발생하는 걸 의미한다.- 특정 이벤트에 따라 동작하는 인터페이스를 구현한 클래스로, 특정 상황 시 행동하는 걸 '이벤트 핸들링'이라고 하며 주로 웹 애플리케이션 전체의 설계 관점에서 사용한다. - 그냥 간단하게 특수 상황에 행동하는 장치로 보면 된다.** 리스너(인터페이스) 종류- servlet으로 시작하는 리스너는 javax.servlet 클래스- http로 시작하는 리스너는 javax.servlet.http 클래스- 서블릿 관련 리스너는 주로 애플리케이션 내 특정 행동/상황의 관련 기능 수행- 세션 관련 리스너는 주로 세션 내의 특정 행.......

Naver Blog

JSP / Servlet - 리스너(ServletContextListener)

*** 리스너- 컨테이너에서 발생하는 특정 이벤트 상황에서 실행되는 장치- 여기서 이벤트란, 어떤 사건이 발생하는 걸 의미한다.- 특정 이벤트에 따라 동작하는 인터페이스를 구현한 클래스로, 특정 상황 시 행동하는 걸 '이벤트 핸들링'이라고 하며 주로 웹 애플리케이션 전체의 설계 관점에서 사용한다. - 그냥 간단하게 특수 상황에 행동하는 장치로 보면 된다.** ServletContextListener- javax.servlet.ServletContextListener를 임포트 해서 메서드 사용 - ServletContextEvent가 발생 시 호출하는 메서드를 가진 인터페이스- ServletContextEvent 객체를 통해 getServletContext() 메서드를 호출한다.* ServletContextLis.......

Naver Blog

JavaScript - 객체(Window, Screen)

*** window 객체- 팝업창 용도로 쓰이는 객체로 팝업내용과 해당 크기, 위치 등을 조절하면서 사용- 팝업창 용도로 쓰인다고 했지만, 사실 모든 객체의 조상이며 생략이 가능하다.** window.onload - 문서를 위에서 아래로 읽는데 스크립트에서 해당 태그를 찾지 못하는 경우가 있어 에러가 발생하는데, 이를 보완한 방법으로 위치 상관없이 뒤로 순서를 미룬다.- 정적 컨텐츠인 html파일에서 태그 위치 상관 없이 동적 컨텐츠를 서비스하는 Javascript, CSS 등을 실행하는 코드를 작성하는 곳* window.onload 예제 1* 출력- 내용에서 볼 수 있듯이 원래는 test1, test2, test3으로 출력되지만 test1은 window.onload안의 내용이므로 맨 뒤로.......

Naver Blog

JavaScript - DOM

*** DOM(The Document Object Model)- XML, HTML 문서에 접근하기 위한 API로 W3C 표준 권고안이며 HTML, XML 문서의 프로그래밍 interface이다.- DOM은 문서 내의 모든 요소를 정의하고, 문서의 구조화된 표현(structured representation)을 제공- DOM 구조에 접근할 방법을 제공받아 그들이 문서 구조, 스타일, 내용 등 변경할 수 있게 돕는다.- DOM은 문서를 구조화된 nodes(태그를 객체처럼), property(속성), method(메서드)를 갖고 있는 Object로 표현한다.- 웹 페이지를 스크립트 또는 프로그래밍 언어들에서 사용될 수 있게 연결해 주는 역할을 담당한다.* 결국 웹 페이지의 내용들을 객체화해서 객체 하나하나를 살아있는 물건으로 다.......

Naver Blog

JSTL - 핵심 라이브러리 주요 태그(열거식)

*** 핵심 라이브러리 주요 태그** 열거식* []안의 내용은 생략이 가능하다. <c:forEach>- <c:forEach> 조건에 맞춰 안에서 반복 내용을 실행한다. <c:forTokens>- <c:forTokens> 조건에 따라 실행하지만, 자바의 StringTokenizer 클래스 기능을 제공하는 태그이다.- 문자열에서 특정 구분자를 기준으로, 각 문자열을 분할하는 기능을 제공한다.

Naver Blog

JSTL - 핵심 라이브러리 주요 태그(URL 관계식)

*** 핵심 라이브러리 주요 태그** URL 관계식* []안의 내용은 생략이 가능하다. <c:import>- <c:import> 를 통해 특정 URL 페이지를 현재 페이지에 포함하는 <jsp:include>와 동일 기능을 수행한다.* <c:import> 속성 값 <c:redirect>- <c:redirect> 를 통해 자동으로 지정된 페이지로 이동한다.- <jsp:forward>, response.sendRedirect()와 동일한 기능을 수행한다.- 주로 매개변수를 넣고 사용할 때 유용하게 사용할 수 있다.* <c:redirect> 속성 값 <c:url>- <c:url> 태그를 통해 해당 url에 요청값을 넣어 불러올 수 있다. - 주로 매개변수를 넣고 사용할 때 유용.......

Naver Blog

JSTL - SQL 라이브러리 주요 태그(데이터베이스 연결/ 트랜잭션 처리)

*** SQL 라이브러리 주요 태그** 데이터베이스 연결 처리 * []안의 내용은 생략이 가능하다. <sql:setDataSource> - <sql:setDataSource>를 통해 데이터베이스 서버에 접근한다.* DB에 접근하는 방법 1) 미리 작성된 JNDI 리소스 이용2) driver, url, user, password 값을 입력해서 데이터베이스 서버에 접근* <sql:setDataSource> 속성 값- 모든 값이 필수가 아닌 만큼 프로젝트의 META-INF에 있는 Context.xml에 연결정보를 넣고 사용할 수 있다.** 트랜잭션 처리* []안의 내용은 생략이 가능하다. <sql:transaction>- <sql:transaction>를 통해 데이터베이스의 트랜잭션 기능을 사용할 수 있다.- 한.......

Naver Blog

JavaScript - 객체(Math, Date)

*** Math / Date 객체** Math 객체- 숫자 관련 객체- 주로 수 비교나 계산이 필요한 메서드를 사용할 때 쓴다.** Math 객체 주요 메서드- Math.abs(변수) : 절대값 출력- Math.max(변수1 , 변수 2 ...) : 매개변수에서 최대값 출력- Math.pow(변수1, 변수2) : 변수 1을 변수 2만큼 변수 1을 곱합(제곱수)- Math.randow() : 0~1 사이의 랜덤값 출력- Math.ceil(변수) : 소수점 이하 올림- Math.floor(변수) : 소수점 이하 버림- Math.round(변수) : 소수점 이하 반올림- Math.sqrt(변수) : 숫자 제곱근 계산** Date 객체- 날짜 관련 객체- 변수선언방식(ex - var) 변수명 = new Date(), new Date(milliseconds), new Date(dataString) .......

Naver Blog

JSTL - 핵심 라이브러리 주요 태그(일반 작동)

*** 핵심 라이브러리 주요 태그** 핵심* []안의 내용은 생략이 가능하다. <c:catch>- <c:catch> 안에서 실행되는 코드의 예외를 잡아내는 역할* <c:catch> 속성 값 <c:out> - 간단한 내용 출력 시 사용* out 속성 값 <c:remove>- 해당 scope범위의 값 제거* remove 속성 값 <c:set> - 변수에 값 설정하거나, 객체의 멤버변수 값을 설정 * set 속성 값

Naver Blog

JSTL - 핵심 라이브러리 주요 태그(조건식)

*** 핵심 라이브러리 주요 태그** 조건식* []안의 내용은 생략이 가능하다. <c:if>- <c:if> 조건에 따라 안의 내용이 실행된다.- 자바의 if문과 비슷하지만 else문을 지원하지 않는다.* <c:if> 태그 속성 값 <c:choose> / <c:when> / <c:otherwise>- 자바의 if~else if문 or switch문과 비슷하다. - <c:choose>태그 내에 <c:when> 태그가 여러 개 올 수 있다.* <c:choose> 태그 속성 값

Naver Blog

JavaScript - 내장 함수(시간)

*** 내장 함수- 기본적으로 제공하는 함수이다.- 일반적으로 사용하는 alert("경고문구"), console.log("문자열")이 해당한다.- 내장함수의 내용에 따라 함수를 변수로 넣거나 함수만 작성해도 실행된다.** 시간 내장 함수- setTimeout(실행영역,시간) : 실행 후의 시간 이후에 실행영역 한번 실행- setInterval(실행영역,시간) : 실행 후 시간마다 실행영역 반복 실행- clearInterval(setInterval변수) : 해당 setInterval변수 반복 제거* 시간 내장 함수 예제 1 (setTimeout / setInterval / clearInterval)* 출력 (setTimeout / setInterval / clearInterval)- setTimeout()의 내용대로 3초, 6초에 출력된 경고창.......

Naver Blog

JavaScript - 생성자 함수 / Closure / Prototype

*** 생성자 함수- 자바스크립트에서 없는 클래스를 대체하는 방법- 반드시 new 연산자를 사용, 함수 이름의 첫 글자는 대문자로 시작한다.- 변수선언방식(var, let, const..) 변수명 = new 함수명(매개변수); 으로 작성- 이름은 같지만 다른 속성을 가진 다른 객체(인스턴스)를 생성할 수 있다.- 생성자 함수로 인스턴스를 생성하기 전에, 먼저 비어있는 객체를 생성한다.- 여러개의 동일 속성을 가지는 객체를 생성하기 위해 필요하다.- 보통 return 문이 없지만, 객체를 return 시 객체가 반환되고 객체 안의 값을 return 할 경우 해당 값이 반환된다.** 내부 메서드- 생성자 함수가 클래스의 기능을 수행하는 점을 통해 내부 메서드.......

Naver Blog

JavaScript - 객체(String, Array)

*** String 객체, Array 객체 - JavaScript 에서 문자열(String), 배열(Array) 객체- String 객체 : 변수 선언방식(예 - var) 변수명 = "문자열" 으로 작성- Array 객체 : 변수 선언방식(예 - var) 변수명 = new Array(배열 값들) 으로 작성** String 객체 메서드* 길이 / 생성자 / Prototype- String객체명.length : String 객체 길이 반환- String객체명.constructor : String 객체 생성자- String.prototype.변수명 : 객체의 해당 변수를 공유하는 용도* 인덱스 값 출력- String객체명.charAt(해당 인덱스 위치) : 문자열 인덱스 값 반환- String객체명.indexOf("문자") : 문자 인덱스 값 반환(중복값 있을.......

Naver Blog

JDBC - JDBC 구조

*** JDBC- Java 프로그램에서 다른 기종 간의 DB를 표준화된 방법으로 접속 할 수 있도록 만든 API 규격- 각 DB에 접속하고, 데이터를 처리하는 방법이 제각기 달라서 이를 자바 애플리케이션에서 표준화된 방법으로 접속 할 수 있도록 설계된 인터페이스- 애플리케이션에서 JDBC 드라이버 관리자를 통해 DB 드라이버를 로드한 다음 해당 DB에 접속한다. - 대부분의 DBMS는 자바를 지원하며 JDBC 드라이버를 제공한다.(없을수도 있음)*** 자바 기반 웹 애플리케이션 개발에서 JDBC 드라이버를 설치하는 방법1) Java 설치 디렉터리\jre파일\lib\ext에 복사하는 방법- JDK를 중심으로 톰캣 뿐만 아니라 다른 애플리케이션 개발에 사용할 목.......

Naver Blog

JDBC - Oracle 연결 JSP 프로그래밍

*** JDBC - Oracle 연동 프로그래밍- Oracle을 사용하여 DB안의 데이터를 JSP 페이지에서 사용해보자- Oracle 연동이 되어 있다는 가정 하에 실행한다.(필자는 오라클 11g 연동)** 이번 프로그래밍에서 필요한 파일들 jdbcExam01.sql : DB에 필요한 테이블을 작성 파일 jdbcExam01.jsp : DB에 값 넣고 DB값을 표출하는 페이지1) WebContent - Exam05(JDBC) - New - Other - sql파일 next버튼 클릭 1-1 ) file name에 파일명을 작성한 뒤, 하단 3줄에 DB type(오라클 버전) / 연결할 계정 이름 / db 이름을 선택(주로 xe로 되어있음)한 후 finish를 해준다.2) 해당 그림과 같이 나온 sql 파일에서 DB 연동확인을 위해 jdbcExam01.jsp에.......

Naver Blog

JSP - 표현언어

*** 표현 언어(Expression Language, 이하 EL)- MVC 패턴에 따라 뷰 역할을 하는 JSP를 더욱 효율적으로 만들기 위한 방법- 빈즈 속성 값을 더욱 쉽고 제약을 덜 받기에 코드를 단순화하고 간단히 데이터를 표현한다.- JSTL(JSP Standard Tag Library)이 표현 언어에 포함된다. ** EL 특징- '$'로 시작한다하며 모든 내용은 '{표현식}'으로 작성되며 값이 없을경우 출력 X- 표현식에는 기본적으로 '변수 이름' 또는 '객체이름.멤버변수이름'으로 구성- 쿠키, 기본 객체 속성 등 JSP를 위한 표현언어의 기본 객체 / 자바 클래스 메소드 호출 기능 / 기본적인 연산을 제공한다.- ${name}의 형태로 객.......

Naver Blog

JSP - 커스텀 태그

*** 커스텀 태그- JSP의 특징적 요소, JSP 페이지에서 반복적인 프로그램 로직을 캡슐화하기 위해 만들어진 태그- HTML 문서(브라우저에 의해 해석)는 커스텀 태그를 구현할 수 없는 점을 통해 JSP(서버에서 해석)에서 커스텀 태그를 구현한다.- 빈즈의 아쉬운 점인 데이터를 화면에 표시하기 위해 필요한 프로그램적인 요소를 줄이는데 크게 도움이 되지 않은 점을 커스텀 태그가 보완한다.(반복 출력같은거)- 즉, 비즈니스 로직으로부터 화면 표현을 분리 가능 / 비즈니스 로직의 캡슐화 / MVC패턴 구현을 상대적으로 쉽게 구현할 수 있다.** 커스텀 태그를 개발하는 방법1) 태그 파일 기반의 개발 방법(간단한 파일에 적합)- 많은 화면을 생.......

Naver Blog

JSP - JSTL(JSP Standard Tag Library) 설치, 구성, 적용법

*** JSTL(JSP Standard Tag Library)- 태그를 사용해서 JSP코드를 관리하는 라이브러리로 가독성이 좋아진다.- 사용하려면 라이브러리를 다운받아 추가하며, JSP 페이지에서 선언해줘야한다.** JSTL 설치 방법1) mavenrepository 홈페이지 or 아파치 홈페이지로 가서 해당 버전에 맞는 jar파일 or 아파치의 JSTL 구현체를 다운로드한다.(필자는 mavenrepository홈페이지에서 다운로드함)- mavenrepository 홈페이지- 아파치 홈페이지- 선택할 버전의 빨간 부분을 클릭 한 다음 2) 다운로드 받은 파일을 압축풀기한 후, 압축푼 폴더의 lib폴더 위치의 jstl.jar 파일을 찾아 적용할 프로젝트 - WEB-INF - lib 폴더로 붙여 넣는다.3) .......

Naver Blog

DB - Oracle SQL Developer DB 접속 및 테이블 생성, 수정하기

*** Oracle SQL Developer DB 접속 / 테이블 생성, 수정1) 맨 좌측 상단쯤에 접속 창의 '+'를 클릭2) 아래와 같이 이름과 해당 DB의 계정 사용자 이름, 비밀번호를 작성한 뒤 호스트 이름에 자신의 ip 주소 또는 'localhost'를 입력하고 포트에 DB port 번호, SID는 DB에 저장된 SID(주로 XE or ORCL)를 입력한 다음 테스트를 실행해보자.2-1) 테스트를 실행한 뒤 상태 : 성공이 뜨면 접속할 수 있으며 접속 버튼 클릭 시 다음 화면과 같이 뜬다.3-1) 접속된 DB의 워크시트에 'show user;'를 입력한 뒤 드래그해서 'ctrl+enter'를 눌러준다.- 현재 user를 보여준다.4) 이제 사용자.......

Naver Blog

JSP - Bean을 이용한 로그인 판별 구현 1

*** Bean을 이용한 로그인 판별 구현 1- 현재예제는 Dynamic Web Project의 기본 설정이 된 상태입니다. Dynamic Web Project의 기본설정을 알고 싶다면 아래 페이지를 참조해주세요. login_form.html : 로그인 폼이 작성된 페이지 login.jsp : 로그인 폼 작성 페이지로부터 값을 받은 페이지 BeanClass01 class : 로그인 시 필요 beans(아이디, 비밀번호)를 저장한 class*** Bean을 이용한 로그인 구현 1 예제1) WebContent의 특정 폴더에 class 추가(WebContent - 특정 폴더 - New - Others - class)2) personal.study라는 패키지에 BeanClass01 class를 생성한다.(beans class로 사용할꺼기 때문에 public st.......

Naver Blog

JavaScript - 내부 함수

*** 내부 함수- 내부에 존재하는 함수로 함수 실행 시 그 안의 내용을 사용하는 방법(내부에서 선언된 변수를 외부에서 참조할 수 있음)- 자바스크립트의 함수는 리턴 타입을 명시하지 않기 때문에 return으로 값을 반환받는데, 이를 이용한 방법도 포함** 함수 내부 함수- 전체 함수(1번째) 내에 있는 내부함수(2번째 이하)로 사용하려면 전체 함수(1번째) 해당 내부 함수(2번째 이하) 바깥에서 실행해야한다.* 함수가 반환하는 내부함수- 익명함수가 반환 = 내부함수 일 경우, 해당 내부함수를 쓰기 위해 함수 객체 = 함수명()으로 생성해야 한 뒤 함수 객체(매개변수값)를 써야 함수 내의 내부함수를 사용할 수 있다.* 내부함.......

Naver Blog

SQL - WHERE 연산자, GROUP 연산

*** WHERE문 연산자1) 비교 연산자= : 같은 값 조회< : 작은 값 조회<= : 같거나 작은 값 조회> : 큰 값 조회 >= : 같거나 큰 값 조회!=, ^=, <>, NOT 칼럼명 = : 같지 않는 것을 조회NOT 칼럼명 > : 크지 않는 것을 조회2) 논리 연산자조건1 AND 조건2 : 양쪽 조건이 참이여야 한다.조건1 OR 조건2 : 한쪽 조건이라도 참이면 참이다.NOT 조건 : 조건의 반대3) SQL 연산자 - LIKE '비교 문자열' : 비교 문자열을 조회하는데 비교 문자열의 내용에 '_'는 한자리를 의미하며 '%'는 모든 것을 의미한다.- (NOT) BETWEEN 값1 AND 값2 : 값1과 값2 사이의 값(N.......

Naver Blog

SQL - 시퀀스

*** 시퀀스 - 값이 일정한 규칙에 의해서 연속적으로 자동 증가하는 값 --> DB 객체- 테이블에 값을 넣을 때 순차적인 번호를 입력할 경우 입력 시 기존 값+1이 필요한데 시퀀스는 이를 보완한 방법이다.** 시퀀스 생성 ** 시퀀스 사용 예시1) 먼저 시퀀스를 적용할 테이블을 생성한 뒤 시퀀스를 생성하여 해당 값을 테이블에 적용해보자- 시퀀스의 숫자는 시퀀스명.NEXTVAL를 통해 해당 시퀀스의 값이 순차적으로 들어간다.2) 시퀀스 값이 현재 3이였으니 조회를 해보자- 시퀀스명.NEXTVAL, 시퀀스명.CURRVAL로 알 수 있다.- 'SELECT 시퀀스명.NEXTVAL FROM DUAL;' 이란 문구를 실행하면 가상 테이블에서 시퀀스의 값을 볼 수.......

Naver Blog

자바_용어(1)

자바_용어(1)기계어 : 컴퓨터(운영체제)가 이해하고 실행할 수 있는 0과 1로 이뤄진 코드프로그래밍 언어...

Naver Blog

자바_변수(1)

변수 : 값을 저장할 수 있는 메모리의 특정 번지에 붙이는 이름이며 선언 후 어떤 타입의 데이터를 저장하...

Naver Blog

자바_타입(1)

리터럴 : 소스 코드에서 프로그래머에 의해 직접 입력된 값'' : 감싼 하나의 문자 리터럴을 저장...

Naver Blog

자바 기초 1

20.08.24 이클립스 도구에서 프로젝트 클릭 후 f2 누르면 이름 변경 가능 c:java-emp-class-0824 // 자바 ...

Naver Blog

자바 기초 2

// 자바의 정수형 기본 타입은 int, 실수형 기본 타입은 double이다.* casting은 형 변환으로 타입을 변환...

Naver Blog

자바 기초 3

* 자바 연산자- 산술연산자- 증감연산자- 관계 연산자 - 논리 연산자 - * 문제 1. 계산할 값 1,2를 입...

Naver Blog

자바 기초 4

* 문제 1. 3개의 수를 입력하여 순서대로 출력하시오.또는 * 문제 2. 3, 5의 배수인지 확인하는 내용을 ...

Naver Blog

자바 기초 5 ( For문, Case문 )

* 반복문 - 반복문을 통해 반복적인 일을 한번에 해결하는 방법 - for(초기문; 비교문; 증감문){  } 으로 표...

Naver Blog

자바 기초 6 (for문)

* 문제 1) 1부터 10까지의 합을 구하시오. * 문제 2) 500부터 1000까지의 홀수 합을 구하세요. * 문제 3) 1...

Naver Blog

sql group함수, window 함수

그룹함수 컬럼 / 값 >> col1/3, col2/41) ROLLUP(col1,col2) >> (col1(1),1,2,3,4).col1...

Naver Blog

자바 기초 6-2 (for문)

* 기초 6의 문제 변형 풀어보기** for문으로 별 표시하기* 문제 1) 역삼각형 - 처음에 모든 값 출력- 행...

Naver Blog

자바 기초 7 ( for문, while문, do~while문, return, continue)

문제 1) 출력 개수를 순차적으로 늘린 채 출력하고, 출력 개수를 줄여서 출력되는 반복문 사용(중복 f...

Naver Blog

자바 기초 8(for문, Math.random(), 배열, method)

* 문제 1) 입력받은 문자열을 통해 각 행별 숫자만큼 *표시하기 - '0'은 아스키 코드값으로 48...

Naver Blog

파이썬 기초 번외 1(method 작성, 입력, 출력)

* method를 사용하는 이유 : 똑같은 내용을 반복 사용할 경우를 대비- 메소드는 입출력 유무에 따라 4가지...

Naver Blog

자바 기초 9 (배열, 2차원 배열, 로또 번호 비교 )

* 배열- new를 통해 heap영역에 배열의 공간을 만든다. >> 객체화- 주소값을 통해 값을 변경 할 수 ...

Naver Blog

파이썬 기초 1( for문, while문 )

* 해당글은 python 3 버전 기준입니다.* for문(반복문)- for 변수명 in range(변수명): 그림과 같이 들여쓰...

Naver Blog

파이썬 번외 (로또 생성)

앞서, 이 글을 작성하기 전에 BlockDMask님에게 감사를 전합니다.다들 누구나 성인이 되면 로또 한번은 ...

Naver Blog

자바 기초 10 (배열, method, 매개변수)

* 고정 크기 배열과 동적 할당 - 배열 타입 변수명 = new 배열타입[값][값] 은 입력한 채로 초기화- ...

Naver Blog

프로그래밍 사이트

* 프로그래밍 대회나 프로그래머들을 위한 연습문제들이 있다.* 수정 날짜 : 2020.09.171. BAEKJOO...

Naver Blog

파이썬 문제 1(for문, 파일의 소스코드에서 탭을 공백 5개로 바꾸기)

* 현재, 필자는 파이썬을 문제로 공부하기에 파이썬 기초가 매우 부족한 상황이며 초보자의 기준으로 작성...

Naver Blog

파이썬 기초 2( 입출력, 자료형, 비교 연산자, if문 )

* 입력 : input("입력할 내용 ")* 출력 : print("출력하는 내용")- input( )를 통해...

Naver Blog

파이썬 기초 3 (함수, class와 인스턴스)

* 함수- 실행 시 어떤 행위를 시작하고 특정 행동을 반복해서 나타날 때 사용하는 방법- 작성에 따라 입력...

Naver Blog

자바 기초 11( String, 자주 쓰는 method, 전역/지역 변수, call by value, call by reference)

* String 객체는 수정 불가능하다.사진 설명을 입력하세요.String s = new String("Hello&q...

Naver Blog

자바 기초 12(Call by value, Call by reference, 재귀함수, DP(동적계획법), 메모이제이션, factorial )

* 문제 1) 값 전달과 주소 전달 방식을 통해 변수 2개 값을 서로 바꿔주시오.* 문제 2) 입력한 문자열 거꾸...

Naver Blog

자바 문제 1) 피보나치 함수 - BAEKJOON 1003

# 문제는 BAEKJOON 사이트에서 푼 문제* 입력 조건 - 첫째 줄에 테스트 케이스의 개수 T가 주어...

Naver Blog

자바 문제 2) 다리짓기 - BAEKJOON 1010

# 문제는 BAEKJOON 사이트 문제/*한 도시를 동쪽과 서쪽으로 나누는 큰 강이 흐르고 있다.강을 ...

Naver Blog

자바 기초 13 ( 재귀함수, class, 접근제한자, 캡슐화 )

* 자바 기초12에서 배웠듯이 재귀함수는 자기 자신을 호출하는 함수* 호출을 통해 썻던 method를 다시 사용...

Naver Blog

파이썬 기초 4 ( list, tuple, dictionary )

* list- 특정 순서가 있는 항목의 모음- []로 표현하며 안에 값(요소) 표현 할 수 있다.- 접근 방법 중 하...

Naver Blog

자바 기초 14( class변수-field, 객체지향언어(1), final, get/set method )

* class의 변수를 field라고 한다.- 참조 변수를 통해 field값을 초기화 할 수 있다.* 객체 지향 언어의 ...

Naver Blog

자바 문제 3) 행성간 이동거리 구하기 - BAEKJOON 1011

# 문제는 BAEKJOON 사이트 문제https://www.acmicpc.net/problem/1011* 입력 조건- 첫째 줄에 ...