1) 프록시 서버 (Proxy Server) (1) 프록시란 프록시 서버는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 컴퓨터 시스템이나 응용 프로그램을 가리킨다. 서버와 클라이언트 사이에 중계기로서 대리로 통신을 수행하는 것을 가리켜 프록시, 그 중계 기능을 하는 것을 프록시 서버 라고 부른다. (2) 프록시를 사용하는 이유 ① 익명으로 컴퓨터 네트워크 이용 프록시 서버를 이용하면 프록시 서버가 대신 리소스를 요청하기 때문에 익명으로 네트워크를 이용할 수 있다. ② 네트워크 서비스 제공을 제한하거나 관제하기 위함 게이트웨이에 프록시를 두게 되면 하위 망들의 인터넷 사용 기록을 수집할 수 있고 컨텐츠를 필터링할 수 있다. ③ 보안성 향상 보안 상의 이유로 직접 통신..
1) 사용 범위에 따른 구분 사용 범위에 따라 공인 IP 주소와 사설 IP 주소로 구분할 수 있다. (1) 공인 IP 주소 공인 IP 주소는 공인기관에서 인증한 공개형 IP주소이다. 공인 IPv4 주소는 임의로 우리가 부여하는 것이 아니라, 전세계적으로 ICANN이라는 기관이 국가별로 사용할 IP 대역을 관리하고 있다. 우리나라는 인터넷진흥원(KISA)에서 우리나라 내에서 사용할 주소를 관리하고 있으며, 임의로 아무 IP 주소나 내 컴퓨터에 지정한다고 인터넷이 되는 것이 아니라 할당받은 주소를 부여해야만 인터넷에 접속할 수 있게 된다 (2) 사설 IP 주소 외부에 공개되지 않은 폐쇄형 IP주소이다. 전체 IP 대역 중에서 특수한 목적으로 사용하기 위해서 몇 개의 대역을 제외하고, 공인 IP 대역으로 할당..
1) 문제 설명 다음은 아이스크림 가게의 상반기 주문 정보를 담은 FIRST_HALF 테이블과 7월의 아이스크림 주문 정보를 담은 JULY 테이블입니다. FIRST_HALF 테이블 구조는 다음과 같으며, SHIPMENT_ID, FLAVOR, TOTAL_ORDER는 각각 아이스크림 공장에서 아이스크림 가게까지의 출하 번호, 아이스크림 맛, 상반기 아이스크림 총주문량을 나타냅니다. FIRST_HALF 테이블의 기본 키는 FLAVOR입니다. FIRST_HALF테이블의 SHIPMENT_ID는 JULY테이블의 SHIPMENT_ID의 외래 키입니다. Column name Type Nullable NAME TYPE NULLABLE SHIPMENT_ID INT(N) FALSE FLAVOR VARCHAR(N) FALSE..
1) 문제 설명 어느 한 게임에서 사용되는 아이템들은 업그레이드가 가능합니다. 'ITEM_A'->'ITEM_B'와 같이 업그레이드가 가능할 때'ITEM_A'를 'ITEM_B'의 PARENT 아이템,PARENT 아이템이 없는 아이템을 ROOT 아이템이라고 합니다. 예를 들어 'ITEM_A'->'ITEM_B'->'ITEM_C' 와 같이 업그레이드가 가능한 아이템이 있다면'ITEM_C'의 PARENT 아이템은 'ITEM_B','ITEM_B'의 PARENT 아이템은 'ITEM_A', ROOT 아이템은 'ITEM_A'가 됩니다. 다음은 해당 게임에서 사용되는 아이템 정보를 담은 ITEM_INFO 테이블과 아이템 관계를 나타낸 ITEM_TREE 테이블입니다. ITEM_INFO 테이블은 다음과 같으며, ITEM_ID..
1) 문제 설명 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. NAME TYPE NULLABLE ANIMAL_ID VARCHAR(N) FALSE ANIMAL_TYPE VARCHAR(N) FALSE DATETIME DATETIME FALSE INTAKE_CONDITION VARCHAR(N) FALSE NAME VARCHAR(N) TRUE SEX_UPON_INTAKE VARCHAR..
1) 문제 설명 다음은 식품창고의 정보를 담은 FOOD_WAREHOUSE 테이블입니다. FOOD_WAREHOUSE 테이블은 다음과 같으며 WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, TLNO, FREEZER_YN는 창고 ID, 창고 이름, 창고 주소, 전화번호, 냉동시설 여부를 의미합니다. Column name Type Nullable WAREHOUSE_ID VARCHAR(10) FALSE WAREHOUSE_NAME VARCHAR(20) FALSE ADDRESS VARCHAR(100) TRUE TLNO VARCHAR(20) TRUE FREEZER_YN VARCHAR(1) TRUE 2) 문제 FOOD_WAREHOUSE 테이블에서 경기도에 위치한 창고의 ID, 이름, 주소, 냉동시설..
1) 직렬화 (Serialization) 및 역직렬화 (Deserialization) (1) 직렬화, 역직렬화란 데이터 직렬화란 컴퓨터의 데이터 객체를 저장 매체에 저장할 수 있는 형식 or 네트워크를 통해 전송할 수 있는 것으로 변환하는 것을 말한다. 반대로 데이터 역직렬화란 디스크에 저장된 데이터를 읽거나 네트워크 통신으로부터 받은 데이터를 다시 객체로 변환하는 것을 말한다. 직렬화 과정 없이 데이터 객체를 그대로 사용하면 될 것 같은데 왜 직렬화라는 과정을 거쳐야 하는지 알아보자! (2) 직렬화가 필요한 이유 ① 데이터 타입 종류 어떠한 개발 언어를 선택하든 기본적으로 프로그램이 사용하는 데이터의 메모리 구조는 크게 2가지로 나뉘게 된다. * 값 형식 데이터 (Primitive Type) int, ..
1) 문제 설명 낚시앱에서 사용하는 FISH_INFO 테이블은 잡은 물고기들의 정보를 담고 있습니다. FISH_INFO 테이블의 구조는 다음과 같으며 ID, FISH_TYPE, LENGTH, TIME은 각각 잡은 물고기의 ID, 물고기의 종류(숫자), 잡은 물고기의 길이(cm), 물고기를 잡은 날짜를 나타냅니다. Column name Type Nullable ID INTEGER FALSE FISH_TYPE INTEGER FALSE LENGTH FLOAT TRUE TIME DATE FALSE 단, 잡은 물고기의 길이가 10cm 이하일 경우에는 LENGTH 가 NULL 이며, LENGTH 에 NULL 만 있는 경우는 없습니다. FISH_NAME_INFO 테이블은 물고기의 이름에 대한 정보를 담고 있습니다. ..