전체 글

전체 글

    HTTP와 HTTPS | 대칭키, 비대칭키

    ❏ HTTP(80)HyperText Transfer Protocol의 약자로, HTTP는 서로 다른 시스템 간 효과적인 통신을 할 수 있도록 하는 프로토콜입니다. 웹 브라우저와 웹 서버 간의 기본적인 통신을 담당합니다. ❍ Client - ServerHTTP는 웹에서 이루어지는 대부분의 기초 프로토콜이며, 클라이언트에서 URL을 통해 서버에 요청(Request)을하면, 서버에서는 해당 요청에 대한 결과를 응답(Response)하는 형태로 동작합니다. ❍ 무상태 프로토콜(Stateless)HTTP는 Stateless한 특성을 가지고 있기 때문에, 서버는 클라이언트의 상태를 보관하지 않습니다. 즉, 서버와의 요청 간에 유지되는 데이터가 존재하지 않기 때문에, 서버는 클라이언트를 식별할 수 있는 능력이 없습니..

    [Java] 불변 객체(Immutable Object)란?

    불변 객체의 개념과 장점, 불변 객체를 사용하는 방법을 소개합니다. ❏ 불변 객체?불변 객체(Immutable Object)란 객체 생성 이후에는 객체의 상태가 바뀌지 않는 객체를 의미한다. ❍ 불변 객체의 장점1️⃣ 객체의 대한 신뢰도가 높아지고, 안전하게 서비스 개발할 수 있다. 예를 들어, Pet이라는 객체가 name, age 등등의 필드를 가진 상황이다.... if (healthService.isBestRunner(pet)) { healthService.increasePoint(pet); } if (healthService.isNotHealthy(pet) { healthService.runTraining(pet); } ...pet이 Best Runner라면 increasePoint( )를 실행하고..

    [CS/OS] PCB, Interrupt, Context Switching

    ❏ PCB프로세스 제어 블록(Process Control Block, PCB)는 운영체제가 프로세스를 관리하는 것에 있어서 아주 중요한 자료구조입니다. 프로세스에 대해 중요한 정보를 저장하고 있기 때문입니다. ❍ Process MetaData여러 가지의 프로세스를 수행 및 관리하기 위해선 각각의 프로세스에 대한 정보를 알고 있어야 하기 때문에, 다음과 같은 정보들이 PCB에 저장됩니다. 이러한 정보를 Process MetaData라고 합니다. 1. 프로세스 ID 각 프로세스에 부여된 고유한 식별자, 이를 통해 프로세스를 식별하고 구분합니다. 2. 프로세스 상태 New : 프로세스가 생성된 상태 Ready : CPU를 할당 받기 위해 대기하는 상태 Running : CPU를 할당 받아 명령어를 실행 중인 ..

    [CS / OS] 프로세스 VS.  스레드

    [CS / OS] 프로세스 VS. 스레드

    들어가며 “프로세스와 스레드의 차이점”은 면접을 위해 준비해야 할 중요한 주제이기도 합니다. 프로세스와 스레드에 대해 소개하고, 둘의 차이점에 대해 소개합니다. 먼저, 프로세스를 소개하기 전, 프로그램에 대해 알아봅시다. ❏ 프로그램(Program)프로그램(Program)이란, 어떠한 작업을 위해 실행할 수 있는 파일입니다. 흔히 어떠한 프로그램을 설치하고자, 다운로드를 받은 파일을 살펴보면 확장자가 “.exe”라고 되어있는 것을 볼 수 있습니다. 이를 프로그램이라고 합니다. 아직 프로그램을 실행하지 않았기에 운영체제로부터 자원을 할당 받지 않은 상태로, 메모리에 올라가 있지 않은 상태입니다. 자, 이제 코드 덩어리 상태일 뿐인 멈춰있는 프로그램을 실행시켜 보도록 합시다. 프로그램을 실행을 하게 된다면,..

    [BOJ/ Python] LCS || 다이나믹 프로그래밍

    [BOJ/ Python] LCS || 다이나믹 프로그래밍

    백준 LCS 파이썬 9251 9251번: LCSLCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다.www.acmicpc.net 더보기 ❍ 문제 LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. ❍ 입력 첫째 줄과 둘째 줄에 두 문자열이 주어진다. 문자열은 알파벳 대문자로만 이루어져 있으며, 최대 1000글자로 이루어져 있다. ❍..

    [BOJ/Python] 스티커 || 다이나믹 프로그래밍

    [BOJ/Python] 스티커 || 다이나믹 프로그래밍

    백준 스티커 파이썬 9465 9465번: 스티커첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 n (1 ≤ n ≤ 100,000)이 주어진다. 다음 두 줄에는 n개의 정수가 주어지며, 각 정수는 그 위치에 해당하는 스티커의 www.acmicpc.net더보기❍ 문제상근이의 여동생 상냥이는 문방구에서 스티커 2n개를 구매했다. 스티커는 그림 (a)와 같이 2행 n열로 배치되어 있다. 상냥이는 스티커를 이용해 책상을 꾸미려고 한다.상냥이가 구매한 스티커의 품질은 매우 좋지 않다. 스티커 한 장을 떼면, 그 스티커와 변을 공유하는 스티커는 모두 찢어져서 사용할 수 없게 된다. 즉, 뗀 스티커의 왼쪽, 오른쪽, 위, 아래에 있는 스티커는 사용할 수 없게 된다.모든 스티커를 붙일 수..

    [BOJ/Python] 1로 만들기 2 || 다이나믹 프로그래밍

    [BOJ/Python] 1로 만들기 2 || 다이나믹 프로그래밍

    백준 1로 만들기 2 파이썬 12858 12852번: 1로 만들기 2첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 자연수 N이 주어진다.www.acmicpc.net더보기❍ 문제정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다.X가 3으로 나누어 떨어지면, 3으로 나눈다.X가 2로 나누어 떨어지면, 2로 나눈다.1을 뺀다.정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오.❍ 입력첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 자연수 N이 주어진다.❍ 출력첫째 줄에 연산을 하는 횟수의 최솟값을 출력한다.둘째 줄에는 N을 1로 만드는 방법에 포함되어 있는 수를 공백으로 구분해서 순서대로 출력한다. 정답이..

    [Goorm/Python] 대체 경로 || 구름톤 챌린지 (다익스트라, BFS)

    [Goorm/Python] 대체 경로 || 구름톤 챌린지 (다익스트라, BFS)

    구름톤 챌린지 대체 경로 파이썬 195701 구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io 더보기 ❏ 문제 설명 ❍ 문제 플레이어는 1번부터 N번까지의 번호가 붙은 N개의 도시와 M개의 도로가 있는 나라에 살고 있다. 각 도로는 서로 다른 두 도시를 양방향으로 연결하고 있고, 주어진 도로만을 이용해 임의의 두 도시 사이를 이동하는 것이 가능하다. 플레이어는 차를 타고 S번 도시에서 E번 도시로 이동하려고 한다. 플레이어가 두 도시 사이를 이동할 때는 항상 가장 작은 수의 도시를 거치는 경로를 따라 이동한다. 예를 들어 아래 그림과 같이 도시와 도로가 주어지고, 플레이어가 1번 도시에서 4번 도시로 이동하려고 할 때는 항상 1 → 3 → 4..

    [BOJ/Python] 이동하기 || 다이나믹 프로그래밍

    [BOJ/Python] 이동하기 || 다이나믹 프로그래밍

    백준 이동하기 파이썬 11048 11048번: 이동하기준규는 N×M 크기의 미로에 갇혀있다. 미로는 1×1크기의 방으로 나누어져 있고, 각 방에는 사탕이 놓여져 있다. 미로의 가장 왼쪽 윗 방은 (1, 1)이고, 가장 오른쪽 아랫 방은 (N, M)이다. 준규는 www.acmicpc.net더보기❍ 문제준규는 N×M 크기의 미로에 갇혀있다. 미로는 1×1크기의 방으로 나누어져 있고, 각 방에는 사탕이 놓여져 있다. 미로의 가장 왼쪽 윗 방은 (1, 1)이고, 가장 오른쪽 아랫 방은 (N, M)이다.준규는 현재 (1, 1)에 있고, (N, M)으로 이동하려고 한다. 준규가 (r, c)에 있으면, (r+1, c), (r, c+1), (r+1, c+1)로 이동할 수 있고, 각 방을 방문할 때마다 방에 놓여져있는 ..

    [Goorm/Python] 통신망 분석 || 구름톤 챌린지 (union, bfs)

    구름톤 챌린지 통신망 분석 파이썬 구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io 더보기 ❏ 문제 설명 ❍ 문제 이 세상에는 수많은 컴퓨터들이 통신망을 통해 서로 연결되어 정보를 교류하고 있다. 오늘 플레이어는 이 거대한 통신망 중 한 구역을 조사하고자 한다. 플레이어가 조사할 구역에는 N개의 컴퓨터가 있고, M개의 통신 회선이 있다. 각 컴퓨터는 1번부터 N번까지 번호가 붙어 있고, 통신 회선은 서로 다른 두 컴퓨터를 양방향으로 연결하고 있다. 컴퓨터들은 연결 여부에 따라 여러 개의 컴포넌트로 나뉜다. 어떤 두 컴퓨터가 통신 회선만을 이용해서 연결되어 있다면 두 컴퓨터는 같은 컴포넌트에 속한다. 플레이어는 여러 개의 컴포넌트 중, 가장 밀..