본문 바로가기

Data Engineer30

CPU 스케줄링 💡 스케줄링 단계 레벨 1 - 고수준 스케줄링: 시스템에서 전체 프로세스의 수를 결정 레벨 2 - 중간 수준 스케줄링: 프로세스가 활성화 상태일 때 문제가 발생한 경우 이미 활성화된 프로세스의 일부를 보류 상태로 보낸다. 레벨 3 - 저수준 스케줄링: 준비 상태에 있는 프로세스를 실행 상태로 보내거나, 실행 상태를 대기 상태로 보내거나 가장 작은 단위의 스케줄링 CPU 스케줄링을 할 때 고려사항들이 무엇이 있을까 ❓ 우선순위가 높은 프로세스는 중요도가 높기에 더 자주 많이 사용된다. 커널 프로세스, 전면 프로세스, 대화형 프로세스, 입출력 프로세스는 우선순위가 높고 일반 프로세스, 후면 프로세스, 일괄처리 프로세스, CPU 집중 프로세스는 우선순위가 낮다. 입출력 프로세스가 CPU 집중 프로세스보다 먼저.. 2021. 5. 24.
스레드의 공유자원 관리(동기화) 운영체제로부터 시스템 자원을 할 장 받는 작업의 단위를 프로세스라고 한다. 시스템 자원의 예로는 무엇이 있을까 ❓ 1. CPU 시간 2. 운영되기 위해 필요한 주소 공간 3. Code, Data, Stack, Heap의 구조로 되어 있는 독립된 메모리 영역 프로세스는 각각 독립된 메모리 영역을 가지고 있는데 프로세스 내에 실행되는 여러 흐름의 단위인 스레드와 메모리 영역을 공유한다. 하나의 프로세스 안에 여러 스레드가 존재(기본적으로 하나의 스레드를 가지고 있음)할 수 있으며 같은 프로세스 내에 있는 스레드들은 각각의 Stack 영역을 가지고 있고 Code, Data, Heap 영역은 공유한다. 스택 안에는 지역변수, 리턴 주소, 값 파라미터, 리턴 값이 들어가며 이것은 각각의 스레드가 가지고 있다. 힙.. 2021. 5. 9.
인증 방법인 Cookie와 Session에 대해 알아보자 HTTP 프로토콜은 무상태 프로토콜로써 어떠한 상태도 유지하지 않고 비연결성이다. (Stateless + Connectionless) 따라서 로그인을 하면 테이터 요청에 대해 일시적으로 이루어진다. 그러면 서버에게 정보를 요청한 사용자가 이전의 사용자와 같은 사용자인지 확인하는 것이 필요하다. 즉 인증이 필요한 것이다. 인증이란 무엇일까 ❓ ✌ 인증 API 요청에 대해 사용가능한 사용자인지 확인하는 절차로 클라이언트가 주장하는 사용자와 같은 사용자인지 확인한다. ✌ 인가 사용자가 특정 자원에 대한 접근 권한이 있는지 권한을 체크하는 것으로 클라이언트가 하고자 하는 작업이 해당 클라이언트에게 허가된 작업인지 확인한다. 따라서 사용자의 권한 레벨에 따라 접근할 수 있는 부분을 제한할 수 있다. 인증 방법에 .. 2021. 3. 24.
Spring AOP 알아보기 AOP(Aspect Oriented Programming)는 관점 지향 프로그래밍으로 하나의 비즈니스 로직은 관심사와 핵심적인 로직으로 이루어져 있다. 여기서 관심사란 소스 코드상에서 계속 반복되는 부분으로 예외처리, 인증 등이 해당된다. 즉 주변 로직, 부가기능으로 볼 수 있다. 💡 관심사의 예 1. 파라미터가 올바르게 들어왔을까?? 2. 사용자의 인증을 적절히 받아왔을까?? 3. 이 작업에서 발생할 수 있는 예외 처리는 어떻게 해야 할까?? 즉 AOP의 목표는 핵심적인 로직에서 관심사를 분리하여 재사용하겠다는 것이다. 이것을 관심사의 분리(=Separate concerns)라고 부른다. 관심사를 분리하면 코드의 반복을 줄일 수 있기 때문이다. AOP 개발방식에서 개발자가 주의해야 하는 것은 무엇일까 .. 2021. 3. 21.
Async와 Await로 흐름 제어하기 Promise을 사용하여 흐름을 제어할 경우 callback hell에 빠질 수 있고 코드도 복잡해진다. 따라서 코드의 가독성을 높이고 Promise의 단점을 보환 하고자 async와 await가 나왔다. Async Promise를 사용하지 않고 효과적으로 callback hell 해결, 암묵적으로 promise를 반환 Await Promise를 기다림(성공 혹은 실패), async로 정의된 내부에서만 사용 가능 💡 Async와 Await 기본 형태 💡 Async와 Await 활용해보기 함수명은 Signup으로 회원가입을 할 때 사용하는 컨트롤러이다. checkUser 비동기 처리 메서드는 데이터베이스에 접근하여 데이터를 가지고 오는 것이기에 데이터를 가지고 온 후에 코드가 실행되어 예외처리를 하여야 한.. 2021. 3. 16.
엣지 검출과 허프 변환 Edge란 경계선, 윤곽선을 의미하며 영상처리에서는 밝기가 급격하게 변하는 부분을 말한다. 픽셀 값이 급격하게 변하는 지점이 Edge부분이며 Edge를 검출함으로써 물체의 의치, 모양, 크기, 방향성 등에 대한 정보를 쉽게 찾을 수 있다. 픽셀은 곡선 그래프처럼 연속 공간에 있는 것이 아니기에 미분 근삿값으로 Edge을 찾을 수 있다. 이 말은 서로 붙어 있는 픽셀 값의 차를 구하면 된다는 것이다. 💡 Sobel Filter Sobel이 고안해낸 가장자리 검출 알고리즘으로 3X3 크기의 행렬을 사용하여 연산하였을 때 중심을 기준으로 각 방향 값을 비교하여 픽셀 값의 변화량을 검출한다. X축 필터는 세로 성분을 검출하고 Y축 필터는 가로 성분을 검출한다. 대각선을 검출하는 Sobel filter는 다음과 .. 2021. 3. 12.