목록cs study (5)
배움과 기록의 장
대규모 서비스를 운영하거나 설계할 때 고려해야 할 핵심 요소로는 서버 확장 방식, 데이터베이스 가용성, 부하 분산, 캐시 전략 등이 있다. 이 글에서는 실무에서 자주 접하게 되는 클라우드 및 시스템 아키텍처 설계 방식을 정리한다. 🖥️ 서버확장방식서버 확장 방식은 크게 수직 확장(Vertical Scaling)과 수평 확장(Horizontal Scaling)으로 나뉜다.수직 확장(Vertical Scaling): 하나의 서버에 CPU나 RAM 등의 자원을 추가하여 성능을 높이는 방식이다.수평 확장(Horizontal Scaling): 서버 인스턴스를 여러 대로 늘려 트래픽을 분산시키는 방식이다.실무에서는 대부분 수평 확장을 적용한다. 이때 세션 상태를 서버가 들고 있으면 로드 밸런서가 올바른 서버로 요..

🚨 인터럽트(Interrupt)란?시스템의 내부나 외부에서 예기치 못한 이벤트가 발생한 경우, 현재 CPU가 수행 중인 작업을 일시 중단하고 해당 이벤트를 먼저 처리하도록 신호를 보내는 메커니즘을 인터럽트라고 한다. 예를 들어, 키보드를 누르거나 네트워크 패킷이 도착했을 때 인터럽트를 통해 CPU에게 이를 알리는 것을 말한다. 인터럽트는 크게 '하드웨어 인터럽트'와 '소프트웨어 인터럽트'로 구분된다.구분하드웨어 인터럽트 (HW Interrupt)소프트웨어 인터럽트 (SW Interrupt)발생 원인외부 장치 (키보드, 마우스, 타이머 등)프로그램 내부 (시스템 콜, 예외 발생 등)예시디스크 I/O 완료, 타이머 알림 등int 0x80 호출, 0으로 나누기 등목적외부 이벤트 처리시스템 서비스 요청, 예외..

📌 쿠키와 세션을 사용하는 이유 (with HTTP 특징)쿠키와 세션을 사용하는 이유를 알기 위해 우선 HTTP 프로토콜의 특징을 이해해보자HTTP의 대표적인 특징1. 무상태성 Stateless서버가 클라이언트의 상태를 저장하지 않는 것을 의미한다. 클라이언트로부터 첫번째 요청 이후 두번째 요청이 왔을 때, 서버는 첫번째 요청의 상태 정보를 알지 못한다. 즉, 로그인을 하였더라도 다음 요청에서 클라이언트가 누군지 알지 못하는 상황이 발생한다.2. 비연결성 Connectionless서버가 클라이언트의 요청에 대한 응답을 보낸 이후 바로 연결을 종료하는 것을 의미한다. 불필요한 연결을 하지않아 서버 자원을 효율적으로 사용할 수 있다는 장점이 있다. 위와 같은 HTTP 프로토콜의 특징으로 인해 각각의 htt..
🌿 시스템 콜이란사용자 프로그램이 운영체제 커널이 제공하는 서비스를 사용하기 위해 요청하는 인터페이스 사용자 프로그램은 직접 하드웨어 자원에 접근할 수 없기 때문에, 파일 입출력, 프로세스 생성, 네트워크 통신 등과 같은 작업을 하기 위해서 시스템 콜을 통해 운영체제 커널에 요청한다. 다음과 같이 6가지 유형으로 분류할 수 있다. 프로세스 제어(Process Control) : fork(), exec(), exit(), wait()파일 조작 (File Manipulation) : open(), read(), write(), close()장치 조작 (Device Manipulation) : ioctl(), read(), write()정보 유지 (Information Maintenance) : getpid..
2023.1.12 작성 🔸 재귀함수란 - 자기 자신을 호출하는 함수 🔸 재귀함수의 장점- 불필요한 반복문 사용 안해도 돼서 코드가 쉽고 간결해짐, 수정 용의- 변수를 여러개 사용할 필요 없음 🔸 재귀함수의 단점- 코드의 흐름을 직관적으로 파악하기 어려움- 반복하여 매서드 호출 시, 지역변수, 매개변수, 반환값 모두 process stack에 저장하여 비교적 메모리를 많이 사용함- 메서드 종료 후 복귀 시 컨텍스트 스위칭 비용 발생 🔸 재귀함수 사용을 위한 조건 - recursive를 위한 문제 쪼개기 (재귀적 사고.. 헷갈리더라 자주해봐야함) -> recursive case- 재귀함수 탈출/종료 조건이 필요함 -> base case 🔸 재귀 함수 사용이 적합한 상황 (vs 반복문)- 문제를 비..