광고 제거 - hosts 변경
파일 위치 C:\Windows\System32\drivers\etc
# nateOn
127.0.0.1 adimg.nate.com
127.0.0.1 cyad.nate.com
127.0.0.1 cyad1.nate.com
127.0.0.1 nateon.nate.com
127.0.0.1 nateonevent.nate.com
127.0.0.1 nokw.nate.com
127.0.0.1 shop.nate.com
2018년 2월 22일 목요일
윈도우즈 단축키
shutdown -s -t (초 단위 시간)
지정한 시간(초) 뒤에 종료
shutdown -p
즉시 종료
shutdown -r -t (초 단위 시간)
지정한 시간(초) 뒤에 재 시작
shutdown -a
shutdown 명령 취소
shutdown -f
실행 중인 응용 프로그램을 경고없이 강제로 종료
예시)
shutdown -s -f -t 0 : 시스템 바로 종료
shutdown -r -f -t 0 : 시스템 바로 재 시작
기본 명령어
notepad : 메모장
regedit : 레지스트리 편집기
calc : 계산기
mspaint : 그림판
clipbrd : 클립북 뷰어
cmd : 도스창
dxdiag : 다이렉트X 진단도구
iexplore : 익스플로러
mstsc : 원격 데스크탑
osk : 화상 키보드
winword : MS Office 워드
powerpnt : MS Office 파워포인트
excel : MS Office 엑셀
outlook : MS Office 아웃룩
wordpad : 워드패드
winmine : 지뢰찾기
sndvol : 볼륨조절
rstrui : 시스템 복원
msconfig : 시작프로그램 제어 등 시스템 상태 기초 환경설정
sysedit : 시스템구성편집기 (autoexec.bat , config.sys ,win.ini, system.ini)
제어판 명령어
control : 제어판
Access.cpl : 내게 필요한 옵션
appwiz.cpl : 프로그램 추가/제거
bthprops.cpl : 블루투스장치설정
desk.cpl : 디스플레이 등록정보
firewall.cpl : Windows방화벽
hdwwiz.cpl : 새하드웨어추가마법사
inetcpl.cpl : 인터넷등록정보
intl.cpl : 국가및언어옵션
irprops.cpl : 적외선포트 설정
joy.cpl : 게임컨트롤러
main.cpl : 마우스등록정보
mmsys.cpl : 사운드및 오디오장치등록정보
ncpa.cpl : 네트워크연결
netsetup.cpl : 네트워크설정마법사
nusrmgr.cpl : 사용자계정
nwc.cpl : 네트워크 게이트웨이
odbccp32.cpl : ODBC데이터원본 관리자
powercfg.cpl : 전원옵션 등록정보
sysdm.cpl : 시스템등록정보
telephon.cpl : 전화및모뎀 옵션
timedate.cpl : 날짜 및 시간 등록정보
wscui.cpl : Windows보안센터
wuaucpl.cpl : 자동업데이트
Sapi.cpl : 텍스트 음성 변환설정
control admintools : 관리도구
control folders : 폴더옵션
control userpasswords : 사용자 계정
관리콘솔 명령어
certmgr.msc : 인증서
ciadv.msc : 인덱싱서비스
ntmsmgr.msc : 이동식저장소
ntmsoprq.msc : 이동식저장소 운영자 요청
secpol.msc : 로컬보안정책
wmimgmt.msc : WMI(Windows Management Infrastructure)
compmgmt.msc : 컴퓨터 관리
devmgmt.msc : 장치관리자
diskmgmt.msc : 디스크 관리
dfrg.msc : 디스크 조각모음
eventvwr.msc : 이벤트 뷰어
fsmgmt.msc : 공유폴더
gpedit.msc : 로컬 컴퓨터 정책
lusrmgr.msc : 로컬 사용자 및 그룹
perfmon.msc : 성능모니터뷰
rsop.msc : 정책의 결과와 집합
secpol.msc : 로컬 보안설정
services.msc : 서비스
C:\WINDOWS\system32\Com\comexp.msc : 구성요소서비스
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\mscorcfg.msc : .NET Configuration .1
2017년 1월 23일 월요일
windows 10
* 컨트롤 모음
새 폴더를 만든 후 이름 변경
controls.{ED7BA470-8E54-465E-825C-99712043E01C}
내 PC 내의 폴더 제어
[레지스트리 위치]
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
\Explorer\MyComputer\NameSpace\
다운로드 : {088e3905-0323-4b02-9826-5d99428e115f}
사진 : {24ad3ad4-a569-4530-98e1-ab02f9417aa8}
음악 : {3dfdf296-dbec-4fb4-81d1-6a3438bcf4de}
문서 : {d3162b92-9365-467a-956b-92703aca08af}
동영상 : {f86fa3ab-70d2-4fc7-9c99-fcbf05467f3a}
바탕화면 : {B4BFCC3A-DB2C-424C-B029-7FE99A87C641}
3D개체 : {0DB7E03F-FC29-4DC6-9020-FF41B59E513A}
새 폴더를 만든 후 이름 변경
controls.{ED7BA470-8E54-465E-825C-99712043E01C}
내 PC 내의 폴더 제어
[레지스트리 위치]
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
\Explorer\MyComputer\NameSpace\
다운로드 : {088e3905-0323-4b02-9826-5d99428e115f}
사진 : {24ad3ad4-a569-4530-98e1-ab02f9417aa8}
음악 : {3dfdf296-dbec-4fb4-81d1-6a3438bcf4de}
문서 : {d3162b92-9365-467a-956b-92703aca08af}
동영상 : {f86fa3ab-70d2-4fc7-9c99-fcbf05467f3a}
바탕화면 : {B4BFCC3A-DB2C-424C-B029-7FE99A87C641}
3D개체 : {0DB7E03F-FC29-4DC6-9020-FF41B59E513A}
2016년 7월 14일 목요일
Visual Studio short-cut
Ctrl + F | 찾기 |
Ctrl + Shift + F | 파일에서 찾기 |
Ctrl + Space | NameSpace |
Ctrl + Shift + Space | Parameter |
[drag] + Alt | 현재 커서 위치부터 움직인 커서 위치까지 블록 |
Ctrl + M, L | 전체 + 버튼으로 만들기 |
Ctrl + M, M | 커서 위치가 속한 곳을 + 버튼으로 만들기 |
Ctrl + M, L | 선택된 곳을 +버튼으로 만들기 |
Shift + Delete | 커서가 위치한 줄 삭제 |
Ctrl + L | 커서가 위치한 줄 삭제, 선택된 줄단위로 삭제 |
Ctrl + K, C | 선택 영역 주석 달기 |
Ctrl + K, U | 선택 영역 주석 없애기 |
Alt + F8 | 택 영역 코드 탭 정리하기 |
F7 | 빌드 |
Ctrl + Alt + F7 | 전체 다시 빌드 |
F5 | 빌드 + 실행(F7을 누른후 실행한 결과와 같다.) |
Ctrl + F5 | 빌드 없이 실행 |
F9 | 브레이크 포인트 설정 |
F10 | 줄단위 실행 |
F11 | 코드 단위 실행 |
F12 | 정의로 이동 |
Ctrl + '-'키 | 이전 커서 위치로(F12로 변수를 탐색한후, 다시 돌아오는데 사용) |
Ctrl + Shift + '-'키 | 다음 커서 위치로 |
Ctrl + F2 | 커서가 위치한 줄에 책갈피 설정 |
F2 | 다음 설정된 책갈피로 커서 이동 |
Ctrl + Shift + F2 | 설정된 책갈피 모두 삭제 |
Ctrl + F10 | 커서 위치까지 실행 |
Alt + P + P | 프로젝트 속성 |
2016년 5월 12일 목요일
CSS (Syntax and Selectors)
CSS Syntax and Selectors
참조 : w3schools.com
CSS Syntax
CSS Selectors
The element selector
div {
color : #FF00FF;
display : block;
}
소스 내의 모든 <div> 요소를 선택한다.
The ID selector
#contents_box { color : green; }
요소내의 [ id ="contents_box" ] 인 요소를 선택한다.
CSS 에서는 hash(#) 를 사용하여 구분한다.
ID는 페이지 내에서 유일 해야한다.
The class selector
.center { text_align : center; }
요소내의 [ class="center" ] 인 요소를 선택한다.
CSS 에서는 period(.) 를 사용하여 구분한다.
HTML 내에서 class 는 여러 번 지정 될 수 있다.
<div class="center search_box user">
특정 HTML element의 class 만 선택 할 수도 있다.
div.center { text_align : center;}
Grouping selector
같은 스타일을 가진 요소가 있다면 뭉쳐서 표현할 수 있다.
div { color : red; }
p { color : red; }
table { color : red; }
div, p, table { color : red;}
CSS comments
주석 처리는 /* 로 시작하여 */ 로 마친다.
div {
color : red;
/* single comment */
display : block;
}
/* multi-line
comment
*/
CSS combinators
Descendant Selector
(space)
하위의 모든 요소를 선택한다
아래 예시는 div 요소 내의 모든 p 요소를 선택한다.
div p { color : red; }
HTML
<p> black font </p>
<div>
<p> red font </p>
<p> red font </p>
<h1>
<p> red font </p>
</h1>
</div>
<p> black font </p>
Child selector
(>)
지정된 요소의 바로 아래 요소들 만을 선택한다.
아래 예시는 div 를 부모로 하는 p 요소들 만 선택한다.
div > p { color : red; }
HTML
<p> black font </p>
<div>
<p> red font </p>
<p> red font </p>
<h1>
<p> black font </p>
</h1>
</div>
<p> black font </p>
Adjacent sibling selector
(+)
지정된 요소와 같은 부모를 가진 바로 다음 요소를 선택한다.
div + p { color : red; }
HTML
<p> black font </p>
<div>
<p> black font </p>
<p> black font </p>
<h1>
<p> black font </p>
</h1>
</div>
<p> red font </p>
General sibling selector
(~)
지정된 요소와 같은 부모를 가진 요소들을 선택한다.
div ~ p { color : red; }
HTML
<p> red font </p>
<div>
<p> black font </p>
<p> black font </p>
<h1>
<p> black font </p>
</h1>
</div>
<p> red font </p>
Attribute selectors
Pseudo-classes
Selector Levels
CSS Specificity
http://www.nextree.co.kr/p8468/
참조 : w3schools.com
CSS Syntax
CSS Selectors
The element selector
div {
color : #FF00FF;
display : block;
}
소스 내의 모든 <div> 요소를 선택한다.
The ID selector
#contents_box { color : green; }
요소내의 [ id ="contents_box" ] 인 요소를 선택한다.
CSS 에서는 hash(#) 를 사용하여 구분한다.
ID는 페이지 내에서 유일 해야한다.
The class selector
.center { text_align : center; }
요소내의 [ class="center" ] 인 요소를 선택한다.
CSS 에서는 period(.) 를 사용하여 구분한다.
HTML 내에서 class 는 여러 번 지정 될 수 있다.
<div class="center search_box user">
특정 HTML element의 class 만 선택 할 수도 있다.
div.center { text_align : center;}
Grouping selector
같은 스타일을 가진 요소가 있다면 뭉쳐서 표현할 수 있다.
div { color : red; }
p { color : red; }
table { color : red; }
div, p, table { color : red;}
CSS comments
주석 처리는 /* 로 시작하여 */ 로 마친다.
div {
color : red;
/* single comment */
display : block;
}
/* multi-line
comment
*/
CSS combinators
Descendant Selector
(space)
하위의 모든 요소를 선택한다
아래 예시는 div 요소 내의 모든 p 요소를 선택한다.
div p { color : red; }
HTML
<p> black font </p>
<div>
<p> red font </p>
<p> red font </p>
<h1>
<p> red font </p>
</h1>
</div>
<p> black font </p>
Child selector
(>)
지정된 요소의 바로 아래 요소들 만을 선택한다.
아래 예시는 div 를 부모로 하는 p 요소들 만 선택한다.
div > p { color : red; }
HTML
<p> black font </p>
<div>
<p> red font </p>
<p> red font </p>
<h1>
<p> black font </p>
</h1>
</div>
<p> black font </p>
Adjacent sibling selector
(+)
지정된 요소와 같은 부모를 가진 바로 다음 요소를 선택한다.
div + p { color : red; }
HTML
<p> black font </p>
<div>
<p> black font </p>
<p> black font </p>
<h1>
<p> black font </p>
</h1>
</div>
<p> red font </p>
General sibling selector
(~)
지정된 요소와 같은 부모를 가진 요소들을 선택한다.
div ~ p { color : red; }
HTML
<p> red font </p>
<div>
<p> black font </p>
<p> black font </p>
<h1>
<p> black font </p>
</h1>
</div>
<p> red font </p>
Pseudo-classes
Selector Levels
CSS Specificity
http://www.nextree.co.kr/p8468/
2016년 3월 29일 화요일
HTTP 상태 코드
== 1xx (조건부 응답) ==
요청을 받았으며 작업을 계속한다.
이 상태의 상태 코드는 상태-라인과 선택적 헤더(컴퓨터에서 출력될 때 각 페이지 맨 윗부분에 자동으로 붙는 부분)만을 포함하는 임시의 응답을 나타내고 빈 라인에 의해서 종결된다. HTTP/1.0이래로 어떤 1XX 상태 코드들도 정의 되지 않았다. 서버들은 1XX 응답을 실험적인 상태를 제외하고 HTTP/1.0 클라이언트(서버에 연결된 컴퓨터)로 보내면 안 된다.
* 100(계속): 요청자는 요청을 계속해야 한다. 서버는 이 코드를 제공하여 요청의 첫 번째 부분을 받았으며 나머지를 기다리고 있음을 나타낸다.
* 101(프로토콜 전환): 요청자가 서버에 프로토콜 전환을 요청했으며 서버는 이를 승인하는 중이다.
* 102(처리, RFC 2518)
== 2xx (성공) ==
이 클래스의 상태 코드는 클라이언트가 요청한 동작을 수신하여 이해했고 승낙했으며 성공적으로 처리했음을 가리킨다.
* 200(성공): 서버가 요청을 제대로 처리했다는 뜻이다. 이는 주로 서버가 요청한 페이지를 제공했다는 의미로 쓰인다.
* 201(작성됨): 성공적으로 요청되었으며 서버가 새 리소스를 작성했다.
* 202(허용됨): 서버가 요청을 접수했지만 아직 처리하지 않았다.
* 203(신뢰할 수 없는 정보): 서버가 요청을 성공적으로 처리했지만 다른 소스에서 수신된 정보를 제공하고 있다.
* 204(콘텐츠 없음): 서버가 요청을 성공적으로 처리했지만 콘텐츠를 제공하지 않는다.
* 205(콘텐츠 재설정): 서버가 요청을 성공적으로 처리했지만 콘텐츠를 표시하지 않는다. 204 응답과 달리 이 응답은 요청자가 문서 보기를 재설정할 것을 요구한다(예: 새 입력을 위한 양식 비우기).
* 206(일부 콘텐츠): 서버가 GET 요청의 일부만 성공적으로 처리했다.
* 207(다중 상태, RFC 4918)
* 208(이미 보고됨, RFC 5842)
* 226 IM Used (RFC 3229)
== 3xx (리다이렉션 완료) ==
클라이언트는 요청을 마치기 위해 추가 동작을 취해야 한다.<ref name="RFC_2616"/>
* 300(여러 선택항목): 서버가 요청에 따라 여러 조치를 선택할 수 있다. 서버가 사용자 에이전트에 따라 수행할 작업을 선택하거나, 요청자가 선택할 수 있는 작업 목록을 제공한다.
* [[HTTP 301|301]](영구 이동): 요청한 페이지를 새 위치로 영구적으로 이동했다. GET 또는 HEAD 요청에 대한 응답으로 이 응답을 표시하면 요청자가 자동으로 새 위치로 전달된다.
* [[HTTP 302|302]](임시 이동): 현재 서버가 다른 위치의 페이지로 요청에 응답하고 있지만 요청자는 향후 요청 시 원래 위치를 계속 사용해야 한다.
* [[HTTP 303|303]](기타 위치 보기): 요청자가 다른 위치에 별도의 GET 요청을 하여 응답을 검색할 경우 서버는 이 코드를 표시한다. HEAD 요청 이외의 모든 요청을 다른 위치로 자동으로 전달한다.
* 304(수정되지 않음): 마지막 요청 이후 요청한 페이지는 수정되지 않았다. 서버가 이 응답을 표시하면 페이지의 콘텐츠를 표시하지 않는다. 요청자가 마지막으로 페이지를 요청한 후 페이지가 변경되지 않으면 이 응답(If-Modified-Since HTTP 헤더라고 함)을 표시하도록 서버를 구성해야 한다.
* 305(프록시 사용): 요청자는 프록시를 사용하여 요청한 페이지만 액세스할 수 있다. 서버가 이 응답을 표시하면 요청자가 사용할 프록시를 가리키는 것이기도 하다.
* 307(임시 리다이렉션): 현재 서버가 다른 위치의 페이지로 요청에 응답하고 있지만 요청자는 향후 요청 시 원래 위치를 계속 사용해야 한다.
* 308(영구 리다이렉션, RFC에서 실험적으로 승인됨)
== 4xx (요청 오류) ==
4xx 클래스의 상태 코드는 클라이언트에 오류가 있음을 나타낸다.
* 400(잘못된 요청): 서버가 요청의 구문을 인식하지 못했다.
* 401(권한 없음): 이 요청은 인증이 필요하다. 서버는 로그인이 필요한 페이지에 대해 이 요청을 제공할 수 있다.
* [[HTTP 403|403]](금지됨): 서버가 요청을 거부하고 있다.
* [[HTTP 404|404]](찾을 수 없음): 서버가 요청한 페이지를 찾을 수 없다. 예를 들어 서버에 존재하지 않는 페이지에 대한 요청이 있을 경우 서버는 이 코드를 제공한다.
* 405(허용되지 않는 방법): 요청에 지정된 방법을 사용할 수 없다.
* 406(허용되지 않음): 요청한 페이지가 요청한 콘텐츠 특성으로 응답할 수 없다.
* 407(프록시 인증 필요): 이 상태 코드는 401(권한 없음)과 비슷하지만 요청자가 프록시를 사용하여 인증해야 한다. 서버가 이 응답을 표시하면 요청자가 사용할 프록시를 가리키는 것이기도 한다.
* 408(요청 시간초과): 서버의 요청 대기가 시간을 초과하였다.
* 409(충돌): 서버가 요청을 수행하는 중에 충돌이 발생했다. 서버는 응답할 때 충돌에 대한 정보를 포함해야 한다. 서버는 PUT 요청과 충돌하는 PUT 요청에 대한 응답으로 이 코드를 요청 간 차이점 목록과 함께 표시해야 한다.
* 410(사라짐): 서버는 요청한 리소스가 영구적으로 삭제되었을 때 이 응답을 표시한다. 404(찾을 수 없음) 코드와 비슷하며 이전에 있었지만 더 이상 존재하지 않는 리소스에 대해 404 대신 사용하기도 한다. 리소스가 영구적으로 이동된 경우 301을 사용하여 리소스의 새 위치를 지정해야 한다.
* 411(길이 필요): 서버는 유효한 콘텐츠 길이 헤더 입력란 없이는 요청을 수락하지 않는다.
* 412(사전조건 실패): 서버가 요청자가 요청 시 부과한 사전조건을 만족하지 않는다.
* 413(요청 속성이 너무 큼): 요청이 너무 커서 서버가 처리할 수 없다.
* 414(요청 URI가 너무 긺): 요청 URI(일반적으로 URL)가 너무 길어 서버가 처리할 수 없다.
* 415(지원되지 않는 미디어 유형): 요청이 요청한 페이지에서 지원하지 않는 형식으로 되어 있다.
* 416(처리할 수 없는 요청범위): 요청이 페이지에서 처리할 수 없는 범위에 해당되는 경우 서버는 이 상태 코드를 표시한다.
* 417(예상 실패): 서버는 Expect 요청 헤더 입력란의 요구사항을 만족할 수 없다.
* 418(I'm a teapot, RFC 2324)
* 420(Enhance Your Calm, 트위터)
* 422(처리할 수 없는 엔티티, WebDAV; RFC 4918)
* 423(잠김,WebDAV; RFC 4918)
* 424(실패된 의존성, WebDAV; RFC 4918)
* 424(메쏘드 실패, WebDAV)
* 425(정렬되지 않은 컬렉션, 인터넷 초안)
* 426(업그레이드 필요, RFC 2817)
* 428(전제조건 필요, RFC 6585)
* 429(너무 많은 요청, RFC 6585)
* 431(요청 헤더 필드가 너무 큼, RFC 6585)
* 444(응답 없음, Nginx)
* 449(다시 시도, 마이크로소프트)
* 450(윈도 자녀 보호에 의해 차단됨, 마이크로소프트)
* 451(법적인 이유로 이용 불가, 인터넷 초안)
* 451(리다이렉션, 마이크로소프트)
* 494(요청 헤더가 너무 큼, Nginx)
* 495(Cert 오류, Nginx)
* 496(Cert 없음, Nginx)
* 497(HTTP to HTTPS, Nginx)
* 499(클라이언트가 요청을 닫음, Nginx)
요청을 받았으며 작업을 계속한다.
이 상태의 상태 코드는 상태-라인과 선택적 헤더(컴퓨터에서 출력될 때 각 페이지 맨 윗부분에 자동으로 붙는 부분)만을 포함하는 임시의 응답을 나타내고 빈 라인에 의해서 종결된다. HTTP/1.0이래로 어떤 1XX 상태 코드들도 정의 되지 않았다. 서버들은 1XX 응답을 실험적인 상태를 제외하고 HTTP/1.0 클라이언트(서버에 연결된 컴퓨터)로 보내면 안 된다.
* 100(계속): 요청자는 요청을 계속해야 한다. 서버는 이 코드를 제공하여 요청의 첫 번째 부분을 받았으며 나머지를 기다리고 있음을 나타낸다.
* 101(프로토콜 전환): 요청자가 서버에 프로토콜 전환을 요청했으며 서버는 이를 승인하는 중이다.
* 102(처리, RFC 2518)
== 2xx (성공) ==
이 클래스의 상태 코드는 클라이언트가 요청한 동작을 수신하여 이해했고 승낙했으며 성공적으로 처리했음을 가리킨다.
* 200(성공): 서버가 요청을 제대로 처리했다는 뜻이다. 이는 주로 서버가 요청한 페이지를 제공했다는 의미로 쓰인다.
* 201(작성됨): 성공적으로 요청되었으며 서버가 새 리소스를 작성했다.
* 202(허용됨): 서버가 요청을 접수했지만 아직 처리하지 않았다.
* 203(신뢰할 수 없는 정보): 서버가 요청을 성공적으로 처리했지만 다른 소스에서 수신된 정보를 제공하고 있다.
* 204(콘텐츠 없음): 서버가 요청을 성공적으로 처리했지만 콘텐츠를 제공하지 않는다.
* 205(콘텐츠 재설정): 서버가 요청을 성공적으로 처리했지만 콘텐츠를 표시하지 않는다. 204 응답과 달리 이 응답은 요청자가 문서 보기를 재설정할 것을 요구한다(예: 새 입력을 위한 양식 비우기).
* 206(일부 콘텐츠): 서버가 GET 요청의 일부만 성공적으로 처리했다.
* 207(다중 상태, RFC 4918)
* 208(이미 보고됨, RFC 5842)
* 226 IM Used (RFC 3229)
== 3xx (리다이렉션 완료) ==
클라이언트는 요청을 마치기 위해 추가 동작을 취해야 한다.<ref name="RFC_2616"/>
* 300(여러 선택항목): 서버가 요청에 따라 여러 조치를 선택할 수 있다. 서버가 사용자 에이전트에 따라 수행할 작업을 선택하거나, 요청자가 선택할 수 있는 작업 목록을 제공한다.
* [[HTTP 301|301]](영구 이동): 요청한 페이지를 새 위치로 영구적으로 이동했다. GET 또는 HEAD 요청에 대한 응답으로 이 응답을 표시하면 요청자가 자동으로 새 위치로 전달된다.
* [[HTTP 302|302]](임시 이동): 현재 서버가 다른 위치의 페이지로 요청에 응답하고 있지만 요청자는 향후 요청 시 원래 위치를 계속 사용해야 한다.
* [[HTTP 303|303]](기타 위치 보기): 요청자가 다른 위치에 별도의 GET 요청을 하여 응답을 검색할 경우 서버는 이 코드를 표시한다. HEAD 요청 이외의 모든 요청을 다른 위치로 자동으로 전달한다.
* 304(수정되지 않음): 마지막 요청 이후 요청한 페이지는 수정되지 않았다. 서버가 이 응답을 표시하면 페이지의 콘텐츠를 표시하지 않는다. 요청자가 마지막으로 페이지를 요청한 후 페이지가 변경되지 않으면 이 응답(If-Modified-Since HTTP 헤더라고 함)을 표시하도록 서버를 구성해야 한다.
* 305(프록시 사용): 요청자는 프록시를 사용하여 요청한 페이지만 액세스할 수 있다. 서버가 이 응답을 표시하면 요청자가 사용할 프록시를 가리키는 것이기도 하다.
* 307(임시 리다이렉션): 현재 서버가 다른 위치의 페이지로 요청에 응답하고 있지만 요청자는 향후 요청 시 원래 위치를 계속 사용해야 한다.
* 308(영구 리다이렉션, RFC에서 실험적으로 승인됨)
== 4xx (요청 오류) ==
4xx 클래스의 상태 코드는 클라이언트에 오류가 있음을 나타낸다.
* 400(잘못된 요청): 서버가 요청의 구문을 인식하지 못했다.
* 401(권한 없음): 이 요청은 인증이 필요하다. 서버는 로그인이 필요한 페이지에 대해 이 요청을 제공할 수 있다.
* [[HTTP 403|403]](금지됨): 서버가 요청을 거부하고 있다.
* [[HTTP 404|404]](찾을 수 없음): 서버가 요청한 페이지를 찾을 수 없다. 예를 들어 서버에 존재하지 않는 페이지에 대한 요청이 있을 경우 서버는 이 코드를 제공한다.
* 405(허용되지 않는 방법): 요청에 지정된 방법을 사용할 수 없다.
* 406(허용되지 않음): 요청한 페이지가 요청한 콘텐츠 특성으로 응답할 수 없다.
* 407(프록시 인증 필요): 이 상태 코드는 401(권한 없음)과 비슷하지만 요청자가 프록시를 사용하여 인증해야 한다. 서버가 이 응답을 표시하면 요청자가 사용할 프록시를 가리키는 것이기도 한다.
* 408(요청 시간초과): 서버의 요청 대기가 시간을 초과하였다.
* 409(충돌): 서버가 요청을 수행하는 중에 충돌이 발생했다. 서버는 응답할 때 충돌에 대한 정보를 포함해야 한다. 서버는 PUT 요청과 충돌하는 PUT 요청에 대한 응답으로 이 코드를 요청 간 차이점 목록과 함께 표시해야 한다.
* 410(사라짐): 서버는 요청한 리소스가 영구적으로 삭제되었을 때 이 응답을 표시한다. 404(찾을 수 없음) 코드와 비슷하며 이전에 있었지만 더 이상 존재하지 않는 리소스에 대해 404 대신 사용하기도 한다. 리소스가 영구적으로 이동된 경우 301을 사용하여 리소스의 새 위치를 지정해야 한다.
* 411(길이 필요): 서버는 유효한 콘텐츠 길이 헤더 입력란 없이는 요청을 수락하지 않는다.
* 412(사전조건 실패): 서버가 요청자가 요청 시 부과한 사전조건을 만족하지 않는다.
* 413(요청 속성이 너무 큼): 요청이 너무 커서 서버가 처리할 수 없다.
* 414(요청 URI가 너무 긺): 요청 URI(일반적으로 URL)가 너무 길어 서버가 처리할 수 없다.
* 415(지원되지 않는 미디어 유형): 요청이 요청한 페이지에서 지원하지 않는 형식으로 되어 있다.
* 416(처리할 수 없는 요청범위): 요청이 페이지에서 처리할 수 없는 범위에 해당되는 경우 서버는 이 상태 코드를 표시한다.
* 417(예상 실패): 서버는 Expect 요청 헤더 입력란의 요구사항을 만족할 수 없다.
* 418(I'm a teapot, RFC 2324)
* 420(Enhance Your Calm, 트위터)
* 422(처리할 수 없는 엔티티, WebDAV; RFC 4918)
* 423(잠김,WebDAV; RFC 4918)
* 424(실패된 의존성, WebDAV; RFC 4918)
* 424(메쏘드 실패, WebDAV)
* 425(정렬되지 않은 컬렉션, 인터넷 초안)
* 426(업그레이드 필요, RFC 2817)
* 428(전제조건 필요, RFC 6585)
* 429(너무 많은 요청, RFC 6585)
* 431(요청 헤더 필드가 너무 큼, RFC 6585)
* 444(응답 없음, Nginx)
* 449(다시 시도, 마이크로소프트)
* 450(윈도 자녀 보호에 의해 차단됨, 마이크로소프트)
* 451(법적인 이유로 이용 불가, 인터넷 초안)
* 451(리다이렉션, 마이크로소프트)
* 494(요청 헤더가 너무 큼, Nginx)
* 495(Cert 오류, Nginx)
* 496(Cert 없음, Nginx)
* 497(HTTP to HTTPS, Nginx)
* 499(클라이언트가 요청을 닫음, Nginx)
== 5xx (서버 오류) ==
서버가 유효한 요청을 명백하게 수행하지 못했음을 나타낸다.<ref name="RFC_2616"/>
* 500(내부 서버 오류): 서버에 오류가 발생하여 요청을 수행할 수 없다.
* 501(구현되지 않음): 서버에 요청을 수행할 수 있는 기능이 없다. 예를 들어 서버가 요청 메소드를 인식하지 못할 때 이 코드를 표시한다.
* 502(불량 게이트웨이): 서버가 게이트웨이나 프록시 역할을 하고 있거나 또는 업스트림 서버에서 잘못된 응답을 받았다.
* 503(서비스를 사용할 수 없음): 서버가 오버로드되었거나 유지관리를 위해 다운되었기 때문에 현재 서버를 사용할 수 없다. 이는 대개 일시적인 상태이다.
* 504(게이트웨이 시간초과): 서버가 게이트웨이나 프록시 역할을 하고 있거나 또는 업스트림 서버에서 제때 요청을 받지 못했다.
* 505(HTTP 버전이 지원되지 않음): 서버가 요청에 사용된 HTTP 프로토콜 버전을 지원하지 않는다.
* 506(Variant Also Negotiates, RFC 2295)
* 507(용량 부족, WebDAV; RFC 4918)
* 508(루프 감지됨, WebDAV; RFC 5842)
* 509(대역폭 제한 초과, Apache bw/limited extension)
* 510(확장되지 않음, RFC 2774)
* 511(네트워크 인증 필요, RFC 6585)
* 598(네트워크 읽기 시간초과 오류, 알 수 없음)
* 599(네트워크 연결 시간초과 오류, 알 수 없음)
원문 : 위키백과 < https://ko.wikipedia.org/wiki/HTTP_상태코드 >
라벨:
error,
html,
html error
2016년 2월 15일 월요일
Common Table Expression
Common Table Expression
기본 구조
WITH [CTE의 이름] ( [CTE에서 반환하는 열] )
AS (
Table View
)
SELECT *FROM [CTE의 이름];
2. [CTE에서 반환하는 열]은 AS 안의 Table View의 반환값과 같아야 함
3. AS 안에서는 내부 조인만 가능하다.
주의 사항
1. WITH 전에 GO 혹은 세미콜론(;)을 사용해야 함2. [CTE에서 반환하는 열]은 AS 안의 Table View의 반환값과 같아야 함
3. AS 안에서는 내부 조인만 가능하다.
예제
이 예제에서는 CTE를 사용하여 반복+계층 질의문을 반환하도록 한다.1. 예제 테이블 형식
[부서 ID], [부서 명] , [상위 부서 ID], [사용자 명]2. 예제 테이블 기본 값
부서 ID | 부서 명 | 상위 부서 ID | 사용자 명 |
---|---|---|---|
Dev | 개발부 | NULL | 김개발 |
Ope | 영업부 | NULL | 이영업 |
Dev1 | 개발1팀 | Dev | 김일팀 |
Dev2 | 개발2팀 | Dev | 김이팀 |
Dev1-1 | 개발1팀1조 | Dev1 | 김일조 |
Ope1 | 영업1팀 | Ope | 이일팀 |
Ope2 | 영업2팀 | Ope | 이이팀 |
3. 질의문 작성
3-1. QUERY TEMPLATE
WITH CTE_DEPT ( [부서 ID], [부서 명] , [상위 부서 ID], [사용자 명] )
AS (
Table View
)
SELECT *FROM CTE_DEPT
3-2. 기준이 되는 테이블 (상위부서가 없는 행)
WITH CTE_DEPT ( [부서 ID], [부서 명] , [상위 부서 ID], [사용자 명] )
AS (
-- Table View
SELECT [부서 ID], [부서 명] , [상위 부서 ID], [사용자 명]
FROM DEPT_TABLE
WHERE [상위부서 ID] IS NULL
)
SELECT *FROM CTE_DEPT
"3-1"에서 가져온 기준이 되는 테이블 외의 것을 가져오는 것을 의미함)
WITH CTE_DEPT ( [부서 ID], [부서 명] , [상위 부서 ID], [사용자 명] )
AS (
-- Table View
SELECT [부서 ID], [부서 명] , [상위 부서 ID], [사용자 명]
FROM DEPT_TABLE
WHERE [상위부서 ID] IS NULL
)
SELECT *FROM CTE_DEPT
부서 ID | 부서 명 | 상위 부서 ID | 사용자 명 |
---|---|---|---|
Dev | 개발부 | NULL | 김개발 |
Ope | 영업부 | NULL | 이영업 |
3-3. 반복+계층을 위한 UNION ALL 작성
(기본 테이블의 [상위 부서 ID]와 CTE테이블의 [부서 ID]가 같은 것을 가져온다는 것은"3-1"에서 가져온 기준이 되는 테이블 외의 것을 가져오는 것을 의미함)
WITH CTE_DEPT ( [부서 ID], [부서 명] , [상위 부서 ID], [사용자 명] )
AS (
-- Table View
SELECT [부서 ID], [부서 명] , [상위 부서 ID], [사용자 명]
FROM DEPT_TABLE
WHERE [상위부서 ID] IS NULL
UNION ALL
SELECT A.[부서 ID], A.[부서 명] , A.[상위 부서 ID], A.[사용자 명]
FROM DEPT_TABLE A
INNER JOIN CTE_DEPT B ON A.[상위부서 ID] = B.[부서 ID]
)
SELECT *FROM CTE_DEPT
부서 ID | 부서 명 | 상위 부서 ID | 사용자 명 |
---|---|---|---|
Dev | 개발부 | NULL | 김개발 |
Ope | 영업부 | NULL | 이영업 |
Dev1 | 개발1팀 | Dev | 김일팀 |
Dev2 | 개발2팀 | Dev | 김이팀 |
Dev1-1 | 개발1팀1조 | Dev1 | 김일조 |
Ope1 | 영업1팀 | Ope | 이일팀 |
Ope2 | 영업2팀 | Ope | 이이팀 |
3-4. 계층을 보여주는 LEVEL 함수 사용 및 반복 확인 열 추가
WITH CTE_DEPT ( [부서 ID], [부서 명] , [상위 부서 ID], [사용자 명], LEVEL )
AS (
-- Table View
SELECT [부서 ID], [부서 명] , [상위 부서 ID], [사용자 명], 0
FROM DEPT_TABLE
WHERE [상위부서 ID] IS NULL
UNION ALL
SELECT A.[부서 ID], A.[부서 명] , A.[상위 부서 ID], A.[사용자 명], B.LEVEL+1
FROM DEPT_TABLE A
INNER JOIN CTE_DEPT B ON A.[상위부서 ID] = B.[부서 ID]
)
SELECT [부서 ID], REPLICATE('ㄴ',LEVEL)+ [부서 명] , [상위 부서 ID], [사용자 명], LEVEL
FROM CTE_DEPT
부서 ID | 부서 명 | 상위 부서 ID | 사용자 명 | LEVEL |
---|---|---|---|---|
Dev | 개발부 | NULL | 김개발 | 0 |
Ope | 영업부 | NULL | 이영업 | 0 |
Dev1 | ㄴ개발1팀 | Dev | 김일팀 | 1 |
Dev2 | ㄴ개발2팀 | Dev | 김이팀 | 1 |
Dev1-1 | ㄴㄴ개발1팀1조 | Dev1 | 김일조 | 2 |
Ope1 | ㄴ영업1팀 | Ope | 이일팀 | 1 |
Ope2 | ㄴ영업2팀 | Ope | 이이팀 | 1 |
3-5. 정렬
WITH CTE_DEPT ( [부서 ID], [부서 명] , [상위 부서 ID], [사용자 명], LEVEL )
AS (
-- Table View
SELECT [부서 ID], [부서 명] , [상위 부서 ID], [사용자 명], 0
FROM DEPT_TABLE
WHERE [상위부서 ID] IS NULL
UNION ALL
SELECT A.[부서 ID], A.[부서 명] , A.[상위 부서 ID], A.[사용자 명], B.LEVEL+1
FROM DEPT_TABLE A
INNER JOIN CTE_DEPT B ON A.[상위부서 ID] = B.[부서 ID]
)
SELECT [부서 ID], REPLICATE('ㄴ',LEVEL)+ [부서 명] , [상위 부서 ID], [사용자 명], LEVEL
FROM CTE_DEPT
ORDER BY [부서 ID] , LEVEL
/* 부서 ID가 숫자일 경우 */
-- ORDER BY ISNULL([상위부서 ID], [부서 ID]), LEVEL
부서 ID | 부서 명 | 상위 부서 ID | 사용자 명 | LEVEL |
---|---|---|---|---|
Dev | 개발부 | NULL | 김개발 | 0 |
Dev1 | ㄴ개발1팀 | Dev | 김일팀 | 1 |
Dev2 | ㄴ개발2팀 | Dev | 김이팀 | 1 |
Dev1-1 | ㄴㄴ개발1팀1조 | Dev1 | 김일조 | 2 |
Ope | 영업부 | NULL | 이영업 | 0 |
Ope1 | ㄴ영업1팀 | Ope | 이일팀 | 1 |
Ope2 | ㄴ영업2팀 | Ope | 이이팀 | 1 |
3-6. 최상위 부모 가져오기
WITH CTE_DEPT ( [부서 ID], [부서 명] , [상위 부서 ID], [사용자 명], LEVEL, TOPID)
AS (
-- Table View
SELECT [부서 ID], [부서 명] , [상위 부서 ID], [사용자 명], 0, [부서 ID] AS TOPID
FROM DEPT_TABLE
WHERE [상위부서 ID] IS NULL
UNION ALL
SELECT A.[부서 ID], A.[부서 명] , A.[상위 부서 ID], A.[사용자 명], B.LEVEL+1, B.TOPID
FROM DEPT_TABLE A
INNER JOIN CTE_DEPT B ON A.[상위부서 ID] = B.[부서 ID]
)
SELECT [부서 ID], REPLICATE('ㄴ',LEVEL)+ [부서 명] , [상위 부서 ID], [사용자 명], LEVEL, TOPID
FROM CTE_DEPT
ORDER BY [부서 ID], LEVEL
ORDER BY [부서 ID], LEVEL
부서 ID | 부서 명 | 상위 부서 ID | 사용자 명 | TOPID |
---|---|---|---|---|
Dev | 개발부 | NULL | 김개발 | Dev |
Dev1 | 개발1팀 | Dev | 김일팀 | Dev |
Dev2 | 개발2팀 | Dev | 김이팀 | Dev |
Dev1-1 | 개발1팀1조 | Dev1 | 김일조 | Dev |
Ope | 영업부 | NULL | 이영업 | Ope |
Ope1 | 영업1팀 | Ope | 이일팀 | Ope |
Ope2 | 영업2팀 | Ope | 이이팀 | Ope |
피드 구독하기:
글 (Atom)