반응형

1. 일반 통신 : return시 호출할 페이지입력, Model에 결과 값을 담아서 JSP에 받음, parameter 어노테이션이 @RequestParam

@RequestMapping(value = "xxxx.do" )
public String name(@RequestParam Map<String, Object> param, Model map) throws Exception {
map.addAttribute( "param1", commercialService .getParam1());
map.addAttribute( "param2", commercialService.getParam2());

   return "xxxxx" ;
}



2. Ajax 통신 : return시 값을 바로 던짐, 
Ajax 통신 success : javascript에서 result로 받음, 
parameter 어노테이션이 @RequestBody 임, @ResponseBody어노테이션으로 JSON형태로 받음

@RequestMapping(value = "xxxx.do" )
public @ResponseBody List<AdongVO> xxxx(@RequestBody SggVO sggVO) throws Exception {
return commercialService .getAdongList(sggVO);
}


3. Ajax 통신 예제 2
@RequestMapping(value = "xxxxx.do" )
public @ResponseBody Map<String, Object> xxx(@RequestBody ResidentVO residentVO){
Map<String, Object> result = new HashMap<String, Object>();
result.put( "list",commercialService .commercialResult(residentVO));
if(residentVO.getBizCd().size() > 0 ){
result.put( "biz",commercialService .getBizPoint(residentVO));
}
return result;
}


반응형
반응형

WKT : geometry를 텍스트형태로 표현것, 공간객체와 공간 참조간의 변화 표준(OGC표준), 

DB간에 동일한 정보를 전송하고 저장함.

반응형

'개발의 흔적 > GIS' 카테고리의 다른 글

지역 경계 구분(행정동과 법정동)  (0) 2018.05.30
반응형

행정동경계 > 집계구 > 소지역
- 행정동경계 : 시도, 시군구, 읍면동
- 집계구 : 5년마다 갱신하는 인구센서스 조사영역의 조사 단위 
(거주인구를 기준으로 거주인구가 적으면 집계구 단위는 커짐)
- 소지역 : 집계구 단위를 더 쪼개서 소지역으로 분류

법정동과 행정동의 차이
- 법정동 : 시도 2자리, 시군구 3자리, 읍면동 3자리, 리 2자리를 법적으로 정한 코드
- 행정동 : 행정업무 상 사람이 너무 많아 동사무소 하나만 세우기 어려울 때 
혹은 사람이 너무 적어서 동사무소 하나도 낭비일 때 행정동으로 나누거나 묶어서 동을 관리함

반응형

'개발의 흔적 > GIS' 카테고리의 다른 글

GIS 용어 정리  (0) 2018.05.30
반응형



행복의 비밀은 

자신이 좋아하는 일을 하는 것이 아니라,

자신이 하고 있는 일을 좋아하는 것이다.




반응형
반응형

웹 접근성 점검 규칙

가) 대체 택스트 제공

① <img>태그의 alt 속성 제공 여부 - alt 속성의 정확성은 판단하지 않음 

- alt 속성이 없고 longdesc도 제공하지 않으면 불합격 

- alt 속성을 제공하면 합격으로 평가 예를 들어, 속성으로 null 값을 제공(alt="")하더라도 합격, 부적합한 속성 값을 제공(alt= "....")하더라도 합격 


② <area>태그의 alt 속성 제공 여부 - alt 속성의 정확성은 판단하지 않음 

- alt 속성이 없고 longdesc도 제공하지 않으면 불합격 예를 들어, 속성으로 null 값을 제공(alt="")하더라도 합격, 부적합한 속성 값을 제공(alt= "....")하더라도 합격 


③ <input> type="image" 태그의 alt 속성 제공 여부 - alt 속성의 정확성은 판단하지 않음 

- alt 속성이 없고 longdesc도 제공하지 않으면 불합격 예를 들어, 속성으로 null 값을 제공(alt="")하더라도 합격, 부적합한 속성 값을 제공(alt= "....")하더라도 합격 


④ <applet> 태그의 alt 속성 제공 여부 - alt 속성의 정확성은 판단하지 않음 

- alt 속성이 없고 longdesc도 제공하지 않으면 불합격 예를 들어, 속성으로 null 값을 제공(alt="")하더라도 합격, 부적합한 속성 값을 제공(alt= "....")하더라도 합격




나) 제목제공

① 웹문서의 <title>태그의 '유효한 값'의 제공 여부 

- 문서에 <title> 태그가 없으면 불합격 

- 문서에 <title> 태그가 있으나 값이 null("")이거나 white space(\n, \r, \t, " " 등)이면 불합격 

※ 여기서 유효한 값이란 공백문자가 아닌 한영문 문자열을 제공해야 한다는 의미입니다. 


② <frame>태그의 title 속성 제공 여부 - title 속성의 정확성은 판단하지 않음 

