전체 글 41

동적 프로그래밍(동적 계획법)

알고리즘을 짤 때 분할정복 기법을 사용하는 경우가 많습니다. 큰 문제를 한 번에 해결하기 힘들 때 작은 여러 개의 문제로 나누어서 푸는 기법인데요. 작은 문제들을 풀다보면 같은 문제들을 반복해서 푸는 경우가 생깁니다. 그 문제들을 매번 재계산하지 않고 값을 저장해두었다가 재사용하는 기법이 동적 프로그래밍입니다. 대표적인 문제 세 가지 : 막대기 자르기, 최장 공통 부분 수열, 0/1 배낭 1. 막대기 자르기 일단 막대기부터 잘라봅시다. 하나의 긴 막대기가 있는데 막대기 조각마다 가격이 다릅니다. 막대기를 적절하게 잘라서 가장 가격이 높게 만들어야 합니다. 길이(i) 0 1 2 3 4 5 6 7 8 9 10 가격(Pi) 0 1 5 8 9 10 17 17 20 24 30 예를 들면 길이가 4인 막대기를 자를..

알고리즘 2021.02.24

쓰레드 동기화 방법의 종류

Mutex / Semaphore / Monitor 공통점은 세가지 모두 운영체제의 동기화 기법이라는 것이다. 뮤텍스(Mutual Exclusion) 쓰레드의 동시 접근을 허용하지 않는다는 의미. 뮤텍스의 쓰레드 동기화 방법은 임계영역에 들어가기 위해 이 뮤텍스를 가지고 있어야 들어갈 수 있다. 예) 일종의 자물쇠와 같은 역할을 한다. 임계영역에 들어간 쓰레드가 뮤텍스를 이용해 임계영역에서 본인이 나올때까지 다른 쓰레드가 못들어오게 내부에서 자물쇠로 잠근다. 세마포어(Semaphore) 세마포어 역시 뮤텍스와 비슷한 역할을 하지만 세마포어는 동시 접근 동기화가 아닌 접근 순서 동기화에 더 관련있다. 모니터(Monitor) Mutex(Lock)와 Condition Variables(Queue라고도 함)을 가..

Computer Science 2021.02.24

쓰레드(Thread)란?

쓰레드란 프로그램(프로세스) 실행의 단위이며 하나의 프로세스는 여러개의 쓰레드로 구성이 가능하다. 하나의 프로세스를 구성하는 쓰레드들은 프로세스에 할당된 메모리, 자원 등을 공유한다. 프로세스와 같이 실행, 준비, 대기 등의 실행 상태를 가지며 실행 상태가 변할때마다 쓰레드 문맥교환(context switching)을 수행한다. 각 쓰레드별로 자신만의 스택과 레지스터를 가진다. 한순간에 하나의 쓰레드만이 실행 가능하다. 프로세스와 쓰레드의 차이 프로세스는 운영체제로부터 자원을 할당받는 작업의 단위이고 쓰레드는 프로세스가 할당받은 자원을 이용하는 실행의 단위이다. 프로세스는 실행 중인 프로그램으로 디스크로부터 메모리에 적재되어 CPU의 할당을 받을 수 있는 것을 말한다. 하지만 프로세스 생성은 많은 시간과..

Computer Science 2021.02.23

운영 체제 개요

