CS

CS/네트워크

[Network] 쿠키(Cookie), 세션(Session)이란?

쿠키와 세션의 이해를 돕기위해 아래의 상황을 확인해 보자. 얌념이는 네트워크 책을 사기 위해 자주 이용하는 온라인 서점 사이트에 접속했다. 로그인 창을 열자 자동 로그인 메시지가 떴고 얌념이는 저장된 아이디와 비밀번호로 로그인을 하였다. 원하는 책을 장바구니에 골라 담고 결제를 하려는 순간, 저녁 시간이 되어 얌념이는 저녁을 먹으러 갔다.저녁을 먹고 다시 돌아와 결제를 시도하자 로그인이 풀려 다시 로그인 페이지로 돌아갔다. 얌념이는 결국 다시 로그인을 하고 장바구니에 담긴 책을 결제하였다. 이 상황에서 어떤 것에 쿠키가 활용되고 세션이 활용되었을까? 쿠키 쿠키는 클라이언트, 브라우저의 로컬에 key-value 형태로 저장되는 데이터이다. 특징 브라우저의 로컬에 key-value 형태로 저장됨 유효기간이 ..

CS/알고리즘

[알고리즘] LCS(Longest Common Substring), 최장 공통 부분 수열 구현

LCS(Longest Common Substring) 정의 최장 공통 부분 수열. 주어진 여러 개의 수열의 부분 수열이 되는 수열들 중에 가장 긴 것을 찾는 문제이다. 백준의 이 문제를 보면 어떤 것인지 이해할 수 있다. (LIS: Longest Increasing Subsequence와 비슷하지만 다른 문제다) LCS는 항상 유일하지 않기 때문에 보통 길이를 묻는 문제가 나온다. 알고리즘 여러 문자열의 LCS를 효율적으로 구하기 위해서 DP가 사용된다. 두 문자열 사이의 LCS 길이를 저장하는 2차원 배열 LCS를 만들고, 아래와 같은 방식으로 배열을 채운다. X, Y 문자열 앞에 0을 넣는 이유는, i=1 || j=1일 때 Xi-1, Yj-1 값을 참조해야 할 수도 있기 때문에 만들어두는 것이다. 아..

CS/운영체제

[운영체제] Page Fault, Thrashing

Page Fault 가상메모리에서 물리 메모리에 올려두지 않은 페이지에 대한 요청이 들어와 발생하는 예외 페이지 폴트가 발생하면 운영 체제는 그 데이터를 메모리로 가져와서 마치 페이지 폴트가 전혀 발생하지 않은 것처럼 프로그램이 계속적으로 작동하게 해준다. 원인 Major Page Fault 요청한 페이지가 물리 메모리로부터 page-out 되어 보조기억장치의 가상 메모리에 저장되어있다면 해당 페이지를 다시 물리 메모리로 page-in 해야 하는데 이것을 major page fault라고 한다. major page fault는 Disk I/O를 발생시킨다. Minor Page Fault 요청한 페이지가 물리 메모리에는 로드되었지만 MMU에는 로드되어있지 않다고 표시된 경우 이를 Minor page fau..

CS/운영체제

[운영체제] 가상메모리(Virtual Memory), 페이지 교체(Page Replacement)

Virtual memory 프로세스 전체가 메모리에 올라와 있지 않아도 실행이 가능하도록 하는 기법 당장 실행에 필요한 부분만 주기억장치(RAM)에 저장하고, 나머지는 보조기억장치(HDD)에 두고 동작하도록 하는 방법. 프로세스의 일부 메모리만 올려서 전체 프로세스를 병렬적으로 돌리게 함. 물리적 메모리에 제약을 덜 받으며 더 많은 프로세스를 한꺼번에 돌릴 수 있다. 장점 프로그래밍 용이성 이용률, 처리율 상성 단점 메모리 디스크 간 이동량 증가 → 속도 떨어짐, 교체 공간 확보 필요 페이지 부재 시 처리 방법 필요 왜 필요한가 프로그램이 실행되려면 우선 주기억장치에 들어가야 하는데, 다음과 같이 크기 5의 프로그램이 실행을 위해 크기 10의 주기억장치로 들어갈 때는 아무런 문제가 발생하지 않는다. 하지..

CS/알고리즘

[알고리즘] Prim VS Dijkstra, 프림 다익스트라 차이점

https://coding-insider.tistory.com/entry/Prim-vs-Dijkstra-%ED%94%84%EB%A6%BC-%EB%8B%A4%EC%9D%B5%EC%8A%A4%ED%8A%B8%EB%9D%BC-%EB%B9%84%EA%B5%90 Prim vs Dijkstra (프림 다익스트라 비교) 프림 알고리즘 (최소스패닝트리) 그래프상에 존재하는 모든 노드들을 최소비용으로 연결시키는 알고리즘 #include #include #include #include using namespace std; int visited[10001]; int V, E; int ans; vector map[10001]; coding-insider.tistory.com