- <frame> 태그에 title 속성 제공 안 하면 불합격 

- <frame> 태그에 title 속성 있으나 값이 null("")이거나 white space(\n, \r, \t, " " 등)이면 불합격 


③ <iframe>태그의 title 속성 제공 여부 - title 속성의 정확성은 판단하지 않음 

- <iframe> 태그에 title 속성 제공 안 하면 불합격 

- <iframe> 태그에 title 속성 있으나 값이 null("")이거나 white space(\n, \r, \t, " " 등)이면 불합격 




다) 기본언어정의

① <html> 태그의 lang 속성을 제공 여부 

- <html> 태그에 lang 속성 제공 안하면 불합격 

- lang 속성을 제공하더라도 속성값이 ISO 표준에서 정의한 언어 또는 확장 언어가 아니면 불합격 

※ K-WAH4.4에서는 'EN-US'와 같이 기본 언어를 확장한 언어 규칙에 대응하도록 개선하였습니다. 따라서 K-WAH4.4은 기존 버전보다 더 정확한 기본언어 평가가 가능합니다. 아울러 오류 유형을 확장하여 '기본언어 미제공'과 제공하는 기본언어 코드가 잘못된 경우를 의미하는 '기본언어 오류'로 세분화하였습니다. 


② DTD 형식에 따른 기본 언어 제공 방법을 평가 

- html 4.01/html5 

<html> 태그에 lang 속성을 제공하지 않으면 불합격(기본언어 미제공) 

lang 속성을 제공하지만 속성값이 ISO 표준에서 정의한 언어 또는 확장언어가 아니면 불합격(기본언어 오류) 

- xhtml 1.0/xhtml 1.1 

<html> 태그에 lang 속성과 xml:lang 속성을 둘 다 제공하지 않으면 불합격(기본언어 미제공) 

lang 또는 xml:lang 속성을 제공하지만 속성값이 ISO 표준에서 정의한언어 또는 확장언어가 아니면 불합격(기본언어 오류) 




라) 새창열림 사전공지

① <a> 태그를 이용한 새창 열기시에 사전 경고 제공 여부 

- <a> 태그에서 target 없으면 합격 

- <a> 태그에서 target="_blank" 이면 합격 

- <a> 태그에서 target="_self" 이면 합격 

- <a> 태그에서 target="_top" 이면 합격 

- <a> 태그에서 target="_parent" 이면 합격 

- <a> 태그에서 target="프레임명" 이면 합격 

이 외의 경우에 

- title 속성이 "창", "윈도", "window" 등의 문자열을 포함하고 있으면 합격 

- 링크텍스트가 "창", "윈도", "window" 등의 문자열을 포함하고 있으면 합격 

- <a> ... <img alt=" ">... </a>와 같이 <a> 로 둘러쌓인 이미지 태그의 alt 속성이 "창","윈도","window" 등의 문자열을 포함하고 있으면 합격 

- 이외에는 불합격 

- onclick = window.open( ) 과 같은 소스 코드를 사용하는 경우 winodw.open( )의 파라메터가 "_blank", "_self", "_parent", "_top" 중의 하나를 포함하고 있으면 합격 


② <area> 태그를 이용한 새창 열기시에 사전 경고 제공 여부 

- <area> 태그의 target 없으면 합격 

- <area> 태그의 target="_blank" 이면 합격 

- <area> 태그의 target="_self" 이면 합격 

- <area> 태그의 target="_top" 이면 합격 

- <area> 태그의 target="_parent" 이면 합격 

- <area> 태그의 target="프레임명" 이면 합격 

이 외의 경우에 

- title 속성이 "창","윈도","window" 등의 문자열을 포함하고 있으면 합격 

- alt 속성이 "창","윈도","window" 등의 문자열을 포함하고 있으면 합격 

- 이외의 경우는 불합격 

- onclick = window.open( ) 있을 때 winodw.open()의 파라메터값 중 "_blank", "_self", "_parent", "_top" 중의 하나를 포함하고 있으면 합격 




마) 레이블제공

① <input> 요소에 레이블 또는 title 제공 여부 - 레이블 또는 title의 정확성 여부는 판단하지 않음 

- <input> 태그의 id="..." 속성 값이 label for = "..."로 선언되었으면 합격 

- <input> 태그의 title 속성을 제공하면 합격(id제공시에도 title 우선 적용) 

- <input> 태그의 title 속성을 제공하나 빈 문자열이면 불합격(제공하지 않은 것으로 간주) 

- <label><input .../></label> 과 같이 label 태그내에 input 태그를 포함시킨 암묵적 방법은 합격 


② <textarea> 요소에 레이블 또는 title 제공 여부 - 레이블 또는 title의 정확성 여부는 판단하지 않음 

- <textarea> 태그의 id="..." 속성 값이 label for = "..."로 선언되었으면 합격 

