달력

10

« 2019/10 »



 

 

 

 

프로그래밍 과정

https://codedragon.tistory.com/594

 

 

 

 

 

IDE (통합개발환경)

https://codedragon.tistory.com/4577

 

 

 

 

 

네트워크 모델

https://codedragon.tistory.com/3538

 

 

 

 

 

기본 개발환경 구축 예시

구분

설명

개발 tool

Visual Studio, eclipse, Android studio, aptana

JAVA 개발 tool

JDK

웹서버

Apache Tomcat, IIS

DBMS

Oracle, Mysql, Maria DB, NoSQL

 

 


Posted by codedragon codedragon

댓글을 달아 주세요



 

일반적인 DBMS 선정 기준

DBMS(Data Base Management System) 선정하고 설치계획을 수립시 고려할 사항

http://codedragon.tistory.com/5376

 

 

 

 

 

 

 

DBMS 접속 예시 - Mysql Workbench

Mysql Workbench 접속 화면입니다.

MySql DBMS 선택하고, Mysql Workbench Connection 필요한 부분입니다.

 


 

항목

설명

Hostname

연결하고자 하는 Database Ip Address기술

Port

Mysql 경우에는 3306

Username

Database 등록된 User ID

 

https://codedragon.tistory.com/3014

https://codedragon.tistory.com/3017

 

 

 

 

 

 

 

보고서를 작성 예시

설치된 DBMS 대하여 아래에 제시된 내용의 보고서를 작성하시오

- -

1) DBMS IP ADDRESS

2) DBMS PORT 번호

3) DBMS 테이블스페이스 목록

4) 계정 정보(3 이상)

 

DBMS

DBMS IP ADDRESS

DBMS 서비스명

DBMS  PORT번호

테이블스페이스

구분

테이블스페이스

TBSP

계정명

계정 PWD

oracle

xxx.xxx.xxx.xxx

http

1521

system

system

sys

pwd1234

oracle

xxx.xxx.xxx.xxx

http

1521

system

sysaux

system

pwd1472

oracle

 

xxx.xxx.xxx.xxx

em

1158

default

test_tb

honggd

qwe1598

oracle

xxx.xxx.xxx.xxx

em

1158

temp

temp_testtb

hanadul

asd2479

 

 

 

 

 

 

QUERY 연습 1

사용자(honggildong) 계정에 대한 잠금/잠금해제에 관련된 DCL문을 작성

사용자 계정 잠금

ALTER USER honggildong ACCOUNT LOCK;

사용자 계정 잠금해제

ALTER USER honggildong ACCOUNT UNLOCK;

 

 

'test1234'라는 비밀번호를 부여한 사용자(honggildong) 계정 생성

CREATE USER "honggildong" IDENTIFIED BY "test1234";

 

 

 

생성한 "honggildong" 사용자에 대하여 connect role resource role 정의된 권한을 부여한다.

GRANT connect, resource TO "honggildong";

 

 

 


Posted by codedragon codedragon

댓글을 달아 주세요



 

데이터베이스 사용자 계정

데이터베이스 사용자 계정 생성, 사용자 권한 설정, 데이터베이스 사용자 계정의 종류

 

·         테이블스페이스 생성은 테이블, 인덱스, 등의 객체를 저장할 있는 하나 이상의 물리적 데이터 파일로 구성되며, DDL 사용하여 생성한다.

·         데이터베이스의 모든 테이블, 인덱스, 등과 같은 객체의 사용자는 기본적으로 시스템에서 생성되며, 데이터베이스관리자는 추가적으로 사용자 계정을 DDL 통하여 생성할 있다.

·         특정 유형의 SQL문을 실행할 있는 권리나 다른 사용자의 객체를 사용할 있는 권리를 권한 (privilege)이라 하며, 이를 시스템 권한과 객체 권한이라고 한다.

·         데이터베이스의 사용자 계정 권한들을 시스템적으로 설정하기 앞서 데이터베이스관리자는 데이터베이스 객체에 대한 사용자 계정과 권한들에 대한 조사를 통해 명세서를 명확히 작성하여 이를기준으로 관리할 있도록 해야 한다.

http://codedragon.tistory.com/4292

http://codedragon.tistory.com/4328

http://codedragon.tistory.com/4377

 

 

 

 

 

