전체 글(754)
-
[CS] 교착상태에 대한 나름의 이해
교착상태(Deadlock)는 4가지 조건이 갖추어지면 발생한다. 1. 상호배제: 하나의 프로세스만 공유자원에 접근할 수 있다. 락킹 메커니즘과 같다. 그러니까 나 말고 다른 애는 못들어오는 거다(상호배제) 2. 점유와 대기: 하나를 점유하고 있는 프로세스가 다른 하나의 프로세스를 대기하고 있는 것이다. 3. 비선점: 프로세스가 강제로 다른 프로세스로부터 공유 자원을 뺏을 수 없다. 4. 환형대기: 프로세스가 자신의 자원을 점유하면서 앞 또는 뒤로 자원을 대기한다. 식사하는 철학자 문제 위의 네 가지가 충족되면 교착상태가 발생하고 하나라도 충족이 되지 않으면 발생하지 않는다. 각각에 대한 해결책은 다음과 같다. 1. 상호배제 부정: 세마포어 등과 같이 여러 개의 프로세스가 접근할 수 있도록 한다. 2. 점..
2023.10.14 -
[알고리즘][X][RE] 등산코스 정하기
문제 설명 XX산은 n개의 지점으로 이루어져 있습니다. 각 지점은 1부터 n까지 번호가 붙어있으며, 출입구, 쉼터, 혹은 산봉우리입니다. 각 지점은 양방향 통행이 가능한 등산로로 연결되어 있으며, 서로 다른 지점을 이동할 때 이 등산로를 이용해야 합니다. 이때, 등산로별로 이동하는데 일정 시간이 소요됩니다. 등산코스는 방문할 지점 번호들을 순서대로 나열하여 표현할 수 있습니다. 예를 들어 1-2-3-2-1 으로 표현하는 등산코스는 1번지점에서 출발하여 2번, 3번, 2번, 1번 지점을 순서대로 방문한다는 뜻입니다. 등산코스를 따라 이동하는 중 쉼터 혹은 산봉우리를 방문할 때마다 휴식을 취할 수 있으며, 휴식 없이 이동해야 하는 시간 중 가장 긴 시간을 해당 등산코스의 intensity라고 부르기로 합니다..
2023.10.13 -
[SQL][2] 과일로 만든 아이스크림 고르기
문제 설명 다음은 아이스크림 가게의 상반기 주문 정보를 담은 FIRST_HALF 테이블과 아이스크림 성분에 대한 정보를 담은 ICECREAM_INFO 테이블입니다. FIRST_HALF 테이블 구조는 다음과 같으며, SHIPMENT_ID, FLAVOR, TOTAL_ORDER 는 각각 아이스크림 공장에서 아이스크림 가게까지의 출하 번호, 아이스크림 맛, 상반기 아이스크림 총주문량을 나타냅니다. FIRST_HALF 테이블의 기본 키는 FLAVOR입니다. NAMETYPENULLABLE SHIPMENT_IDINT(N)FALSE FLAVORVARCHAR(N)FALSE TOTAL_ORDERINT(N)FALSE ICECREAM_INFO 테이블 구조는 다음과 같으며, FLAVOR, INGREDITENT_TYPE 은 각각..
2023.10.13 -
[알고리즘][2][X] 조건에 부합하는 중고거래 댓글 조회하기
문제 설명 다음은 중고거래 게시판 정보를 담은 USED_GOODS_BOARD 테이블과 중고거래 게시판 첨부파일 정보를 담은 USED_GOODS_REPLY 테이블입니다. USED_GOODS_BOARD 테이블은 다음과 같으며 BOARD_ID, WRITER_ID, TITLE, CONTENTS, PRICE, CREATED_DATE, STATUS, VIEWS은 게시글 ID, 작성자 ID, 게시글 제목, 게시글 내용, 가격, 작성일, 거래상태, 조회수를 의미합니다. Column nameTypeNullable BOARD_IDVARCHAR(5)FALSE WRITER_IDVARCHAR(50)FALSE TITLEVARCHAR(100)FALSE CONTENTSVARCHAR(1000)FALSE PRICENUMBERFALSE ..
2023.10.12 -
[Spring] 조회 빈이 두 개 이상일 때 생기는 문제에 대한 나름의 이해
의존관계 자동 주입을 할 때 만약 같은 타입의 빈이 두 개 이상이라면 어떻게 될까? NoUniqueBeanDefinitionException이 발생하게 된다. 상당히 실무에서 자주 발생하는 에러이다. 그렇다고 하위 타입으로 하기에는 DIP를 위반하고 이것도 두 개 이상이라면 역시나 문제가 된다. 이를 해결하기 위해서는 어떻게 해야할까? Reference https://www.inflearn.com/course/lecture?courseSlug=%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8&unitId=55377 학습 페이지 www.inflearn.com
2023.10.12 -
[CS] 동기 비동기 블록 논블록에 대한 나름의 이해
동기는 작업이 순서대로 처리되는 것이다 비동기는 작업이 동시에 처리되는 것이다 블로킹은 작업을 수행할 때 대기를 할 수 있다는 것이다 논블로킹은 작업을 수행하면 대기 없이 수행하는 것을 의미한다 비동기을 위해서 콜백 함수가 사용되기도 한다 콜백 함수는 다른 함수의 인자로 전달되고 특정 이벤트가 발생하면 실행되는 함수이다 비동기는 호출된 함수가 무언가를 끝까지 책임져야 한다 동기는 호출한 함수가 책임진다 이 넷은 다 다른 개념이다 논블로킹은 다른 함수가 기다리면 끝마치지 않아도 바로 리턴해버린다 결과가 생기면 콜백 함수를 통해 이루어진다고 하고 비동기에서 사용된다고 한다 Referencehttps://dkswnkk.tistory.com/m/488 [OS] (동기/비동기) 와 (블럭/논블록의) 차이서론 os..
2023.10.12