- <textarea> 태그의 title 속성을 제공하면 합격(id제공시에도 title 우선 적용) 

- <textarea> 태그의 title 속성을 제공하나 빈 문자열이면 불합격(제공하지 않은 것으로 간주) 

- <label><input .../></label> 과 같이 label 태그내에 input 태그를 포함시킨 암묵적 방법은 합격 

이외의 경우 불합격 


③ <select> 요소에 레이블 또는 title 제공 여부 - 레이블 또는 title의 정확성 여부는 판단하지 않음 

- <select> 태그의 id="..." 속성 값이 label for = "..."로 선언되었으면 합격 

- <select> 태그의 title 속성을 제공하면 합격(id제공시에도 title 우선 적용) 

- <select> 태그의 title 속성을 제공하나 빈 문자열이면 불합격(제공하지 않은 것으로 간주) 

- <label><input .../></label> 과 같이 label 태그내에 input 태그를 포함시킨 암묵적 방법은 합격 

이외의 경우 불합격 




바) 마크업 문법

① 아이디 중복 선언 

- 한 페이지에서 동일한 아이디를 중복 사용하면 오류 


② 속성 이름 선언 

- 한 페이지에서 속성 이름을 중복 사용하면 오류 


③ 태그 열고 닫음 

- 태그 열고 닫음이 일치하지 않으면 오류 


④ 닫는 태그 누락 

- 여는 태그에 대한 닫는 태그가 없으면 오류 


⑤ 여는 태그 누락 

- 닫는 태그에 대한 여는 태그가 없으면 오류 


⑥ 태그의 정확한 중첩 관계 

- 태그의 열고 닫는 순서의 중첩 관계가 엇갈리면 오류 

반응형
반응형
비밀번호 만료 (ORA-28002: the password will expire within 7 days)
1. 기간확인 
SQL> select resource_name, resource_type, limit
         from dba_profiles ;
 
RESOURCE_NAME                  RESOURCE_TYPE    LIMIT
------------------------------ ----------------    -------
PASSWORD_LIFE_TIME             PASSWORD            180
 
 
2. password_life_time 값을 unlimited로 바꾸어 줌
 
SQL> alter profile default limit PASSWORD_LIFE_TIME unlimited ;
          Profile altered.
 
RESOURCE_NAME                    RESOURCE_TYPE     LIMIT
------------------------------ ----------------      -------
PASSWORD_LIFE_TIME             PASSWORD              UNLIMITED
 

3. 해당 유저의 password 속성 변경
 
현재 상태 조회
      SQL> select username, account_status, lock_date, expiry_date
              from dba_users
              where username = 'SCOTT' ;
 
          USERNAME             ACCOUNT_STATUS             LOCK_DATE    EXPIRY_DATE
          -----------------   -------------------             ------------    -------------
          SCOTT                   EXPIRED(GRACE)                                      18-DEC-13
 
해당 유저의 password 속성 변경
 
       SQL> alter user scott identified by password ;
                User altered.
 
 
속성변경 확인
 
        SQL> select username, account_status, lock_date, expiry_date
                 from dba_users
                 where username = 'SCOTT' ;
 
               USERNAME          ACCOUNT_STATUS     LOCK_DATE       EXPIRY_DATE
               ----------------- -------------------    ------------      -------------
               SCOTT                  OPEN
 
               ---> account_status 값이 OPEN,   expiry_date 값이 NULL 값으로 변경된것을 확인



Oracle 접속이 안될때 (ORA-01017: invalid username/password; logon denied) 
1. system 계정으로 접속
sys/manager 

2. 계정 이름 확인
select * from dba_users;

3. lock 해제(계정이름 입력)
alter user 'username' account unlock;

4. 비밀번호 변경(계정이름, 비밀번호 입력)
alter user username identified by userpassword;






반응형
반응형
1.    Database 관련 Naming Rule
가.    Database Schema Name
1)    규칙
█    Database Profile 이름을 의미함
█    DB Alias 이름과 동일하게 함
█    영문 대문자로 작성함
█    Database Short Name의 길이는 최대 8자리를 넘을 수 없음
█    Database Short Name은 각 Site의 Unique한 Name을 사용함

2)    표기 방식
<Database Short Name>
예) TOURDB, ETKP, TKS…

나.    Table Name
1)    규칙
█    테이블임을 표시하기 위해 테이블 명 뒤에 ‘_TB’ 라는 구분을 사용함
█    테이블명은 대문자로 사용함
█    시스템 구분 코드와 모듈구분코드로 업무 영역을 구분함
█    의미있는 테이블명은 3단어까지 사용할 수 있음
█    단어와 단어 사이는 ‘_’로 구성함
█    각 단어는 최대 8자리까지 사용함
█    구분명은 Table의 특성을 나타냄
█    예로는 Master, Detail, Control, Summary, Trigger, History 등이 있음

