전체 글 (430) 썸네일형 리스트형 [네트워크] HTTP Session HTTP Session이란?HTTP 세션은 웹 애플리케이션에서 사용자 정보를 일정 시간 동안 유지하기 위한 기술입니다.세션은 사용자가 웹 애플리케이션에 접속한 뒤 로그인 상태를 유지하거나 사용자 활동을 추적하는 데 사용됩니다. HTTP Session의 특징Stateless 문제 해결HTTP 프로토콜은 Stateless(상태 비저장) 특성을 가지며, 서버는 각 요청이 서로 독립적입니다.이를 해결하기 위해, 사용자가 인증된 이후 서버는 세션 ID를 발급하여 사용자의 상태를 유지합니다.세션 ID를 통해 서버는 사용자를 식별하고, 매 요청마다 재인증 없이 동일한 사용자로 간주할 수 있습니다.쿠키와의 연계세션 ID는 쿠키를 통해 클라이언트에게 전달됩니다.이후 클라이언트는 매 요청 시 해당 쿠키를 서버에 전송하여.. [네트워크] 웹 인증이란? 웹 인증이란?웹 애플리케이션에서 사용자의 정체성을 확인하고 적절한 권한을 부여하는 과정입니다.사용자가 누구인지 식별하고, 해당 사용자가 특정 자원이나 서비스에 접근 권한이 있는지 확인하여 무단 접근을 방지하는 중요한 보안 요소입니다. 웹 인증이 필요한 이유 예시글 삭제관리자나 작성자가 아닌 제3자가 글을 무단으로 삭제하거나 수정하려고 할 때, 해당 권한을 확인해야 합니다.관리자 페이지관리자 페이지에 접근하기 위해서는 관리자 권한이 필요합니다.권한이 없는 사용자는 접근이 불가능해야 합니다. 웹 인증 절차1. 사용자 등록사용자가 아이디와 비밀번호 같은 인증 정보를 서버에 전송합니다.서버는 해당 정보를 안전하게 저장합니다.2. 사용자 인증사용자는 아이디와 비밀번호 등을 통해 인증을 시도합니다.서버는 해당 .. [백준] 트리의 지름 (1967번) 코드 힌트문제 이해이 코드는 트리에서 가장 긴 경로(지름)를 찾는 문제를 해결합니다.트리의 지름: 어떤 트리에서 가장 먼 두 노드 사이의 거리입니다.트리의 지름은 임의의 노드에서 가장 먼 노드를 구하고, 그 노드에서 다시 가장 먼 노드를 찾는 방식으로 구할 수 있습니다.핵심 아이디어그래프 표현노드 수 N만큼의 배열을 생성하고, 각 요소를 List로 초기화합니다.인접 리스트(Adjacency List)를 사용해 노드 간의 연결 관계를 효율적으로 관리합니다.인접 리스트의 관리2차원 배열로도 연결을 표현할 수 있지만, 인접 리스트를 사용하면 연결된 노드만 관리할 수 있어 효율적입니다.각 배열의 인덱스에 .add(new Node)로 연결된 노드를 추가합니다.DFS(깊이 우선 탐색) 두 번 수행첫 번째 DFS: .. [백준] 트리의 지름 (1967번) 코드 힌트문제 이해:목표 값 num을 만드는 연속된 자연수의 수열을 찾아야 합니다.수열의 길이(count)가 최소부터 시작해 점차 늘려가며 가능한 경우를 찾습니다.최대 길이 100까지 시도하고, 목표 값을 만드는 수열이 없으면 -1을 출력합니다.핵심 아이디어:주어진 숫자열의 중앙값(middle)을 중심으로 시작점을 계산합니다.길이가 짝수인 경우와 홀수인 경우를 나눠 시작 위치를 조정합니다.연속된 숫자들의 합이 목표 값과 같으면 그 수열을 출력합니다.알고리즘 흐름:수열의 중앙값을 기준으로 시작점 계산.연속된 숫자열의 합과 목표 값(num)을 비교.길이를 늘려가며(최대 100까지) 모든 경우 탐색.정답은 더보기 클릭더보기import java.util.*;class Main { public static .. [백준] 명령 프롬프트 (1032번) 코드 힌트문제 이해:여러 문자열이 주어졌을 때, 모든 문자열에서 같은 위치의 문자가 동일한 경우 그 문자를 유지합니다.하지만 다른 문자가 있는 경우 해당 위치를 '?'로 바꿉니다.아이디어:첫 번째 문자열을 비교 기준으로 사용합니다.두 번째 문자열부터 문자 하나하나를 비교하며 다른 문자가 있으면 해당 위치에 '?'를 설정합니다.문자열 비교와 수정:StringBuilder를 사용한 이유는 문자열을 수정할 수 있기 때문입니다.String은 불변 객체이므로 StringBuilder가 성능적으로 유리합니다. 정답은 더보기 클릭더보기import java.util.*;public class Main { public static void main(String[] args) { Scanner in = .. [백준] Z (1074번) 코드 힌트Z-모양 탐색:이 문제는 Z-모양으로 배열을 탐색하는 순서를 찾는 문제입니다.2차원 배열을 크기를 절반씩 줄여가며 재귀적으로 탐색합니다.배열 분할:각 호출에서 배열을 4개의 사분면으로 나누고, 목표 좌표가 속한 사분면만 재귀적으로 탐색합니다.나머지 사분면은 탐색하지 않고 그 영역의 칸 수만 더합니다.방문 순서 누적:탐색된 칸 수를 누적하여 목표 위치의 방문 순서를 계산합니다.기저 조건:재귀 호출의 기저 조건은 배열의 크기가 1일 때입니다. 이때 num을 출력합니다. 정답은 더보기 클릭더보기import java.util.*;class Main { static int num = 0; // 방문 순서를 저장하는 변수 static int r, c; // 목표 위치의 행(r), 열(.. [프로그래머스 (Oracle)] 우유와 요거트가 담긴 장바구니 힌트INTERSECT 연산자 사용:INTERSECT는 두 쿼리의 교집합을 구하는 연산자입니다.즉, 'Milk'와 'Yogurt'가 모두 포함된 장바구니만 추출됩니다.개별 조건 쿼리:첫 번째 쿼리: 'Milk'를 포함한 CART_ID 목록을 추출합니다.두 번째 쿼리: 'Yogurt'를 포함한 CART_ID 목록을 추출합니다.중복 없이 공통된 CART_ID만 추출:INTERSECT는 두 쿼리에서 공통으로 나타나는 CART_ID만 반환합니다.정렬 조건:결과를 CART_ID 기준으로 정렬하여 보기 쉽게 정렬합니다.정답은 더보기 클릭더보기SELECT CART_ID -- 'Milk'를 포함한 장바구니 ID 조회 FROM CART_PRODUCTS WHERE NAME = 'Milk.. [프로그래머스 (Oracle)] 헤비 유저가 소유한 장소 코드 힌트서브 쿼리 사용:GROUP BY와 HAVING 절을 사용하여 2개 이상의 장소를 등록한 호스트를 구합니다.이 서브 쿼리의 결과와 PLACES 테이블을 JOIN하여 해당 호스트의 모든 장소를 가져옵니다.GROUP BY와 HAVING 활용:GROUP BY는 동일한 호스트에 등록된 장소들을 그룹화합니다.HAVING COUNT(*) > 1은 그룹 내에 2개 이상의 장소가 있는 호스트만 필터링합니다.JOIN을 사용해 조건 매칭:메인 쿼리에서는 PLACES 테이블과 2개 이상의 장소를 등록한 호스트의 정보를 JOIN합니다.정렬 조건:결과를 ID 기준으로 정렬하여 보기 쉽게 정렬합니다. 정답은 더보기 클릭더보기더보기SELECT P.ID, P.NAME, P.HOST_ID -- 장소의 ID, 이름, 호스트 I.. 이전 1 ··· 6 7 8 9 10 11 12 ··· 54 다음