QUERY 연습 1

1) 테이블스페이스의 용량을 확인하는 쿼리문을 작성하시오

SELECT * FROM dba_data_files;

또는

SELECT 테이블스페이스관련정보컬럼리스트.... FROM dba_data_files;

 

 

 

2) 테이블스페이스를 생성하는 쿼리문 작성하시오

CREATE TABLESPACE udata1

DATAFILE '/u02/app/oracle/oradata/orcl/udata1a.dbf'

SIZE 11256K

AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED

UNIFORM SIZE 1M ;

 

AUTOEXTEND 으로 테이블 스페이스 자동 설정(생성한 데이터파일이 채워졌을 경우 자동으로 데이터 파일을 확장하는 방법)

 

 

Extent

·         Extent Segment 할당된 연속적인 블록으로 Database Storage 할당의 논리적인 단위 입니다.

·         Segment Data 넣기 위해 적어도 하나 이상의 Extent 생성되어야 합니다.

 

UNIFORM

·         테이블스페이스가 동일한 크기의 익스텐트로 구성되도록 지정합니다. 크기는 기본적으로 바이트 단위로 지정

·         익스텐트 크기를 KB 또는 MB 단위로 지정하기 위해서는 K 또는 M 사용하여 지정 합니다

·         옵션을 사용하게 되면, DEFAULT Storage 절을 사용할 없습니다.

 

 

 

 

 

QUERY 연습 2

사용자 계정을 생성하여 권한을 부여하고 회수하는 쿼리문 예시입니다.

 

. 사용자 계정을 만들기.

( 테이블스페이스는 이미 만들어져 있다고 가정)

계정명

계정명: sampleuser

패스워드: sample12#$

default 테이블스페이스

디폴트 테이블스페이스명: test_tbs

temporary 테이블스페이스명: imsi_test_tbs

테이블스페이스 사용량

50MB

(System sysaux 테이블스페이스는 사용할 없다)

 

 

CREATE USER sampleuser IDENTIFIED BY "sample12#$"

DEFAULT TABLESPACE test_tbs

TEMPORARY TABLESPACE imsi_test_tbs

QUOTA 0 ON system

QUOTA 0 ON sysaux

QUOTA 50MB ON test_tbs;

 

 

 

. 사용자 권한 주기

.에서 생성한 사용자에 대하여 connect, resource, dba권한 부여

GRANT connect, resource, dba TO "sampleuser";

 

 

 

. 사용자 권한 회수

나항에 부여된 권한 dba권한 회수

REVOKE dba FROM sampleuser;

 

 

 

. 사용자 정보 보기

데이터 딕셔너리를 이용한 사용자 정보 보기 쿼리문 작성

 

SELECT * FROM all_users;

 

 

 

Posted by codedragon codedragon

댓글을 달아 주세요



 

데이터 딕셔너리(Data Dictionary; DD)

https://codedragon.tistory.com/4327

 

 

 

 

 

데이터 딕셔너리/뷰와 쿼리문

구분

쿼리문

특정 테이블의 구조 알아보기

DESC[RIBE] 테이블명;

현재 접속한 사용자가 소유한 모든 테이블의 정보를 조회할 있는

USER_TABLES

현재 사용자가 소유한 모든 테이블의 정보 접근 권한을 부여받은 계정의 객체를 조회할 있는

ALL_TABLES

현재 사용자가 접근할 있는 테이블의 컬럼 정보

ALL_COLUMNS

현재 사용자가 접근할 있는 테이블에 대한 제약조건 정보

ALL_CONS_COLUMNS;

현재 사용자가 접근할 있는 데이터베이스 내에 생성된 모든 테이블, , 동의어, 프로시저 등의 정보

ALL_OBJECTS

https://codedragon.tistory.com/4327

https://codedragon.tistory.com/5858

https://codedragon.tistory.com/4521

https://codedragon.tistory.com/4522

 

 

 

 

 

트랜잭션, 커밋, 롤백

트랜잭션이란 하나의 업무를 처리하기 위해 작은 단위 업무가 여러 존재할 , 단위 업무를 개별적으로 처리하지 않고 하나의 업무로 처리 하게끔 하는 것이다. 단위 업무를 처리하는 도중 오류가 발생했다면 롤백 (ROLLBACK) 명령어를 통해 시작 지점으로 돌아갈 있다. 만약 오류 없이 단위 업무가 정상적으로 종료 되었을 커밋 (COMMIT) 명령어를 통해 실행 결과를 데이터베이스에 반영할 있다.