2)    표기 방식
<시스템 구분> + ‘_’ + <의미있는 테이블명> + ‘_’ + TB
예) 사용자 테이블 : ACT_USERS_TB

다.    Column Name
1)    규칙
█    물리명은 영문 대문자를 이용함. 논리명을 사용자가 알 수 있는 정도에서 명사 및 명사형동사를 사용함
█    Column에 대한 자리수는 총 12자리로 하며, 제한은 없음
단, 사용하는 Database의 특성에 따라 제한될 수 있음
█    Word와 Word 사이에는 ‘_’로 구분함
█    한 Word는 8자리를 넘을 수 없음
█    모든 Column은 Dictionary List에 등록된 약어사전 및 자료사전을 기초로 작성함
█    Dictionary List에 등록되지 않은 약어는 책임자의 동의 하에 등록함
█    Column Name은 약어의 조합으로 구성
█    컬럼명에 컬럼을 대표하는 접미사를 사용하여 컬럼명의 성격을 나타냄.

2)    표기방식
<의미있는 컬럼명> 혹은 <의미있는 컬럼명> + ‘_’ + 접미사
종종 자주 사용하는 접미사는 다음과 같다.

접미사
내용
설명
_CD
CODE
주로 코드 테이블의 코드 , 각종 코드에 사용된다 . 숫자나 문자로 이루어진 코드에 해당되며 , 숫자나 문자의 부분이 의미가 있는 경우에 코드를 사용한다 . 대부분 PK 해당한다 .
) 대분류 코드 CTGRY_CD, 시도코드 SIDO_CD, 사용자 그룹 코드 USER_GROUP_CD
_NM
NAME
코드에 대한 명칭에 주로 사용된다 . 논리명이 이름 , 명칭인 경우에 해당된다 .
) 사용자이름 USER_NM, 자원명 RES_NM,
중분류 코드명 DVSN_NM, 메뉴명 MENU_NM
_NO
NUMBER
숫자로만 이루어진 경우 , 주로 논리명이 번호인 경우에 사용.
) 주민등록번호 JUMIN_NO, 조문번호 JO_NO,
게시물번호 BOARD_NO
_SQ
SEQUENCE
오라클의 Sequence, MSSQL Identity 경우에 사용한다 . 숫자 일련번호로 PK 설정할 경우 SQ 사용한다 . MSSQL Identity 경우 주로 _ID 사용하는 경우가 많은데 , 사용자 아이디 USER_ID ID 의미가 틀려 SQ 사용한다 .
) 작업번호 WORK_SQ, 이력번호 HISTORY_SQ
_ID
ID
주로 사용자 아이디의 경우에 사용한다 .
) 사용자아이디 USER_ID, 등록자아이디 REG_ID
_DT
DATE
날짜의 경우 사용한다. DT 날짜 타입이 DATE형인 경우에만 사용한다. 보통 날짜의 경우 CHAR(8)형으로 20050718 식으로 저장을 많이 한다 . 이런 경우에는 _YMD 사용한다.
) 삭제일자 DEL_DT, 변경일자 CHG_DT
_YMD
YYYYMMDD
날짜의 경우 사용한다. 날짜 타입이 CHAR 인경우 사용한다 . 년월일인 경우 _YMD 사용하고 , 년월형식으로 CHAR(6) 저장될 경우 _YM 사용한다. 년도 , , 일자 인경우에는 YEAR, MONTH, DAY 등의 컬럼명을 사용한다 .
_GB
구분
구분값을 나타낼 사용한다 . CD 주로 코드테이블을 별도로 사용할 적당하고, 테이블 없이 코드상에서 구별할 사용한다 . 가령 사용자구분 필드가 있을 일반사용자 , 내부사용자가 있다면 별도의 사용자 그룹테이블로 분리하여 사용할 경우 GROUP_CD 필드명이 되지만, 코드상에서 일반 (G), 내부 (I) 사용하기로 결정했다면 GROUP_GB 필드명을 사용하면 된다 .
) 통계구분 STAT_GB
_ST
STATE
상태값이다 . 주로 CHAR(1) 형식을 사용한다 .
) 사용자 상태 USER_ST
_FL
FLAG
플레그값이다 . 종종 삭제하지 않는 테이블에 삭제플레그를 많이 사용된다 . 값은 0/1 이나 Y/N 많이 사용한다.
) 삭제여부 DEL_FL, 요청여부 REQ_FL
_ORD
ORDER
순서를 나타낼 사용한다 .
) 컬럼순서 COLUMN_ORD
_CNT
COUNT
) 조회수 VIEW_CNT
_AMT
AMOUNT
) 재고량 STOCK_AMT
_SUM
SUM
) 분기합계 QTR_SUM, 년도합계 YEAR_SUM

 

