본문 바로가기

분류 전체보기201

세션(Session) HTTP 기반으로 동작하는 클라이언트가 서버에 정보를 요청할 때 생성되는 "상태 정보"를 세션이라고 합니다. 세션은 HttpSession이라는 인터페이스 객체로 표현되며, HttpSession 객체는 HttpServletRequest의 getSession()이나 getSession(true) 메소드를 이용하여 생성할 수 있습니다. HttpSession 객체가 생성될 때는 요청을 보내온 클라이언트 정보, 요청 시간 정보 등을 조합한 세션 ID가 부여되며, 이 세션 ID는 클라이언트 측에 쿠키 기술로 저장됩니다. HttpSession객체는 서버에 생성되며, 클라이언트에는 세션 ID가 쿠키 기술로 저장되어 각 클라이언트에 대하여 생성되는 HttpSession 객체를 클라이언트마다 개별적으로 유지 및 관리합니다.. 2022. 10. 20.
쿠키 클라이언트 단위로 상태정보를 유지해야 하는 상황이 많다. 예를 들어 이전에 방문한 적이 있는 웹서버에 다시 방문했을 때 몇 번째 방문인지를 출력하는 상황 회원가입 화면에서 자동으로 주소, 전화번호 등이 입력되는 상황 로그인하고 난 후 로그아웃할 때까지 인증 상태 유지 쇼핑몰에서 주문할 때까지 장바구니에 선택한 상품 정보들 유지 쇼핑몰에서 클라이언트가 체크했던 상품 정보 유지 포탈 사이트에서 클라이언트가 특별히 관심 있어 하는 항목에 대한 정보 유지 이처럼 클라이언트 단위로 상태정보를 유지하게 하려면 쿠키와 세션을 사용합니다. 쿠키와 세션은 다음과 같은 기준에 따라 선택하여 사용합니다. 상태정보의 유지 기간이 브라우저가 종료될 때까지인지의 여부 유지하려는 정보의 저장 위치(서버, 클라이언트) 유지하려는 정.. 2022. 10. 20.
옵티마이저 Optimizer : SQL 실행계획을 수립하고, SQL을 실행하는 데이터베이스 관리 시스템의 소프트웨어 같은 SQL문이더라도 어떻게 실행하냐에 따라 성능이 달라진다. (소요시간, 자원사용량 등) =>SQL문을 분석한 후 일정한 기준을 통해 실행계획을 세워줘야함. 이때 사용되는 것이 옵티마이저! SQL문 작성 - Parsing(문법 검사, 구문 분석) - 옵티마이저 (비용기반/규칙기반) - 실행계획(plan_table 저장) - SQL 실행 1. 옵티마이저는 '비용기반 옵티마이저'와 '규칙기반 옵티마이저'가 있으며, 최신 오라클은 비용기반을 default로 사용한다. 2. 비용기반 옵티마이저는 시스템 통계와 오브젝트 통계를 통해 해당 SQL문 실행에 대한 총 비용을 계산하고, 총 비용이 가장 적은 쪽으로.. 2022. 10. 17.
window 함수, 계층형 조회 window함수: 행간 구분을 지어서 그 안에서의 관계를 쉽게 정의하기 위한 함수. 구조 : select window_function (arguments) over ([partition by 컬럼명][order by 컬럼명][windowing]) from 테이블명; ex) select 매장코드, 지역명, 메뉴명, 판매량, dense_rank() over (partition by 지역명 order by 판매량 desc) as 판매순위 from 판매 window_function : 윈도우 함수 argument : 인수 ( 컬럼명 등 함수의 작업이 이뤄지는 대상) partition by : 테이블의 레코드들을 쪼개는 기준 order by : 쪼개진 레코드들 내에서 혹은 전체 테이블에서 레코드들을 어떤 기준으로.. 2022. 10. 14.
NULL 관련 함수 NVL(col1, 대체값) : NULL이면 다른 값으로 바꿔주는 함수. ISNULL도 같은 역할! 표현식 두개의 데이터 타입이 같아야 함. ex) NVL(col1, 100) >> col1이 null이면, 100으로 바꿔줌 NVL2(col1, 결과1, 결과2) : col1이 NULL일 때,NVL2(col1, 'F', 'T') >>'T'출력. col1이 NOT NULL일때 'F'출력 NULLIF(v1, v2) : v1 == v2면 NULL, v1 != v2면 v 1을 출력 COALESCE(v1, v2, v3...vn) : NULL이 아닌 최초의 값을 반환. 2022. 10. 12.
[SQL] TCL TCL(Transaction Control Language) : 트랜잭션을 제어하기 위한 언어 * 트랜잭션: 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위 COMMIT : 데이터에 대한 변화를 DB에 반영하기 위한 명령어 SAVEPOINT : 코드를 분할하기 위한 저장 포인트 지정 ROLLBACK : 트랜잭션이 시작되기 이전의 상태로 되돌리기 위한 언어. 최신 COMMIT이나 특수한 SAVEPOINT로 되돌릴 수 있는 명령어. 트랜잭션의 특징 고립성: 트랜잭션이 실행되는 동안 다른 트랜잭션에 영향을 받아 잘못된 결과를 만들어선 안된다. 원자성: 트랜잭션에서 정의된 연산은 모두 성공적으로 실행되던지 아니면 전혀 실행되지 않은 상태로 있어야 한다. 지속성: 트랜잭션이 성공적으로 완료되면 해당 트.. 2022. 10. 12.
IP & TCP/UDP & PORT & DNS IP (Internet Protocol) 출발지IP, 도착지IP와 데이터 등을 갖고 있는 패킷이 송수신된다. 패킷(Packet)이라는 통신 단위로 데이터가 클라이언트와 서버 사이에서 전달된다. IP 프로토콜의 한계 비연결성 : 패킷을 받을 대상이 없거나 서비스 불능 상태(ex. 상대방 pc가 off 상태)여도 패킷 전송. 비신뢰성 : 패킷이 소실되거나 전달 순서가 보장되지 않는다. 프로그램 구분 : 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상(내가 사용하고 있는 PC에서 음악도 듣고 게임도하고 여러가지 일을 동시 수행한다는 뜻)이면 구분하지 못한다. TCP (Transmission Control Protocol : 전송 제어 프로토콜) 연결지향 - TCP 3 way handshake (.. 2022. 10. 8.
[백준] 10866 덱 💡 문제 https://www.acmicpc.net/problem/10866 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 💡 정답 from collections import deque import sys d = deque() n = int(input()) for i in range(n): comd = list(sys.stdin.readline().split()) if comd[0] == "push_front": d.appendleft(comd[1]) elif comd[0] == "push_b.. 2022. 10. 4.
JAVA - 객체 & 인스턴스 1. 멤버 변수 - 객체에 정의된 속성 - 형식 : 접근지정자 데이터타입 변수명; ex) public String name; 2022. 10. 2.