https://codedragon.tistory.com/4247

https://codedragon.tistory.com/4513

https://codedragon.tistory.com/4514

 

 

 

 

QUERY 연습 1

아래 보기의 스키마를 반영하여 직원(emp) 테이블을 생성하는 SQL문을 작성하시오.

 

직원(emp) 테이블 스키마 

컬럼

조건

직원번호(emp_no)

NUMBER(8),

PK

직원이름(emp_name)

VARCHAR2(10),

NOT NULL

고용일(emp_hdate)

DATE,

시스템일자

부서장 직원번호(emp_mgr_no)

NUMBER(8),

FK,

emp_no

 

CREATE TABLE emp(

emp_no NUMBER(8) CONSTRAINT emp_pk PRIMARY KEY,

emp_name VARCHAR2(10) CONSTRAINT emp_name_nn NOT NULL,

emp_hdate DATE DEFAULT sysdate,

emp_mgr_no NUMBER(8) CONSTRAINT emp_mgr_fk REFERENCE emp(emp_no)

);

 

 

 

 

 

QUERY 연습 2

부서 평균 급여액이 8,000달러 이상인 부서만 조회하여

부서(deptno) 급여(salary) 총액, 평균 급여액을 구하는 SELECT 문을 작성하시오.

SELECT deptno,

SUM(salary)

ROUND(AVG(salary))

FROM emp

WHERE salary>=8000

GROUP BY deptno;

 

 

 

 

 

 

QUERY 연습 3

아래에 학생테이블(student) 있습니다.

2명의 학생정보를 입력(INSERT)하고, 등록금(fee_enter)에서 장학금(scholarship) 제외한 납부금액(total_fee) 계산하는 SQL문장 예시입니다.

 

BUNHO

NAME

E_NAME

TOWN

fee_enter

scholarship

total_fee

1

홍길동

Hong

순천

500

0

500

2

제갈공명

Je

서울

500

300

200

 

INSERT into student VALUES (1, '홍길동', 'Hong', '순천',500,0,0);

INSERT into student VALUES (1, '제갈공명', 'Je', '서울',500,300,0);

UPDATE student SET total_fee = ifnull(fee_enter, 0) - scholarship;

 

 

 

 

 

 

QUERY 연습 4

다음의 SQL 명령문을 순서대로 실행했을 데이터베이스에 영구적으로 반영되는 문장을 순서대로 완성하시오.

INSERT INTO emp(empno, ename) VALUES (999, 'Smith');

SAVEPOINT a;

DELETE emp WHERE empno = 202;

SAVEPOINT b;

UPDATE emp SET ename = 'Clark';

ROLLBACK TO SAVEPOINT a;

INSERT INTO emp(empno, ename) VALUES (8888, 'Tomas');

SAVEPOINT c;

DELETE emp WHERE empno = 100;

COMMIT;

 

영구적으로 반영되는 문장 (AUTO-COMMIT)

DELETE emp WHERE empno = 202;

UPDATE emp SET ename = 'Clark';

INSERT INTO emp(empno, ename) VALUES (8888, 'Tomas');

DELETE emp WHERE empno = 100;

 

 

 

 

 

QUERY 연습 5

MYSQL 데이터사전 스키마를 선택하여, 테이블목록조회, 테이블사양 조회, 테이블 컬럼 조회하는 쿼리문의 예시입니다.

 

 

구분

단계

쿼리문

1

데이터사전 스키마를 선택

use information_schema;

2

테이블목록 조회

show tables;

3

테이블사양 조회

desc tables;

4

테이블 컬럼 조회

desc columns;

 

 

Posted by codedragon codedragon

댓글을 달아 주세요


 

인덱스의 효율적인 활용 방법 

·         전체 데이터 중에서 10%~15% 이내의 데이터를 검색하는 경우에 적용하는 것이 효율적이다.

·         이상의 컬럼이 WHERE절이나 조인(join) 조건으로 자주 사용되는 경우 인덱스를 생성하는 것이 효율적이다.