3)    순서규칙
█    기본적으로 관계형 모델에서 열(Column)의 순서는 의미가 없음. 그러나, 물리적인 형태로 생성되어 관리될 때에는 보다 효율적인 저장공간의 관리를 위해 다음 순서에 따라 우선순위를 결정함
█    Primary Key가 우선함
█    Primary Key내에서는 Index 의미에 따라 순서를 결정함
█    Not Null Columns이 우선함

█    Not Null Columns 내에서는 Foreign Key, Attributes 순서로 함
█    Null Columns 내에서는 다음의 규칙에 따라 순서를 결정함
█    Fixed Length Columns이 우선함(Date,Number,Char순)
█    Smaller Length Column이 우선함

라.    Index Name
1)    규칙
█    해당하는 테이블명 뒤에 ‘_IX’를 붙여 index임을 명확히 함
█    대문자를 사용함
█    일련번호는 01 ~ 99까지 사용할 수 있음
█    MSSQL의 경우 클러스터드 인덱스와 넌 클러스터드 인덱스를 구분하여 작성함. 클러스터드 인덱스 _IXC를 사용하며, 넌 클러스터드 인덱스는 일반 인덱스 명 룰을 따름.
█    테이블에 인덱스가 하나만 존재할 경우 일련번호를 사용하지 않아도 됨.

2)    표기 방식
<시스템 구분> + ‘_’ + <의미있는 테이블명> + ‘_’ + IX{<일련번호>}
예) Table명 ‘I01_MASTER_TB’의 Index : I01_MASTER_IX01

마.    Primary Key Name
1)    규칙
█    영문 대문자로 작성함
█    해당하는 테이블명의 맨 뒤에 ‘_PK’라는 구분을 사용함

2)    표기방식
<시스템 구분> + ‘_’ + <의미있는 테이블명> + ‘_’ + PK
예) Table 명 ‘AC_USERS_TB’의 Primary Key : AC_USERS_PK

바.    Foreign Key Name
1)    규칙
█    영문 대문자로 작성함
█    해당하는 테이블명의 맨 뒤에 ‘_FK’라는 구분을 사용함
█    일반적으로 테이블명과 컬럼명까지 사용하나, OBJECT의 명칭이 길어져서 테이블명을 기준으로 작성함.
█    일련번호 : 1 ~ 9

2)    표기방식
<시스템 구분> + ‘_’ + <의미있는 테이블명> + ‘_’ + FK{<일련번호>}
예) Table 명 ‘I01_MASTER_TB’의 Foreign Key : I01_MASTER_FK1

사.    Stored Procedure Name
1)    규칙
█    길이는 큰 제한이 없으나 오라클의 OBJECT NAME 길이 제한은 있음.
█    해당하는 테이블명의 맨 뒤에 ‘_SP’라는 구분을 사용함
█    기능명은 복수개 사용이 가능하면 3개의 단어를 넘지 않도록 함
█    기능을 나타내는 명칭이 하나일 경우 일련번호를 생략해도 됨.
█    단어간에는 ‘_’로 구분함
█    업무룰에 해당되지 않는, 혹은 특정 테이블에 해당되지 않는 DBMS 전반적인 프로시저의 경우, 시스템 프로시저로 작성하는 경우에는 시스템구분 과 테이블명을 생략하고 간단히 작성할 수 있다. 예) 스키마 스크립트 GENERATION – GENERATE_SP
█    오라클의 경우 패키지 내부의 프로시저의 경우 패키지 명칭에 시스템구분을 사용하므로, 프로시저나 함수명에 시스템구분 코드를 넣지 않는다. 또한 기능에 따른 일련번호를 사용하지 않고 OOP의 기능인 Method Overloading 의 기능을 사용하여 작성한다. 또한 명칭은 Camel 표기법을 사용하여 작성한다. 예) 사용자를 가져오는 경우 getUsers()

2)    표기방식
<시스템 구분> + ‘_’ + <의미있는 테이블명> + ‘_’ + <기능명>{<일련번호>} + ‘_’ + SP
예) ‘I01_MASTER_TB’ 테이블에서 데이타 입력에 대한 Procedure
    : I01_MASTER_INS01_SP
기능명
명칭
설명
INS
INSERT
단일 테이블의 단순 INSERT 작업인 경우 , 사용자 테이블에 데이터 입력 프로시저의 경우 업무룰이 복잡하여 여러 테이블에 걸쳐 삽입 작업이 된다면 ( 서버측 트랜잭션이 구현된다면 ) INS 사용하지 않고, REG 사용한다 .
UDT
UPDATE
단일 테이블의 단순 UPDATE 작업의 경우
DEL
DELETE
단일 테이블의 단순 삭제인 경우
LST
LIST
SELECT 문을 사용하여 조회하는 경우
REG
REGISTER
등록작업 트랜잭션을 사용하여 여러 테이블에 입력 작업이 이루어질
MOD
MODIFY
수정작업 트랜잭션을 사용하여 여러 테이블에 수정 작업이 이루어질
REM
REMOVE
삭제작업 트랜잭션을 사용하여 여러 테이블에 삭제 작업이 이루어

 


