Programming Language(100)
-
[백준] 통신망 분할 (17398, Java)
문제 BOJ의 인기스타, 방송인 권욱제는 통신 회사에 취업했다. 현재 이 통신 회사는 너무나 큰 통신망을 한 지사에서 관리하느라 큰 비용을 지불하고 있었다. 그래서 회사는 최근 IT의 트렌드 중 하나인 '탈중앙화'에 편승하여, 통신망을 분할하도록 결정했다. 그래서 욱제한테 통신망을 분할 할때 발생하는 비용을 분석하도록 지시했다. 현재 회사 망에는 1번부터 N번까지 총 N개의 통신 탑이 존재하며, 통신탑 간의 연결이 M개 존재한다. 이때 회사에서는 총 Q번 통신탑 간의 연결을 제거함으로써 하나의 통신망을 여러 개의 통신망으로 분리하려고 한다. 통신망이란, 통신탑의 연결을 통해 도달 가능한 통신탑들의 집합이다. 통신탑 간의 연결 관계를 제거할 때 드는 비용은 제거한 후 통신망이 두 개로 나누어진다면 나눠진 ..
2022.08.22 -
[HG닷컴] #1 세션 저장소
[Infra] 대용량 트래픽 대응 - 3. 세션 저장소로 어떤 것을 사용할 것인가 (tistory.com) [Infra] 대용량 트래픽 대응 - 3. 세션 저장소로 어떤 것을 사용할 것인가 앞서 Scale out을 서버 성능 향상 기법으로 선택했을 때 생기는 문제점인 데이터 불일치 문제에 대해서 세 가지의 기법을 알아보았고, 그 중 세션 저장소 분리 방법을 적용하기로 하였다. 그렇다면 hgcode.tistory.com 앞서 작성한 글에서 세션 저장소로 어떤 것을 사용할 것인지 알아본 바 있었다. 내가 진행한 프로젝트 역시 세션 저장소를 필요로 했다. 분산 처리 환경을 가정했을 때 세션 저장소의 분리 방법을 활용하기 위해서는 In-memory 방식의 데이터베이스 (빠른 요청 처리, 세션의 특징을 고려) 를..
2022.08.21 -
[백준] 모노디지털 표현 (2287, Java)
문제 몇 개의 숫자 K(K는 1, 2, …, 9중 하나)와 사칙 연산(덧셈, 뺄셈, 곱셈, 나눗셈)만을 사용하여 어떤 자연수 X를 수식으로 표현한 것을 X의 K-표현이라 부른다. 수식에는 괄호가 포함될 수 있으며, 나눗셈은 나눈 몫만을 취한다. 예를 들어 12의 5-표현을 몇 개 써 보면 5+5+(5/5)+(5/5), 55/5+5/5, (55+5)/5 등이 있다. K-표현의 길이를 사용한 K의 개수라 하면, 각각의 길이는 6, 5, 4가 된다. K가 주어졌을 때, 어떤 자연수의 K-표현 중 가장 짧은 길이를 알아보려 한다. 입력 첫째 줄에 K가 주어진다. 다음 줄에는 표현 식을 찾을 수의 개수 n(1 ≤ n ≤ 1,000)이 주어진다. 다음 줄에는 K-표현 중 가장 짧은 길이를 알아보려 하는 자연수 a(..
2022.08.21 -
[OS] PCB와 Context Switching
Process Management Process Management는 CPU가 프로세스가 여러 개일 때, CPU 스케줄링을 통해 관리하는 것을 말한다. 이 때, CPU는 각 프로세스가 누군지 알아야만 관리가 가능하게 된다. 따라서, 프로세스를 구분하기 위해 저장하는 정보를 Process Metadata라고 한다. Process Metadata는 다음과 같은 정보들이 있다. Process ID : PID(Process Identification Number) 라고도 한다. 프로세스 고유 식별 번호 Process State (Process 상태) 프로세스의 현재 상태 (준비, 실행, 대기 상태)를 기억시킨다. Program Counter (계수기) 다음에 실행되는 명령어의 주소를 기억시킨다. Process ..
2022.08.20 -
[OS] 프로세스와 스레드의 차이?
자세한 버전 프로세스 : 실행중인 프로그램을 가리키며, 디스크로부터 메모리로 적재되어 CPU의 할당을 받을 수 있다. 프로세스는 생성될 때 각각 별도의 주소 공간에 할당되며 코드, 데이터, 힙, 스택 영역을 가지게 된다. 멀티 프로세스의 장점은 각 프로세스 간에 독립적으로 동작하기 때문에 서로 영향을 끼치지 않는다. 단점으로는, 각각 독립된 메모리 영역을 가지고 있어 다른 프로세스와 데이터 공유 간 IPC를 해야하는 등의 오버헤드가 존재하고, Context Switching에 대한 오버헤드를 가진다. 스레드 : 프로세스의 실행 단위를 가리킴. 프로세스와 달리 스레드는 다른 스레드와 공간, 자원을 공유한다. 멀티 스레드의 장점으로는 전역 변수와 정적 변수에 대한 자료를 공유할 수 있고, 단점으로는 하나의 ..
2022.08.20 -
[OS] 운영체제란?
하드웨어와 소프트웨어 사이에 위치 운영체제의 목적 사용자에게 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공 하드웨어의 복잡한 동작을 다루는 부분은 운영체제에서 담당, 유저는 하드웨어의 동작에 대해 몰라도 된다. 컴퓨터 시스템의 자원(CPU, memory)을 효율적으로 관리 운영체제의 종류 : MSDos, Mac, Windows, IOS, Android MSDos에서는 한 번에 하나의 작업만을 수행 가능 사용자 프로그램(application)은 특정 OS에 맞춰서 만든다. (IOS 기반 앱이 안드로이드에서 동작하지 못함) 부팅 과정 컴퓨터의 전원이 켜지면 프로세서는 메모리 0번지(Rom)에 위치하는 POST(power-on-self-test)를 실행시킴 POST는 boot loader를 실행시키고,..
2022.08.20