·         테이블에 저장된 데이터 용량이 상당히 경우 인덱스를 활용하여 검색하는 것이 효율적이다.

·         인덱스를 통한 검색 속도의 증대를 이유로 모든 테이블에 대하여 인덱스를 생성하는 것은 비효율적이다.

 

https://codedragon.tistory.com/4352

 

 

 

 

 

 

인덱스 적용 기준, 인덱스 컬럼 선정, 설계시 고려사항

https://codedragon.tistory.com/4352

 

 

 

 

 

 

 

 

 

다중행 서브 쿼리

https://codedragon.tistory.com/4500

 

 

 

 

 

 

기존에 존재하는 테이블을 이용하여 새로운 테이블 생성

·         CREATE TABLE 테이블명 AS SELECT 컬럼리스트.... FROM 원본테이블명; 구문의 형식으로 만들 있다.

·         원본 테이블의 인덱스는 복사하지 않는다.

·         null not null 제약조건만 복사되며 다른 제약조건은 복사되지 않는다.

·         LONG 타입의 컬럼은 복사할 없다.

 

https://codedragon.tistory.com/4512

https://codedragon.tistory.com/4381

 

 

 

 

 

 

(role)

·         사용자가 데이터베이스에 접속할 있도록 기본적으로 미리 정의 되어 제공되는 롤이 있다.

·         DBA롤은 사용자들이 소유한 데이터베이스 객체를 관리하고 사용자들을 작성하고 변경, 제거할 있는 권한을 보유한 롤이다.

·         사용자 롤을 정의하기 위해서는 롤을 생성하고, 생성된 롤에 권한을 부여한다.

·         특정 사용자에게 적용된 롤을 회수하기 위해서는 REVOKE ROLE 구문을 사용하고 , 롤을 삭제하기 위해서는 DROP ROLE 구문을 사용한다.

 

https://codedragon.tistory.com/4375

 

 

 

 

 

 

데이터베이스 권한 종류

https://codedragon.tistory.com/4375

 

 

 

 

 

 

대표적인 시스템 권한

시스템 권한

설명

CREATE USER

새롭게 사용자를 생성하는 권한

DROP USER

사용자를 삭제하는 권한

DROP ANY TABLE

임의의 테이블을 삭제할 있는 권한

QUERY REWRITE

함수 기반 인덱스를 생성하는 권한

BACKUP ANY TABLE

임의의 테이블을 백업할 있는 권한

CREATE SESSION

테이터베이스에 접속할 있는 권한

CREATE TABLE

사용자 스키마에서 테이블을 생성할 있는 권한

CREATE VIEW

사용자 스키마에서 뷰를 생성할 있는 권한

CREATE SEQUENCE

사용자 스키마에서 시퀀스를 생성할 있는 권한

CREATE PROCEDURE

사용자 스키마에서 함수를 생성할 있는 권한

RESOURCE

·         객체를 생성, 변경, 제거 있는 권한

·         DDL, DML 명령어를 사용이 가능합니다.

CONNECT

·         데이터베이스에 연결할 있는 권한

DBA

·         데이터베이스 관리자 권한

https://codedragon.tistory.com/4312

 

 

 

 

 

 

QUERY 예시 1

employees 스키마에서 현재 부서에 해당하는 직원번호, 부서번호, 발령시작일 가지를 조회한 결과를 서브 쿼리의 활용하여 테이블(t_current_dept_emp) 생성하는 SQL문장 예시입니다.

CREATE table t_current_dept_emp

SELECT e.emp_no AS emp_no, d.dept_no AS dept_no, d.from_date AS from_date

FROM dept_emp d, employees e

WHERE d.emp_no = e.emp_no AND d.to_date > now();

 

 

 

 

 

 

QUERY 예시 2

다음의 보기에서 제시된 개의 테이블을 조인하여 이름, 부서코드, 부서명을 직원테이블의 나이순으로 출력하는 SQL문을 작성 예시입니다.


 

SELECT s_emp.name, s_emp.dept_id, s_dept.dept_name

FROM s_dept, s_emp

WHERE s_dept.dept_id = s_emp.dept_id

ORDER BY s_emp.age;

 

 

 

 

 

 

QUERY 예시 3

사용자에게 권한을 부여하고 회수하는 명령어 예시입니다.

 

사용자 : sampleuser

접근 호스트 : localhost