아.    Function Name
1)    규칙
█    길이는 제한이 없으며 영문 대문자를 사용함
█    해당하는 테이블명의 맨 뒤에 ‘_FC’라는 구분을 사용함을 원칙으로 하나, 함수명이 길어서 사용상 불편할 경우, 특정 시스템에 국한하지 않고, 항상사용하는 라이브러리 같은 함수의 경우 구분가능한 Short Name을 사용해도 무방하다.
█    단어간에는 ‘_’로 구분함
█    시스템 함수로 작성한 경우에는 접미사를 사용하지 않고, 간략한 함수이름을 사용한다. 예) INSTR, LEASTR(@x bigint, @y bigint) 등
█    오라클의 경우 패키지 내부의 함수의 경우에는 프로시저의 해당 규칙에 따른다. 즉 시스템구분 코드와 접미사를 사용하지 않고, Camel 표기법으로 간략하게 작성한다.

2)    표기방식
<시스템 구분> + ‘_’ + <기능명> + ‘_’ + FC
예) ‘I01_MASTER_TB’ 테이블에서 주소명를 가져오기 위한 Function
    : I01_GET_ADDRESSNAME_FC(p_AddressCode IN Char) 내지는
: getAddressName(p_AddressCode IN Char)

자.    Table Trigger Name
1)    규칙
█    영문 대문자로 작성함
█    일련번호는 01 ~ 99까지 사용 가능함

2)    표기방식
<시스템 구분> + ‘_’ + <의미있는 테이블명> + ‘_’ + <Timing><Trigger Event><일련번호> + ‘_’ + TG
 Timing : B(Before), A(After)
 Trigger Event : I(Insert), D(Delete), U(Update)

예) ‘I01_MASTER_TB’ 테이블에서 데이타 입력 후에 실행되는 Trigger
: I01_MASTER_AU01_TG

차.    View Name
1)    규칙
█    길이는 제한이 없으며, 영문 대문자로 작성함
█    해당하는 테이블명의 맨 뒤에 ‘_VW’라는 구분을 사용함
█    일련번호는 01 ~ 99까지 사용할 수 있음

2)    표기방식
<시스템 구분> + ‘_’ + <의미있는 테이블명><일련번호> + ‘_’ + VW
예) AC_ADMINL_USER_VW

카.    Sequence Name <오라클의 경우에만 해당>
1)    규칙
█    길이는 제한이 없으며 영문 대문자를 사용함
█    해당하는 테이블명의 맨 뒤에 ‘_SQ’라는 구분을 사용함

2)    표기방식
<시스템 구분> + ‘_’ + <의미있는 테이블명> + ‘_’ + SQ
예) ‘I01_MASTER_TB’ 테이블의 Sequence : I01_MASTER_SQ

타.    Package Name<오라클의 경우에만 해당>
1)    규칙
█    길이는 제한이 없으며 영문 대문자를 사용함
█    해당하는 테이블명의 맨 뒤에 ‘_PKG’라는 구분을 사용함

2)    표기방식
<시스템 구분> + ‘_’ + <의미있는 패키지명> + ‘_’ + PKG
예) 검색엔진에서 사용하는 자원에 관련된 패키지 : SCH__PKG

파.    Check 제약조건
1)    규칙
█    길이는 제한이 없으며 영문 대문자를 사용함
█    기존의 명칭룰에 해당하는 접미사를 사용하지 않고, 예외적으로 접두어 CK_를 사용한다. 일반적으로 CHECK와 DEFAULT 제약조건은 특정 테이블에 한정시켜서 작성하기 보다는 시스템 전반에 걸쳐서 사용이 가능하므로 예외규정을 둔다.

2)    표기방식
CK + ‘_’ + <의미있는 CHECK명>
예) 이메일 체크 : CK_EMAIL
예) 성별 체크 : CK_SEX

하.    Default 제약조건
1)    규칙
█    길이는 제한이 없으며 영문 대문자를 사용함
█    기존의 명칭룰에 해당하는 접미사를 사용하지 않고, 예외적으로 접두어 DF_를 사용한다. 일반적으로 CHECK와 DEFAULT 제약조건은 특정 테이블에 한정시켜서 작성하기 보다는 시스템 전반에 걸쳐서 사용이 가능하므로 예외규정을 둔다

2)    표기방식
DF + ‘_’ + <의미있는 DEFAULT명>
예) Null String Default – DF_NULLSTR

예) 0(Zero) Default – DF_ZERO


