본문 바로가기

분류 전체보기135

[Network] 동기와 비동기 개요 데이터를 처리하는 방식에는 동기와 비동기 방식이 있습니다. 각각의 특성을 알아보고 어떤 차이점이 있는지 알아보겠습니다. 동기(synchronous) 먼저 동기는 데이터의 요청과 결과 반환이 동시에 일어나는 방식입니다. 여기서 의문점이 생겼는데, 요청에 따른 결과를 반환하기 위해 처리 시간이 필요할텐데 어떻게 요청과 응답이 동시에 일어난다는 것인지 잘 와닿지 않았습니다. 이를 가능하게 만드는 방식은 요청을 보낸 뒤 응답이 올 때까지 기다리는 것이었습니다. 응답을 기다리는 동안 클라이언트는 다른 작업을 하지 못한 채 응답만을 기다리는 상태로 대기하게 됩니다. 비유하자면 상사의 결정을 기다리는 다소 수동적인 부하직원이라고 볼 수 있겠습니다. 정리 - 장점 : 설계가 간단하다. - 단점: 요청에 대한 응답.. 2023. 8. 22.
[백준] 1238. 파티 / Java https://www.acmicpc.net/problem/1238 1238번: 파티 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 10,000), X가 공백으로 구분되어 입력된다. 두 번째 줄부터 M+1번째 줄까지 i번째 도로의 시작점, 끝점, 그리고 이 도로를 지나는데 필요한 소요시간 Ti가 들어 www.acmicpc.net ✔ 문제 풀이 조건 분석 N개의 숫자로 구분된 각각의 마을에 한 명의 학생이 살고 있다. 각각의 학생들은 파티 장소 X에 참석하기 위해 걸어가서 다시 그들의 마을로 돌아와야 한다. 학생들은 최단 시간에 오고 가기를 원한다. 왕복시간이 가장 긴 학생의 소요시간을 구하라. 풀이 학생들은 최단시간에 이동을 원하므로 최단 거리 알고리즘 다익스트라를 생각하였다. 이때, 이동방.. 2023. 8. 17.
[OS] 가상 메모리 메모리란? 프로그램과 프로그램 실행에 필요한 데이터 및 코드를 저장하는 장치 메모리의 종류 주기억 장치: RAM, register, cache memory 보조기억 장치: SSD, HDD 가상 메모리의 필요성 기존에는 프로그램이 실행되기 위해 프로그램 전체가 메모리에 로드되어야 했기 때문에, 메모리(RAM)의 용량은 가장 큰 애플리케이션의 용량보다 커야했다. 하지만 메모리의 접근은 순차적이고 지역화되어 있는 경향이 있기 때문에 전체를 로드하여 사용하는 것은 비효율적이었다. 가상 메모리는 이러한 물리적 메모리 용량의 한계를 극복하기 위해 개발된 기술이다. 프로세스를 실행할 때 필요한 최소한의 부분만 메모리에 로드하고 나머지는 보조기억장치(디스크)에 두는 것이다. 결과적으로 보다 적은 메모리 용량으로 프로그.. 2023. 8. 16.
[Algorithm] BackTracking / Java BackTracking = DFS + prunning ✔ 백트래킹이란? 백트래킹은 한마디로 가지치기(prunning)를 가미한 너비우선탐색(DFS)입니다. 다시 말해서, DFS로 해를 찾아가는 과정에서 수시로 현재 경로의 유망성을 판단하여 유망하지 않음이 판단되면 더이상 나아가지 않고 이전 노드로 돌아가 다른 경로를 탐색하는 방식입니다. 이어서 백트래킹과 완전탐색을 비교함으로써 백트래킹의 특성을 알아보겠습니다. ✔ 백트래킹과 완전탐색(DFS)의 차이 완전탐색과 구분되는 백트래킹의 핵심적인 특성은 '가지치기'에 있습니다. 완전탐색이 모든 경로를 탐색하는 데 반해 백트래킹은 불필요한 경로를 조기에 차단함으로써 탐색 소요를 줄입니다. 따라서 백트래킹의 효율성은 가지치기의 조건에 달려있다고 볼 수 있습니다. 다.. 2023. 8. 16.