대상 데이터베이스 : sakila

대상 테이블 : 모든 테이블

 

. 사용자 권한 주기

- SELECT, EXCUTE 권한을 sakila 테이블에 부여

GRANT SELECT, EXCUTE ON sakila.* TO 'sampleuser'@'localhost'

 

. 사용자 권한 회수

)항에 부여된 권한 EXCUTE 권한 회수 

 

REVOKE EXCUTE ON sakila.* FROM 'sampleuser'@'localhost'

 

 


Posted by codedragon codedragon

댓글을 달아 주세요


 

 

HTML DOM(Document Object Model) 구조도

https://codedragon.tistory.com/5383

 

 

 

 

 

 

사용성 테스트(Usability Test) 단계

https://codedragon.tistory.com/5378

 

 

 

 

 

 

 

HTML5 문서구조 도식도

https://codedragon.tistory.com/3344

 

 

 

 

 

 

UI구현을 위한 환경 구축의 단계

단계

설명

1

웹서버의 역할을 정확히 이해하고 웹서버의 종류를 조사하여 특징을 정리한다.

2

다양한 클라이언트의 종류와 웹브라우저의 호환성을 확인한다.

3

웹서버를 구축하는 프로그램이나 방법을 조사한다.

4

편집도구의 종류를 조사하고 작성한다.

5

작성한 HTML문서를 실행한다.

 

 

 

 

 

 

 

웹사이트에 접속하기 위한 로그인 과정의 처리 절차(Process Diagram 예시)


 

 

 

 

 

 

호환성 테스트 예시

다양한 브라우저 환경에서 호환성을 체크할 있는 테스트 케이스입니다.

구분

테스트 내용

1

최근의 브라우저와 구형 브라우저에서 작동하는가?

2

이미지를 끄거나 지원하지 않아도 내용에 접근이 가능한가?

3

텍스트 브라우저에서도 동작하는가?

4

상세한 메타데이터를 포함하고 있는가?

5

브라우저 크기의 범위 안에서 사이트가 작동하는가?

6

CSS 끄거나 지원하지 않아도 내용에 접근이 가능한가?

 

 

Posted by codedragon codedragon

댓글을 달아 주세요



 

UI 시나리오 작성시 고려 사항

고려사항

설명

완전성

(Complete)

누락되는 것이 없도록 최대한 상세하게 기술해야 하며 해당 시스템보다는 사용자의 사용 방법에 기초하여 작성해야 한다.

일관성

(Consistent)

전체 화면과 UI 요소들은 일관성을 갖고 있어야 한다.

가독성

(Readable)

표준화된 템플릿 등을 활용하여 작업자 간에 문서 통한 소통이 원활하여야 하며 문서를 쉽게 읽을 있어야 한다.

이해성(Understandable)

추상적이거나 보편적으로 사용하지 않고 이해하기 어려운 용어의 사용은 피한다.

수정 용이성

(Modifiable)

수정이나 개선 사항에 대해서 시나리오에 반영하는 것이 쉬워야 한다.

추적 용이성

(Traceable)

변경 사항에 대해서 언제, 어떤 부분이 어떤 이유로 변경 되었는지에 대해 쉽게 추적할 있어야 한다.

https://codedragon.tistory.com/5374

 

 

 

 

 

좋은 UI 특징 원칙 (감성과 인지적 품질)

구분

특징 원칙

가독성 & 시인성

·         너무 많은 버튼이 디스플레이 되거나 너무 복잡한 아이콘은 사용자에게 부담

·         UI 보고 의미를 혼동 없이 쉽게 읽고 정확하게 이해할 있게 설계

접근성 & 관용성

·         불특정 다수의 사용자도 시스템 UI 접근할 있도록 하고 동시에 다양한 사용자의 문화적/언어적 차별이 없이 사용자 요구를 반영

메타포(Metaphor, 은유)

·         현실세계의 대상물을 메타포로서 인터페이스에 옮겨 놓은 아이콘들은 직관적 사용성에 효과적

·         메타포의 활용은 문화적, 언어적 장벽들을 자연스럽게 극복

피드백

·         작업을 수행 피드백은 가능한 즉각적으로 제공

https://codedragon.tistory.com/5374

 

Posted by codedragon codedragon

댓글을 달아 주세요


 

 

