본문 바로가기

Computer Science 📑20

세마포어 세마포어(Semaphore)는 다중 프로그래밍 환경에서 프로세스나 스레드 간의 동기화 문제를 해결하기 위해 사용하는 중요한 개념입니다. 세마포어는 주로 임계 구역(critical section) 문제를 해결하거나, 공유 자원에 대한 접근을 조절하는 데 사용됩니다.1. 세마포어의 개념세마포어는 간단히 말해, 공유 자원에 접근할 수 있는 "티켓"이나 "신호" 역할을 하는 변수입니다. 이 변수는 항상 0 이상의 정수 값을 가지며, 두 가지 기본적인 연산(P, V 연산)을 통해 값을 조작할 수 있습니다.P 연산(Wait 또는 Down): 세마포어의 값을 감소시키는 연산입니다. 이 연산은 세마포어의 값이 0보다 클 때만 수행되며, 세마포어의 값이 0인 경우에는 값이 증가할 때까지 대기합니다.V 연산(Signal .. 2024. 8. 19.
[Network/네트워크] JWT(Json Web Token) JWT의 이야기에 앞서, 쿠키와 세션에 대한 내용은 요기 있습니다! 쿠키의 보안 문제를 보완해주는 것이 세션! 그러나, 세션은 HTTP의 Stateless를 위배한다. 서버의 세션 저장소라는 곳에 세션 ID, 즉 상태를 저장하기 때문이다. stateful한 인증을 사용하게 되면, 서버에 부담이 상대적으로 많이 가기 때문에 확장성이 낮아진다. 요청을 진행할 때마다 세션 저장소에 세션 ID를 조회하는 작업을 통해 DB접근이라는 로직이 한번 더 수행되는 것 또한 단점이다 이를 위해 등장한 것이 바로 JWT! JWT(Json Web Toke) 인증에 필요한 정보들을 Token에 담아 암호화시켜 사용하는 토큰 인터넷에서 정보를 안전하게 전송하기 위한 오픈 표준으로, JSON 형태의 데이터를 사용한다. 클라이언트와.. 2023. 3. 21.
[Network/네트워크] 라우트 & 라우팅 & 라우터 🚩 라우트(Route) 서로 다른 네트워크 간 데이터를 전송하고 전송한 데이터를 받는 경로 🚀 라우터(Router) 네트워크에서 데이터 패킷을 전달하는 장비 다음 네트워크 지점을 결정하는 장치나 컴퓨터 내의 소프트 웨어 컴퓨팅 디바이스와 네트워크를 다른 네트워크에 연결하는 네트워킹 디바이스 다양한 포트를 통해 다른 네트워크나 장치와 연결된다. 라우터는 데이터 패킷을 수신하여 이를 다른 라우터나 목적지까지 전달한다. 인터넷에서 사용되는 IP 주소를 기반으로 라우팅을 수행한다. 라우터의 기본 기능 1. 경로 결정(라우팅) 소스에서 대상으로 이동하는 데이터의 경로를 결정한다. 지연, 용량 및 속도와 같은 네트워크 지표를 분석하여 최상의 경로를 찾으려고 시도한다. 라우터는 경로를 선택하기 위해 라우팅 테이블을 .. 2023. 3. 21.
[Algorithm/알고리즘] 그리디 알고리즘(Greedy Algorithm) 그리디 알고리즘(Greedy Algorithm) 💸 눈 앞의 이익만 우선 추구하는 알고리즘 매 선택에서 현재 당장 최적인 답을 선택해 전체 적합한 결과를 도출하자는 알고리즘 기법 그리디 알고리즘을 이용하면, 부분 최적해는 구했지만 전체 선택에서는 오히려 최적이 아닌 경로를 선택하여 전체 문제에서의 최적값은 구하지 못하게 된다. 특수한 조건이 만족되어야만 그리디를 이용하여 최적해를 구할 수 있다. 그리디 알고리즘 문제를 해결하는 방법 1. 선택 절차 (Selection Procedure) 현재 상태에서의 최적의 해답을 선택한다. 2. 적절성 검사 (Feasibility Check) 선택된 해가 문제의 조건을 만족하는지 검사한다. 3. 해답 검사 (Solution Check) 원래의 문제가 해결되었는지 검사.. 2023. 3. 19.
[Data Structure/자료구조] CS 질문 정리 🙋‍♀️ 공부하는 과정에 있습니다. 틀린 부분에 대한 지적은 언제든 환영합니다. Q. Array (List)의 가장 큰 특징과 그로 인해 발생하는 장·단점을 설명해주세요.Array의 가장 큰 특징은 순차적으로 데이터를 저장한다는 것입니다. index는 0부터 시작하며, index를 이용하여 특정 요소를 찾고 조작할 수 있다는 것이 장점입니다. 데이터의 중간에 요소가 삭제되거나 삽입되는 경우, 그 뒤의 모든 요소를 당기거나 밀어줘야한다는 단점이 있습니다. Array는 정보가 자주 삭제되거나 추가되는 데이터를 담기에 적절하지 않습니다. Q-1. Array를 적용시키면 좋을 데이터의 구체적인 예와 좋은 이유, 사용하지 않으면 어떻게 되는지주식차트, 주식차트는 데이터의 중간에 요소가 삽입 삭제 되는 타입이 아닌.. 2023. 3. 16.