728x90 반응형 전체 글419 wildfly X-Powered-By : JSP/2.3 보안이슈 해결 사이에 추가한다. 브라우저에서 제공하는 툴 등으로 HTTP 요청/응답 헤더 정보를 조회할 수 있다. 니는 악의적인 목적으로 이용하면 보안상 큰 이슈가 될 수 있으므로 보통 헤더 정보 중에서 중요한 정보를 감출 수 있다. 아래는 HTTP 요청에 의한 응답 헤더 내용이다. Connection:closeContent-Encoding:gzipContent-Type:text/html;charset=UTF-8Date:Tue, 14 Aug 2012 15:34:02 GMTServer:ApacheTransfer-Encoding:chunkedVary:Accept-EncodingX-Powered-By:JSF/1.2 위의 정보에서 "X-Powerd-By" 정보와 "S.. 2021. 7. 21. [ 조은글 5192호 - Love is Everything ] 다섯 명의 자식을 둔 아버지가 있었습니다. 그 중 한 명의 아들이 유독 병약하고 총명하지도 못하여 형제들 속에서조차 주눅 들어 있는 아들이 아버지는 늘 가슴 아팠다고 합니다. 어느 하루, 아버지는 다섯 그루의 나무를 사 왔습니다. 그리고 다섯 명의 자식들에게 한 그루씩 나누어 주며 1년이라는 기한을 주었지요. 가장 잘 키운 나무의 주인에게는 뭐든 원하는 대로 해 주겠다는 약속과 함께 말입니다. 약속한 1년이 지났습니다. 아버지는 자식들을 데리고 나무가 자라고 있는 숲으로 갔습니다. 놀랍게도 유독 한 그루의 나무가 다른 나무들에 비하여 키도 크고 잎도 무성하게 잘 자라고 있었습니다. 바로 아버지의 가슴을 가장 아프게 하였던 그 아들의 나무였던 게지요. 약속대로 아버지는 아들에게 원하는 것을 물었고 예상대로.. 2021. 7. 21. [ 조은글 5191호 - '평범'을 '특별'로 바꾸는 힘 ] 미국 하버드 대학의 동물학자 로버트 로젠달 박사는 들쥐의 생태를 연구하기 위해 들쥐 200여 마리를 연구소에서 키우고 있었다. 어느 여름, 세계 여행을 떠나기 위해 3개월이나 되는 긴 휴가를 냈다. 그는 여행을 떠나면서 키우던 들쥐중 50마리만 골라 그들의 머리 위에 흰 페인트를 조금씩 칠해주었다. 박사가 여행을 떠나고 들쥐를 키우던 사육사들은 몹시 궁금해졌다. “박사님이 왜 50마리만 골라 머리에 흰 페인트칠을 해놓으신 걸까?” 그러고는 나름대로 추측하기 시작했다. ‘머리에 흰 페인트칠로 표시해놓은 들쥐는 품종이 좋을 거야.’ ‘지능이 뛰어나고 영리한 것이거나 하여튼 좀 다른 것이겠지.’ 그런 생각이 들자 사육사들은 무의식으로 다른 쥐들보다 머리에 흰 페인트칠을 한 쥐들에게 좀 더 관심을 가지고 정성을.. 2021. 7. 21. [ 조은글 5190호 - 엘도라도의 망상 ] 미국의 골드러시가 시작되기 전, 온 유럽은 ‘엘도라도’의 열병으로 홍역을 치렀습니다. 스페인어 ‘엘도라도’는 ‘황금가루를 칠한 사람’이란 뜻으로 콜롬비아 인디언 마을의 전설적인 통치자를 가리키는 말입니다. 그는 축제 때가 되면 온 몸에 황금 가루를 칠한 채 축제를 주관했고, 축제가 끝난 뒤에는 호수에 들어가서 황금 가루를 씻었습니다. 그때를 맞춰 신하들은 온갖 보석과 황금으로 만들어진 물건들을 호수 속으로 던졌습니다. 그래서 그 호수의 바닥에는 온통 황금으로 가득 차 있다는 것입니다. 이 전설 같은 이야기가 유럽으로 전해진 뒤, 엘도라도는 황금 마을을 지칭하게 되었습니다. 수많은 유럽인들이 엘도라도를 찾아 남아메리카로 건너갔습니다. 그들의 행렬은 미국의 골드러시가 시작되기 전까지 이어졌지만 모두 허탕을 .. 2021. 7. 21. [PostgresSQL] postgresql 백업 및 복원 /* 패스워드를 파일로 등록해 놔야 한다 */ C:\Users\cbw\AppData\Roaming\postgresql\pgpass.conf 파일 내용 localhost:5432:*:postgres:postgres /* db전체백업 */ pg_dump.exe --file "D:\\temp\\invako.backup" --host "localhost" --port "5432" --username "postgres" --no-password --verbose --format=c --section=pre-data --section=data --section=post-data --column-inserts --encoding "UTF8" "invakodb" /* db전체복원 */ pg_restore.exe --h.. 2021. 7. 21. [PostgresSQL] 테이블의 컬럼정보확인 NFORMATION_SCHEMA.COLUMNS 을 이용하여 특정 테이블의 컬럼 목록과 특정 컬럼 존재 여부를 확인해보자. 우선 PostgreSQL의 구조를 보면 알겠지만 데이터베이스 내에 Schemas 안에 여러 그룹(?) 이 존재하며 각각 테이블 목록이 존재한다. SELECT * FROM INFORMATION_SCHEMA.COLUMNS 라는 구문을 사용하면 모든 SCHEMA 안에 있는 컬럼 정보들을 가져오는데 그 컬럼 정보들은 table_catalog, table_schema, table_name, column_name, ... 말그대로 테이블 정보를 전부 가져온다. 이 구문을 이용하여 where 조건을 걸어주어 특정 테이블 정보와, 특정 테이블의 컬럼 존재 여부를 확인할 수 있다. ▷예제1) 특정 테.. 2021. 7. 17. 조건에 따른 값 보여주기 조건에 따라 다른값을 보여주는 CASE WHEN ~ END 구문에 대해 알아보자. CASE WHEN 구문을 간단하게 설명하자면 아래와 같다. CASE WHEN condition_1 THEN result_1 WHEN condition_2 THEN result_2 [WHEN...] [ELSE else_result] END 여기서 ELSE 부분 역시 생략이 가능하지만 위에서 만족하는 조건이 없으면 NULL을 반환하니 상황에 따라 뭐라도 넣어주는것이 좋을 수 있다. CASE WHEN 구문은 PostgreSQL 에서만 존재하는건 아니라서 오라클 등등에서 사용할 수 있으니 이참에 잘 알아두자. ▶예제1) 일반 구문 형식 SELECT CASE WHEN score IS NOT NULL THEN 'D' ELSE 'F' .. 2021. 7. 17. [PostgreSQL] 다른테이블 복사하여 새로운 테이블 생성 ▷예제1) 다른 테이블의 구조만 복사하기 CREATE TABLE mine (LIKE othertable); ▷예제2) 다른 테이블의 구조와 데이터 복사하기 CREATE TABLE it AS SELECT * FROM othertable ▷예제3) 다른 테이블의 구조와 테이블의 모든 정보 복사하기(ft. index) create table trecord (like othertable including all); -- 추가로 데이터도 넣어주기 insert into trecord (select * from othertable) 2021. 7. 17. [PostgreSQL] 데이터 있으면 update 없으면 insert PostgreSQL 에서 사용하는 upsert구문에 대해 알아보자. (오라클에서는 merge into / mysql에서는 on duplicate on key update 를 사용한다.) 구문은 다음과 같다. INSERT INTO [TABLE] (COLUMN1, COLUMN2, ...) VALUES (VALUE1, VALUE2, ...) ON CONFLICT [column_name / ON CONSTRAINT constraint_name/ WHERE predicate] [DO NOTHING] [DO UPDATE SET column1 = value1, ...] 기본구문은 이런식으로 이루어져 있고 하나씩 설명하자면 ON CONFLICT column_name : 특정 컬럼명을 기준으로 체크를하며 컬럼을 여러개 .. 2021. 7. 17. [PostgreSQL] 시퀀스 생성 및 사용 ▷생성 CREATE SEQUENCE [seq_name] ▷nextval nextval('seq_name') ▷currval currval('seq_name') ▷값 초기화 setval('seq_name', seq_val, [true/false]) ▷삭제 DROP SEQUENCE [seq_name] 사용 예제) CREATE SEQUENCE mine_seq; SELECT nextval('mine_seq'); SELECT currval('mine_seq'); DROP SEQUENCE mine_seq; 시퀀스를 생성해놓고 바로 확인을 하기 위해 currval()을 사용하여 확인하게 되면 다음과 같은 에러가 발생하는데 ERROR: 오류: "mine_seq" 시퀀스의 currval 값이 현재 세션에 지정되어 있지 .. 2021. 7. 17. 이전 1 ··· 31 32 33 34 35 36 37 ··· 42 다음 728x90 반응형