1. 운영 체제의 정의 OS는 컴퓨터 HW 바로 윗단에 설치되는 SW OS는 사용자 및 다른 모든 SW와 HW를 연결하는 SW 계층으로 그 위상은 위와 같다. 각종 SW들은 위 그림과 같이 HW와 OS가 한 몸으로 존재하는 컴퓨터 시스템 위에서 수행된다. 컴퓨터 전원을 On 했을 시 OS가 없으면 컴퓨터는 고철 덩어리에 불과하다. SW가 컴퓨터 시스템에서 수행되기 위해서는 메모리에 적재 되어야 한다. OS도 하나의 SW로서 전원이 켜짐과 동시에 메모리에 적재된다. 하지만 OS처럼 큰 큐모가 모두 메모리에 적재되면 한정된 메모리 공간의 낭비가 심하다. 따라서 OS 중 항상 필요한 부분만 메모리에 적재 그렇지 않은 부분은 필요할 때 메모리에 적재 후 사용 이 때 메모리에 상주하는 OS의 부분을 커널(Kern..

Computer Science 2021.02.23

UE4 게임 개발 EscapeGame - 28 : 스팀 출시 완료

드디어 모든 과정이 끝나고 출시가 완료됐습니다. 벌써 24명이나 다운로드 받았습니다. 뿌듯하네요. store.steampowered.com/app/1515170/Maze_Escape/ Save 10% on Maze Escape on Steam This game is to escape the maze while avoiding zombies and obstacles. Use the item and remember the way you came to escape from the maze. Good luck. store.steampowered.com 감사합니다.

UE4 게임 개발 EscapeGame - 26 : 스팀 출시 체크리스트

1. 스팀 계정을 만들고, 스팀의 파트너로 등록하는 절차를 진행합니다. 앱 제출비를 지불하면 스팀에서 메일이 오는데, 원하는 신원증명 서류(여권)를 첨부하여 답장하면 됩니다. 2. Dashboard에서 내가 출시할 게임의 app정보를 등록합니다. 3. 체크리스트에 나와있는 부분들을 차근차근 진행해줍니다. 중간 중간 작성을 하면서 녹색의 저장 혹은 업데이트 버튼이 보이면 꼭 저장을 해줘야합니다. 여기서 At Least One Build Configured 부분이 복잡합니다. 3번에서 설명. 3. At Least One Build Configured SteamPipe의 디포와 빌드에서 업로드한 게임 파일을 관리합니다. 아무것도 안한 상태에서 빌드를 선택하면, 아무것도 보이지 않을 것입니다. 본인의 앱 아이디..

UE4 게임 개발 EscapeGame - 25 : 스팀 출시 관련

스팀에 출시하기 위해서 몇가지 서류들이 준비되어있어야 합니다. 1. 통장 사본 2. 여권 또는 국제운전면허증 3. W-8BEN -> www.irs.gov/pub/irs-pdf/fw8ben.pdf 4. SS-4로 발급받은 EIN (선택) -> www.irs.gov/pub/irs-pdf/fss4.pdf 참고가 되는 좋은 글 공유합니다. www.facebook.com/groups/indiera/permalink/807226886094673/ EIN 코드를 발급받아서 W-8BEN 서류에 입력하면 세금을 30%->10% 만 낼 수 있습니다. SS-4 서류를 미리 작성해두고, IRS에 전화해서 팩스로 보내거나 질문에 답변을 다 해주면 EIN 코드를 바로 발급해준다고 합니다. 저는 4번은 생략하기로 했습니다. 현재,..

UE4 게임 개발 EscapeGame - 23 : 개발 과정

9월부터 학원을 다니면서 공부를 시작했습니다. 9월 첫째주 ~ 둘째주 : cpp 기본 문법 및 실습(별찍기, 빙고, 야구게임, 셔플알고리즘) 9월 셋째주 ~ 넷째주 : 자료구조, 알고리즘, 실습(미로게임) 9월 마지막 ~ 10월 첫째주 : 추석 10월 둘째주부터 UE4 시작, 10월 한달동안 초석을 다짐. -> 캐릭터 이동, 애니메이션, 공격, 충돌처리, 랜드스케이프 11월 첫째주 : 몬스터 생성 및 AI 11월 둘째주 : UI 관련 및 트리거 11월 셋째주 ~ 넷째주 : 셰이더, 렌더링, HLSL 12월 15일 종강까지 : 시네마틱, 맵 꾸미기, 세이브, 비동기 애셋로딩, 비동기 레벨 스트리밍 등등 제 게임 개발은 11월 중순쯤부터 시작하였으며, 기획 및 기본 다지기가 생각보다 오래 걸려서 11월말부터..