배열의 선언과 동시에 초기화 방법

 

int[] arr=

new int[3];

·         인스턴스 배열의 선언 (배열 생성)

int[] arr=

new int[3]{1, 2, 3};

·         데이터형식과 배열의 크기 명시

·         배열의 크기 명시하고 초기화할 데이터들을 중괄호 나열

·         배열 선언되면서 배열 요소 초기화

int[] arr=

new int[ ]{1, 2, 3};

·         배열의 크기 생략

·         초기화 되는 데이터의 통해서 길이의 계산이 가능하므로 배열의 크기(길이)정보 생략하여 배열 선언

int[] arr= {1, 2, 3};

 

 

·         데이터형식과 배열의 크기 모두 생략

·         이렇게 줄여서 표현하는 것도 가능

·         new연산자,  데이터형식, 괄호([]), 배열 크기에 대한 부분 생략 가능

·         배열 선언시 배열이 초기값을 지정한 경우 초기화 값의 수에 따라 배열의 크기가 자동으로 결정되기 때문에 배열의 크기를 넣지 않아도 됩니다.

 

여러개의 Data 초기값으로 지정할 경우에는 { } 이용합니다.

{} 배열을 초기화할 경우 배열 선언과 동시에만 가능하며 배열 선언 후에는 {} 초기화할 없습니다.

int[] arr;

arr= {1, 2, 3};

 

 


'Development > Java' 카테고리의 다른 글

배열의 접근방법  (0) 2019.10.23
Java - 연산자 종류  (0) 2019.10.21
배열의 선언과 동시에 초기화 방법  (0) 2019.10.20
OpenJDK 설치하기 - ojdkbuild  (0) 2019.10.17
OpenJDK 설치하기 - openJDK  (0) 2019.10.17
초기화 블록(initialization block)  (0) 2019.10.13
Posted by codedragon codedragon

댓글을 달아 주세요


 

 

 

운영체제(OS)

https://codedragon.tistory.com/4098

 

 

 

 

 

운영체제 구분 (서버 & 클라이언트)

https://codedragon.tistory.com/5244

 

 

 

 

 

운영체제 종류

https://codedragon.tistory.com/9390

https://codedragon.tistory.com/4099

 

 

 

 

 

CUI vs GUI

https://codedragon.tistory.com/4697

 

 

 

 

 

 

시작 프로그램 확인하기 - msconfig

https://codedragon.tistory.com/9511

 


'Security > System' 카테고리의 다른 글

시분할 시스템, 시분할 기법(Time-Shared) 특징  (0) 2019.11.09
프로세스 종류  (0) 2019.10.28
1.Summary - 1.운영체제 기초 활용하기  (0) 2019.10.20
백업(Backup), 백업(Backup)의 중요성  (0) 2019.10.17
맥 OS(Mac OS)  (0) 2019.10.14
운영체제 종류  (0) 2019.09.21
Posted by codedragon codedragon

댓글을 달아 주세요



 

 

프로토콜(protocol)

·         본래 의미는 외교에서 의례 또는 의정서를 의미합니다.

·         1965 마릴이 컴퓨터와 컴퓨터 사이에 메시지를 전달하는 과정을 프로토콜라 불렀습니다.

·         컴퓨터가 메시지를 전달하고, 메시지가 제대로 도착했는지 확인하며, 메시지가 제대로 도착하지 않으면 메시지를 재전송하는 일련의 방법을 가리키는 것으로 컴퓨터간에 정보를 주고받을 때의 통신방법에 대한 규약(규칙과 약속)이라는 의미를 가지게 되었습니다.

 

 

http://bit.ly/33DBCtk

http://bit.ly/2Bxu673

http://bit.ly/2MRucvK

https://en.wikipedia.org/wiki/Protocol

 

 

 


'Security > Network' 카테고리의 다른 글

OSI 7 Layer의 특징  (0) 2019.11.30
OSI 7 Layer 송신 및 수신 측 매핑  (0) 2019.10.21
프로토콜(protocol)  (0) 2019.10.20
비콘(Beacon) 활용 사례 (시니라오)  (0) 2019.10.17
비콘(Beacon)의 장단점  (0) 2019.09.21
IP SHOWTIME  (0) 2019.07.01
Posted by codedragon codedragon

댓글을 달아 주세요