목록전체 글 (141)
종식당

☕ 컨텍스트 스위칭 (Context Switching)컨텍스트 스위칭은 CPU나 코어에서 실행 중이던 프로세스나 스레드가 다른 프로세스나 스레드로 교체되는 과정을 말한다. 이는 멀티태스킹 시스템에서 여러 작업을 효율적으로 관리하기 위해 필수적인 메커니즘이다. 🐶 컨텍스트 (Context)컨텍스트는 프로세스나 스레드의 현재 상태를 의미한다. 여기에는 CPU의 레지스터 상태(프로그램 카운터, 스택 포인터 등)와 메모리 상태가 포함된다. 컨텍스트는 프로세스나 스레드가 실행을 중단하고 나중에 다시 시작할 때 필요한 모든 정보를 담고 있다.🪶 컨텍스트 스위칭이 필요한 이유멀티태스킹 시스템에서는 여러 프로세스나 스레드가 동시에 실행되는 것처럼 보이도록, CPU가 짧은 시간 단위로 작업을 전환하며 여러 작업을 처..

https://www.acmicpc.net/problem/5427📝 문제 설명사람은 #(벽)을 이동할 수 없으며 *(불)을 피해서.(빈 공간)만을 이동할 수 있다. 사람은 불이 있는 칸과 이제 불이 번지려는 칸을 피해서 경계선에 도착해 탈출해야 한다. 사람은 불이 먼저 이동하고 그 후에 이동해야 한다. 이는 1초가 걸린다. 탈출하는데 가장 빠른 시간을 출력하고 탈출을 하지 못하면 IMPOSSIBLE을 출력하면 된다.✨ 제출 코드import java.io.*;import java.util.*;public class Main{ static int [] dx = {-1,1,0,0}; static int [] dy = {0,0,-1,1}; static int w,h; static char..

기존의 개발하고 있던 서비스의 서버가 한계에 도달하는 경우, 스케일 업 혹은 스케일 아웃을 고려할 수 있다.스케일 업 (Scale Up)스케일 업은 기존의 서버를 더욱 높은 사양으로 업그레이드하는 것을 의미한다. 예를 들어, AWS에서 EC2 t2.micro에서 t2.small로 업그레이드하는 방식이 스케일 업이다. 스케일 업 방식은 상대적으로 간단하게 서버의 성능을 향상할 수 있다는 장점이 있다. 하지만, 특정 서버를 무한정 업그레이드할 수 없으며, 장애에 대한 자동복구(failover)나 다중화(re-dundancy) 방안을 제시하지 않는다. 또한 스케일 업 전략을 선택하는 경우에는 향후 사용량을 미리 추정하여 미리 고사양의 서버를 확보하는 경우가 있다.이러한 경우 실제 필요한 서버의 사양보다 과한 ..

☕ ACIDACID란 원자성(Atomicity), 일관성(Consistency), 격리성(Isolation), 지속성(Durability)의 약자이며, 데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질을 의미한다. 🍞 원자성(Atomicity)원자성은 트랜잭션 내부 연산들이 부분적으로 실행되고 중단되지 않는 것을 보장한다. 쉽게 말하자면, 트랜잭션은 전체 성공과 전체 실패 중 한 가지만 수행한다는 것이다. 예를 들면, 계좌 이체 트랜잭션은 다음과 같은 연산으로 이루어져 있다. 이때 2번 과정에서 에러가 발생하면 1번 과정을 취소해야 한다.1. A 계좌에 3000원 출금2. B 계좌에 3000원 입금🥯일관성(Consistency)일관성은 트랜잭션이 성공적으로 완료되면 일관성 있는 데이..

🥮 REST(Representational State Transfer)REST는 자원의 표현을 이용하여 상태를 주고받는 것을 의미한다. 여기서 자원이란 소프트웨어가 관리하는 모든 것을 의미하며 자원의 표현은 자원을 나타내기 위한 이름을 의미한다. 가령, 서버가 관리하는 주문 데이터는 order라고 표현할 수 있다. 최근에는 일반적으로 자원의 상태를 나타내기 위해 JSON포맷을 사용한다. REST는 네트워크 상에서 클라이언트와 서버의 통신 방식 중 하나이며, HTTP프로토콜을 사용한다. 구체적으로는 HTTP URI를 사용하여 자원을 명시하고 HTTP METHOD를 통해 CRUD연산을 적용하는 것을 의미한다. API란 컴퓨터 프로그램 간 정보를 주고받을 수 있도록 하는 일종의 출입구와 같은 역할을 수행한다..