CS/자바 & 스프링

[JAVA] JVM, JVM 메모리 구조

JVM (JAVA Virtual Machine) 정의 자바를 실행하기 위한 가상머신 ARM 아키텍쳐 같은 하드웨어는 레지스터 기반으로 동작하는데 비해 JVM은 스택기반으로 동작한다. 역할 자바 애플리케이션을 클래스 로더를 통해 읽어 들여 자바 API와 함께 실행 JAVA와 OS사이에서 중개자 역할을 수행하여 JAVA가 OS에 구애받지 않고 재사용을 가능하게 만듦 메모리관리, Garbage collection을 수행 구조 자바로 작성한 코드는 실행되기까지 크게 세단계를 거친다. 자바 소스코드(.java)가 작성됨 컴파일러가 소스코드(.java)를 바이트 코드(.class)로 변환 클래스 로더가 컴파일된 바이트 코드(.class)를 JVM의 실행 영역에 로드한 뒤 실행 더 구체적인 실행 과정은 접은 글을 참..

CS/자바 & 스프링

[JAVA] 변수와 메서드, 데이터 타입 (기본형, 참조형)

변수 데이터를 저장하기 위해 메모리에 공간을 만들어 할당하고, 이름을 부여한 것 클래스 변수 (Class variables) 클래스에서 선언된 변수. static 이 붙으면 클래스 변수, 클래스 메서드가 된다. (아무것도 없으면 인스턴스 변수, 인스턴스 메서드가 됨) 클래스가 로딩될 때 클래서 변수가 생성되고 JVM에 의해 클래스가 메모리에 올라가면 초기화 됨. 클래스 변수는 언제라도 바로 사용할 수 있고 프로그램 종료까지 유지된다. 모든 인스턴스가 공통된 값을 공유할 때, 인스턴스를 생성할 필요가 없는 값을 저장할 때 사용. JVM 메모리의 method 영역에 올라간다. 인스턴스 변수 (Instance variables) 클래스에서 선언된 변수. 클래스의 인스턴스를 생성할 때 만들어진다. 따라서 인스턴..

CS/알고리즘

[알고리즘] 최소 신장 트리, MST(Minimum Spanning Tree), Prim, Kruskal

최소 신장 트리, MST (Minimum Spanning Tree) 개념 신장 트리(spanning tree): 그래프에서 모든 정점에 대한 최소한의 연결만을 남긴 최소 연결 부분 그래프. 최소 신장 트리(minimum spanning tree): 신장 트리 중 간선의 가중치 합이 가장 작은 트리 특징 (n-1)개의 간선만을 사용하며 간선의 가중치 합이 최소여야 한다. 사이클이 없어야 한다. (사이클이 존재 == 한 곳으로 도달하는 경우가 두 개 이상 존재 != 최소한의 연결) 그리디 기법으로 최적의 해를 구할 수 있다. 관련 알고리즘 Kruskal's Algorithm 작동 그래프의 모든 간선의 집합 E을 만든다. E가 비어있지 않을 때까지 아래를 반복한다. E의 간선들 중 가중치가 최소인 간선을 지운..

CS/알고리즘

[알고리즘] 이분 탐색과 최적화 문제

참고글 이분 탐색(Binary Search) 헷갈리지 않게 구현하기 개요 이분 탐색은 off-by-one error가 발생하기 쉬워서 늘 헷갈립니다. 이분 탐색 문제를 풀다보면 탈출 조건으로 lo

CS/알고리즘

[알고리즘] 유클리드 호제법

유클리드 호제법(-互除法, Euclidean algorithm) 2개의 자연수 또는 정식(整式, 유리식)의 최대공약수를 구하는 알고리즘의 하나이다. 호제법: 두 수가 서로 상대방 수를 나누어서 결국 원하는 수를 얻는 알고리즘 유클리드 호제법은 A와 B의 최대공약수를 A를 B로 나눈 나머지 값을 활용하여 구하는 방식이다. 그 내용은 다음과 같다. A와 B의 최대공약수를 (A, B)라 표기할 때, (A, B) = (B, A%B) 이다. 유클리드 호제법은 위의 과정을 나누는 수가 0이 되어 더이상 나눌 수 없을 때 까지 반복한다. 수식으로 표현하면 이렇게 된다. (A, B) = (B, A%B) = (A%B, B%(A%B)) = (B%(A%B), (A%B)%{B%(A%B)}) = ... 예시를 함께 보자. 78..

얌얌념념
'CS' 카테고리의 글 목록