반응형
반응형
IE표기법 (정보공학 표기법)
식별관계 : 부모테이블의 주키가 자식테이블의 주키 또는 주키군에 속한 관계
비식별 관계 : 부모테이블의 주키가 자식테이블의 일반 속성에 속한 관계

※ 실선관계는 식별 관계, 점선관계는 비식별 관계



<1:n 관계의 종류와 물리적으로 구현한 모양>

1번째 , identifying , mandatory, optional 이경우는 B는 A가 없다면 존재 할 수 없다.
반면 A는 B가 없어도 괜찮은 관계이다. 물리적 DB구성은 B테이블에 A의 PK를 FK로 하며, B테이블의 PK로 들어온다.

2번째 , identifying , mandatory, mandatory 이 경우는 B도 A없이 존재 할 수 없고, A또한 B가 없다면 존재하기 힘든 관계이다.
물리적 DB구성은 B테이블 경우는 1번째 경우와 동일하다. A의 ID가 PK로 들어온다.
그렇지만 1:n의 1의 관계에서 B의 ID를 PK로 물고 있는 경우가 없기 때문에 무결성을 지키기 위해서는
별도의 처리 로직 (TRIGGER 혹은 어플리케이션단계에서의 처리) 이 필요하다.

3번째 , non-identifying , optional, optional 이 경우는 A가 없이도 B는 존재 할 수 있으며, B는 A의 ID를 PK가 아닌 일반 속성으로 가지게 된다.
그리고 B의 입장에서 A또한 있어도 그만 없어도 그만인 optional 속성이므로 A의 ID 컬럼이 null이 들어와도 무방하게 된다.

4번째 , non-identifying , mandatory, optional 이 경우는 3번째와 마찬가지로 A없이 B가 존재할 수 있다.
그렇지만, B의 입장에서 A는 필수 조건이다. 따라서 B의 주키는 일반속성으로 들어와 있긴 하지만 not null 속성을 가져야만 한다.



기본키와 외래키
기본키
- 행을 고유하게 구분해 주는 최소의 정보
- 기본 키가 없는 테이블은 관계에 사용할 수 없고, 정렬과 검색할 때 처리속도가 늦음. 따라서 가능하면 기본 키를 만들어 두는 것이 좋음.
외래키
-  다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합을 의미
- 릴레이션 간의 관계를 표현할 때 사용

기본키와 외래키의 속성
- 기본키는 고유한 값을 가져야 함
- 외래키는 기본키와는 달리 그 값이 고유해도 좋고 중복되어도 됨. 다만 인덱스가 되어 있으면 연결하는데 있어 성능의 향상을 가져올 수 있음
- 관련되어 있는 외래키와 기본키의 필드 이름 또는 인덱스 이름이 같을 필요는 없지만 가능하면 동일한 이름이거나 또는 한쪽 이름이 다른 쪽 이름의 일부를 구성하도록 이름을 짓는 것이 편리함.
- 외래키는 기본키와 데이터 형식이 같아야 함.
- 기본 키는 Null 값이 될 수 없으며 항상 고유 인덱스를 가져야 함.
- 외래 키는 Null 값이 될 수 있음.
- 두 개 이상의 필드로 이루어진 외래 키 필드 중 Null인 필드가 있으면 모든 필드가 Null이 됨.


반응형
반응형



행복한 사람은 가진 것을 사랑하고,

불행한 사람은 가지지 못한 것을 사랑한다.



반응형
반응형
CSS
cascade style sheets, HTML의 프리젠테이션을 제어하는데 사용
- cascade : 작은 폭포
- 모든 스타일 시트를 하나로 모아 일치하는 모든 선언들을 정렬(저자, 독자, 브라우저 순/ id>클래스>태그를 가지고 있으면 높은 우선순위 )한 후
충돌하는 규칙들에 대해 가장 나중에 나타나는것일 수록 중요함 → cascade
- style sheet : 스타일 문서


문법
ex) div{
width : 150px;
}

선택자{
속성 : ;
}


외부 스타일 시트와 연결 하기
<link type= "text/css" rel= "stylesheet" herf= "lounge.css" >
link : 외부의 정보와 링크로 연결하기위한 태그
type= "text/css" : 이 정보의 유형은 css 스타일 시트임을 나타냄
rel= "stylesheet" : HTML 파일과 연결하려고 하는 것 사이의 관계를 명시
herf= "lounge.css" : 스타일 시트의 위치


선택자
- tag명 선택자
p{     }
: p태그의 스타일을 정의

- 클래스를 위한 선택자 생성
p.greentea{     }
클래스명이 greentea인 p태그의 스타일을 정의(.greentea : 클래스명이 greentea인 태그의 스타일을 정의)
※ 엘리먼트들은 한 개 이상의 클래스를 가질 수 있음 

