반응형

전체 글 286

Blocking, Non-Blocking I/O와 Asynchronous, synchronous I/O

개요 Blocking I/O와 Non-Blocking I/O의 차이, Asynchronous I/O와, synchronous I/O의 차이점에 대해 설명한다. 예전부터 좀 헷갈리던 개념인데 차근차근 정리해보고자 한다. Blocking I/O와 Non-blocking I/O Blocking I/O : I/O 작업이 완료될 때까지 프로그램이 멈추고 대기하는 방식, 데이터 전송이 완료될 때까지 프로그램이 멈추기 때문에 다른 작업을 수행할 수 없음. I/O 작업이 오래 걸리는 경우 전체 시스템 성능이 저하될 수 있음. Non-blocking I/O : I/O 작업이 완료되지 않았더라도 프로그램이 계속 실행되는 방식, I/O 작업이 완료되지 않았더라도 다른 작업을 수행할 수 있으므로, 여러 작업을 동시에 처리할 ..

CS 2023.03.18

[보드게임] 기즈모(Gizmo) 후기

보드게임 정보 출시년도 : 2018년 긱 평점 : 7.4 긱 웨이팅 : 2.01 플레이 가능 인원 : 2-4 (긱 : 3인 추천) 설명 보드라이브 https://www.youtube.com/watch?v=v13dIIz7zFo 분석 쉬운 엔진 빌딩의 정석이라고 부를 만하다. 기즈모의 효과들이 직관적으로 연결되어 있어 콤보를 갖추는 것이 어렵지 않다. 수집 - 제작(또는 연구) - 획득의 사이클이 조화롭게 잘 맞춰져 있기 때문에 4가지 행동 중 하나를 해도 카드, 에너지, 승점의 자원들을 골고루 얻을 수 있다. 특히 모든 카드에 효과 및 구매 비용 정도의 승점이 붙어 있어서 마음에 들지 않는 카드도 울며 겨자 먹기로 구매한다기보다는 승점을 먹으면서도 겸사겸사 보너스 효과, 또는 반대로도 생각할 수 있기 때문..

보드게임 2023.03.12

[Unreal] 언리얼 오브젝트

언리얼 오브젝트는 언리얼 실행 환경에 의해 관리되는 C++ 객체이다. 언리얼 오브젝트는 사용자가 명시적으로 객체를 소멸시키지 않아도 할당된 메모리를 자동으로 소멸시켜 준다. 콘텐츠를 구성하는 객체들은 모두 언리얼 오브젝트로 볼 수 있다. C++ 클래스가 언리얼 오브젝트가 되려면 클래스 선언에 매크로와 규칙을 추가해야한다. 1. 클래스 선언 윗줄에 UCLASS() 매크로를 추가해야 한다. 2. 클래스 내부에 GENERATED_BODY 매크로 선언해야 한다. 3. 클래스 이름 접두사에 U나 A등을 사용해야 한다. U는 액터가 아닌 클래스, A는 액터 클래스에 사용한다. 4. 마지막 #include 구문에 generated.h 헤더 파일을 추가 해야 한다. 5. 클래스 선언 앞에 모듈명_API 키워드를 추가해..

[백준 5972] 택배 배송 C++

문제 백준 5972 택배 배송 C++ 5972번: 택배 배송 농부 현서는 농부 찬홍이에게 택배를 배달해줘야 합니다. 그리고 지금, 갈 준비를 하고 있습니다. 평화롭게 가려면 가는 길에 만나는 모든 소들에게 맛있는 여물을 줘야 합니다. 물론 현서는 www.acmicpc.net 풀이 문제 설명이 애매하게 되어있는데, 하나 이상의 길로 연결되어 있을 수 있다는 점이 거슬렸다. 시작, 끝 점은 똑같은데 비용이 다른 간선을 말한다기보다는 다른 점으로 우회하여 갈 수 있다고 받아들였다. 풀이는 일반적인 다익스트라 문제 해법을 사용해 해결해주면 된다. 우선 순위 큐를 사용하여 시작 점부터 간선 정보를 갱신해 주고, N까지 가는 비용을 출력한다. 소스 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1..

알고리즘/백준 2023.03.03

[방탈출] 만화 : 늦게 피어난 꽃 후기