- id가 있는 선택자 생성
p#footer{     }
id가 footer인 p태그의 스타일을 정의 (#footer : id가 footer인 태그의 스타일을 정의)

- 자손 선택
div h2{     }
div의 자손인 h2의 스타일정의

#elixirs h2{     }
elixirs라는 id를 가진 엘리먼트의 자손인 h2의 스타일정의


색 나타내기
body : rgb(100% 100% 100%);
% : 빨간색과 초록색, 파란색의 비율을 명시(흰색이 출력)

body : rgb(255 255 255);
숫자 : 색을 명시하기위한 측정단위(흰색이 출력)

body : #CC6600;(오랜지색 출력)
hex코드 : 2자리씩 끊어서 16진수를 10진수로 바꾸면 숫자로 명시된 측정단위가 생성
 

박스 모델(Box model : CSS가 엘리먼트를 보는 방법)

- border의 속성
border-color : #FFFFFF;
border-width : 0px;
border-style : solid;
border-top-color : white;
border-rigth-width : medium;
border-bottom-style : dashed;
...

- padding의 속성
padding-top : 10px;
padding-right : 20px;
padding-bottom : 30px;
padding-left : 40px;
padding : 10px 20px 30px 40px;

- margin의 속성
margin-top : 10px;
margin-right : 20px;
margin-bottom : 30px;
margin-left : 40px;
margin : 10px 20px 30px 40px;



span과 div
<span></span> : 인라인 콘텐츠를 논리적으로 분리하는 방법가
<div></div> : 블록 수준의 콘텐츠를 논리적으로 분리하는 방법


의사-클래스(a태그 링크, a태그 방문, a태그 마우스오버)
- 가짜 클래스(클래스인것 처럼 스타일 명시)

a:link{
}
방문하지 않았을때 링크

a:visited{
}
방문 했을때 링크

a:hover{
}
마우스를 링크에 올려뒀을때


유용한 속성 
cursor : poniter; → 마우스 모양을 손가락 모양으로 변경 
!important; → CSS 우선 적용


Tab효과
<div style= "margin-left:32px;">내용 </div>
<pre></pre>  태그(<br/>이 들어감)


엘리먼트의 전체 너비
콘텐츠 영역의 너비 + 패팅 + 테두리+ 마진의 너비


엘리먼트들의 흐름
- 블록 엘리먼트
· 각각의 엘리먼트 사이에 라인 브레이크를 가지고 위에서 아래로 흐름
· 두개의 블록 엘리먼트를 위/아래로 겹쳐 놓으면, 위의 margin-bottom과 아래 margin-top을 합치고 합쳐진 마진의 높이는 두개중 큰 마진의 높이가 됨.
- 인라인 엘리먼트 : 수평방향으로 왼쪽에서 오른쪽으로 위에서 아래로 흐름


레이아웃
float 속성(liquid 레이아웃)
- 일반적인 엘리먼트들의 흐름으로부터 float속성의 엘리먼트를 제거 시키고 뜨게 만듦.
- 엘리먼트들의 흐름에 영향을 받지 않기 때문에 겹치는 문제가 발생함
- float된 엘리먼트의 너비(width)만큼 일반적인 엘리먼트들에게 margin을 부여한다.
- float된 엘리먼트들과의 해상도변경시 겹치는 부분은 clear : right속성을 사용
- 사용법
margin : 0px 10px 10px 10px;
width : 280px;
float : right;

고정된 레이아웃(frozen 레이아웃)
<body>의 바로 밑에 div를 생성한 후 width 속성을 부여

jello 레이아웃
- 고정된 레이아웃에 margin-left : auto;와 margin-right : auto;속성을 부여하면 콘텐츠가 중앙에 오게됨.



position속성(absolute, fixed, relative 포지셔닝)
- absolute 포지셔닝
· position : absolute;
· 일반적인 엘리먼트들의 흐름으로 부터 position속성의 엘리먼트를 제거 시킴.
· topright속성을 이용하여 페이지의 상단과 오른쪽으로 부터의 거리에 위치 시킨다.
· width속성을 이용하여 넓이를 지정한다.
· top, right, bottom 혹은 left 속성이 명시된 픽셀에 따라 엘리먼트가 위치함.
· 해상도변경시 엘리먼트들과의 겹치는 오류가 생김.
· 가장 가까운 조상 엘리먼트에 대해 상대적인 위치를 명시함.

- fixed 포지셔닝
· position : fixed;
· 페이지가 아닌 윈도우의 가장자리로 부터의 거리에 위치 시킴

- relative 포지셔닝
· position : relative;
· 흐름안에서 엘리먼트를 유지시킬수 있고, 그것만의 예약된 공간을 가짐

· 가장 가깝게 포함된 블록드로부터의 절대적 좌표가 아닌 엘리먼트의 실제 위치로 부터의 거리리에 위치시킴.


반응형

+ Recent posts