테마 정보 난이도 1/5 지금까지 한 방 탈출 중에 가장 쉬웠다. 스토리 늦게 피어난 꽃이라는 부제에 걸맞게 잔잔한 감동을 선사해준다. 연출 좀 오래된 테마가 그런지 중간에 장치 인식이 잘 되지 않는 구간이 있었다. 스토리는 좋았지만 그걸 표현하는 연출 역량은 부족했다고 생각... 조도가 꽤 낮은 부분도 존재하는데 극쫄이라면 충분히 무서워할 만도 하다. 활동성 낮은 쪽에 달려 있는 자물쇠가 꽤 있어서 치마 입으면 불편할 수도 있다. 후기 2 / 5 스토리는 괜찮았지만, 문제 퀄리티나 연출은 아쉬웠다. 갈수록 좋은 테마가 많아지고 있기에, 선뜻 추천하기에는 망설여지는 테마. 문제가 매우 쉬운 편이라 방탈출 초보에게 난이도는 적당하지만, 그만큼 초보들의 이목을 집중시킬 만할 연출은 없어서 딜레마가 있는 테마.

방탈출 2023.02.28

[백준 10025] 게으른 백곰 C++

문제 백준 10025 게으른 백곰 C++ 10025번: 게으른 백곰 첫 줄에 정수 N과 K가 들어온다. 둘째 줄부터 N째 줄까지, 공백을 사이에 두고 각 양동이의 얼음의 양을 나타내는 gi와 양동이의 좌표를 나타내는 xi가 주어진다. www.acmicpc.net 풀이 일반적인 두 포인터 문제다. 처음부터 마지막까지, 양동이의 양을 더하고 빼주면서 최대합을 구한다. 범위 계산이 귀찮았는데, 정확하게 계산해 범위 초과 이슈가 나지 않도록 유의한다. 소스 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 ..

알고리즘/백준 2023.02.23

[Unreal] -TargetType=Editor -Progress -NoEngineChanges -NoHotReloadFromIDERunning UnrealBuildTool: dotnet "..\..\Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.dll"

개요 언리얼 5.1 CPP 프로젝트를 만들다가 발생한 오류 -TargetType=Editor -Progress -NoEngineChanges -NoHotReloadFromIDE Running UnrealBuildTool: dotnet "..\..\Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.dll" 엔진 재설치를 해도 같은 문제가 발생했었는데... shader.h 파일을 찾지 못해 컴파일 에러가 발생하는 것을 볼 수 있었고 아무래도 경로가 ???으로 뜨는거 보니 경로문제가 아닌가 싶었다. 프로젝트 생성 경로에 한글이 있어서 발생하는 문제였다. 아직 한글 경로를 설정하고 있는 나 자신에게 실망하고 간다. 경로를 바꾸어주니 해결 완료!

[백준 2473] 세 용액 C++

문제 백준 2473 세 용액 C++ 2473번: 세 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 3 이상 5,000 이하의 정수이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 www.acmicpc.net 풀이 용액문제 (https://gamedoridori.tistory.com/238)의 심화형이다. 오름차순으로 용액이 정렬되어있지 않으므로 먼저 정렬을 해준다. 그리고 각각의 용액에 대해, 그 용액과 합의 절댓값이 최소가 되는 두 용액을 두 포인터로 찾아준다. 여담으로 용액과 두 용액 문제는 입력값이 -10억~10억이라 int 자료형으로도 문제가 없었지만, 세 용액 문제는 int 자료형을 사용할 시에 ab..

알고리즘/백준 2023.02.20

[백준 2467] 용액 C++

문제 백준 2467 용액 C++ 2467번: 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하의 정수이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 오름차순으로 입력되며, 이 수들은 모두 - www.acmicpc.net 풀이 일반적인 두 포인터 문제이다. 앞 뒤에서 용액을 확인한 뒤, 주어진 조건에 따라 start와 end를 이동시켜주면 된다. 소스 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 #include #in..

알고리즘/백준 2023.02.19

[Unreal] 프로젝트 구성 폴더

개요 언리얼의 프로젝트 구성 폴더에 대해 정리한다. Config : 프로젝트의 설정 값을 보관한다. 폴더 안의 내용이 삭제되면 프로젝트의 설정 정보가 없어지므로 잘 관리해야 한다. Content : 프로젝트에 사용되는 애셋들을 관리하는 공간이다. Intermediate : 프로젝트에 필요한 임시 파일들을 저장한다. 폴더 안의 내용을 삭제해도 에디터를 실행하면 자동으로 재생성된다. Saved : 에디터 작업 중에 생성된 세이브 파일, 스크린샷 등의 결과물을 저장한다. 폴더 안의 내용을 삭제해도 게임 프로젝트에는 영향을 주지 않는다. uproject 파일에는 게임 프로젝트 정보가 JSON 형태로 저장되어 있다. C++ 프로젝트로 확장하는 경우 새로운 폴더들이 추가된다. Binaries : C++ 코드가 컴파..

반응형