전체 글 29

유니티 더블 클릭, 우 클릭 메모

더블클릭 따로 더블 클릭 이벤트가 없으므로 Time.time을 활용하여 0.3초 이내에 버튼을 한번 더 클릭했다면 더블클릭으로 간주하여 처리한다.  void 클릭 함수{ if ((Time.time - clickTime)  우클릭 따로 우클릭 이벤트가 없으므로 IPointerClickHandler 인터페이스를 상속받아 함수를 구현해준다. public void OnPointerClick(PointerEventData eventData) { if (eventData.button.Equals(PointerEventData.InputButton.Right)) { // 우클릭 시 수행할 작업; ..

Unity 2024.08.07

DFS

DFS = 깊이 우선 탐색 노드와 간선이 주어지는 그래프에서 방문하지 않은 노드를 방문가능한 노드가 없는 노드에 도달할 때 까지 방문한다. - 현재 노드와 연결된 노드 중 아직 방문 안한 노드가 있으면 그 노드로 간다 - 방문할 노드가 없으면 다시 이전 노드로 돌아감 - 이를 모든 노드 방문 완료할때까지 반복한다! DFS구현 방법1) 입력 받기 노드와 간선 입력받기 -어떤 노드와 어떤 노드가 연결되었는지를 알아내기 위해 노드 갯수만큼의 크기를 가진 배열을 선언하고 배열의 인덱스 = 노드로 취급하여 연결된 간선 정보를 append한다 2) 1에서 입력받은 노드와 간선 정보를 바탕으로 깊이 우선 탐색을 수행 깊이 우선 탐색에는 두가지 방법이 있다. [1] 스택 - while문 사용, 스택이 빌 때 까지 - ..

Study/Algorithm 2023.08.23

데스크탑 삐삐삐삐 소리와 무한부팅 될때 왕초보도 시도해볼만한 해결법

무한 부팅으로 고장난 줄 알았던 데스크탑을 다시 살려보았다. 데스크탑 나이도 많아서 새로 사야하나 했는데, 생각보다 쉽게 해결되었다. 행복한 마음에 나와 같은 어려움에 처해있는 사람들이 있을 것 같아 글을 쓴다. 이 방법을 시도해보고 돈과 시간을 아껴보자. 해결이 된 이후에 글을 쓰는거라 컴퓨터가 고장났던 영상은 찍지 못했지만 다음과 같은 증상이였다. 증상: 컴퓨터 전원버튼을 누르면 컴퓨터가 켜질때 들리는 '삐' 소리가 한번 들리고 모니터가 켜져야하는데, 비프음이 계속 '삐''삐''삐''삐''삐' 들리면서 모니터가 켜지는 과정으로 넘어가지 않고 혼자서 계속 꺼졌다 켜졌다 반복하며 무한부팅 됨. 해결 : RAM을 한번 뺐다가 다시 끼움 컴퓨터를 한번도 열어보지 않은사람도 겁먹지 말고 아래와 같이 시도해보자..

(혼공컴운) 혼공학습단을 마치며...

개발 관련 전공을 했고 개발 일을 하고있지만, 운영체제를 제대로 배운 적이 없는 나는 이 책을 알기 전 CS 기술 면접등에서 운영체제에 대한 지식에 어려움을 많이 느꼈었다. 기술면접 키워드를 검색으로 배우더라도 그때그때 어찌저찌 대답만 할 수 있을 정도로 얕은 지식만 늘어갈 뿐, 전체적인 컴퓨터 구조와 운영체제를 알 수 있는 기반과 뼈대가 부족했던 것 같다. 그러나 저번 겨울, 취업 스터디를 통해 기술면접에 대한 인사이트가 많은 스터디원분이 정말 감사하게도 이 책을 처음 알려주셨다. 이 책을 통해서라면 쉽게 입문할 수 있고 그림도 많이 있어 이해가 쏙쏙 바로바로 된다고 하셔서 바로 이 책을 구매했고, 그 말처럼 정말 이해가 바로바로 되고 운영체제와 컴퓨터 구조에 대해 내가 부족했던 갈증을 말끔히 해결시켜..

14. 가상메모리

14-1) 연속 메모리 할당 프로세스에 연속적으로 메모리 공간을 할당하는 방식 - 연속 메모리 할당 방식 연속적으로 메모리를 할당 할 때, 어떤 문제가 발생하는가? 1) 스와핑 스와핑: 현재 실행되지 않는 프로세스를 임시로 보조기억 장치 일부로 쫓아내고 그렇게 생긴 빈 공간에 또 다른 프로세스를 적재하여 실행하는 방식 프로세스들이 쫓겨나는 보조기억장치의 일부 영역 = 스왑영역 현재 실행되지 않는 프로세스가 메모리에서 스왑영역으로 옮겨지는 것 = 스왑아웃 스왑영역에 있던 프로세스가 다시 메모리로 옮겨오는 것 = 스왑 인 스와핑을 통해 프로세스들이 요구하는 메모리 주소 공간의 크기가 실제 메모리보다 큰 경우에도 프로세스 동시 실행 가능 2) 메모리 할당 최초 적합 - 운영체제가 메모리 내의 빈 공간을 순서대..

13장. 교착상태

여러 프로세스는 각자가 필요한 자원을 할당받아 실행되는데, 이 과정에서 무한히 자원을 할당 받지 못하고 기다리다가 정지해버리는 교착상태가 발생할 수 있다. 13-1. 교착상태란 1) 식사하는 철학자 문제 원형 식탁에 앉아있는 철학자들의 앞에는 포크 두개로 먹을 수 있는 각자의 음식이 있고 각자 오른쪽에 포크 하나가 있을 때, 두개의 포크를 들기 전까지 철학자는 생각하는 시간을 가지며 기다려야 한다면 모든 철학자가 동시에 포크를 들어 식사를 할 때 어떤 철학자도 식사를 할 수 없는 상황 이렇게 일어나지 않을 사건을 기다리며 진행이 멈추는 현상을 교착상태(DeadLock)이라고 한다. 식사하는 철학자 문제에서 철학자 =프로세스 or 스레드 포크 = 자원, 임계구역 생각하는 행위 = 자원을 기다리는 것 으로 ..

12장 프로세스 동기화

12-1. 동기화란 동시다발적으로 실행되는 프로세스들은 서로 협력하며 영향을 주고받는다. 이때 실행 순서와 자원의 일관성을 보장해야하는데, 이 과정을 동기화라고 한다. 1) 동기화의 의미 협력적으로 동시에 실행되는 프로세스와 스레드는 올바른 실행을 위해 동기화가 필수적이다. 프로세스 동기화란 프로세스들 사이 수행 시기를 맞추는 것. 동기화 종류 (1) 실행순서 제어: 프로세스를 올바른 순서로 실행하기 (2) 상호 배제: 동시에 접근해서는 안되는 자원에 하나의 프로세스만 접근하게 하기 1_실행 순서 제어를 위한 동기화 : 동시에 실행되는 프로세스를 올바른 순서대로 실행하는 것. ex) 빈 종이에 쓴 다음에 읽을 수 있는 것 처럼 write 값이 있을 때 read수행 2_상호 배제를 위한 동기화 : 공유 불..

Sprite Atlas

sprite atlas : 여러개의 텍스쳐를 하나의 텍스쳐로 합쳐 UV좌표를 설정하여 여러 텍스쳐가 하나를 사용할 수 있도록 하는 최적화 기법 draw call(한번에 그리는 gpu의 로드 양, game뷰-stats-batch로 확인)을 줄이는 방법 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.U2D; using UnityEngine.UI; //sprite atlas : drawcall을 줄일 수 있도록 여러개의 texture를 하나의 texture로 만듬 //플레이시 게임뷰 stats의 batch를 보면 아틀라스 사용시 드로우 콜이 적어지는 것을 확인할 수 있다. //스프라이..

Unity 2023.02.09

11. CPU스케쥴링

11-1) CPU스케쥴링 개요 CPU 스케쥴링 : 운영체제가 프로세스들에게 공정하고 합리적으로 CPU자원을 배분하는 것 1) 프로세스 우선순위 프로세스 우선순위에 따라 각각의 상황에 맞게 CPU를 배분한다. 프로세스마다 PCB에 우선순위를 부여하여 CPU가 먼저 처리할 프로세스를 결정함. 2) 스케쥴링 큐 운영체제는 메모리로 적재되고 싶은 프로세스들을 줄세우고, 이 줄을 스케쥴링 큐라고 한다. 운영체제가 관리하는 줄, 즉 큐에는 준비 큐(CPU를 이용하고 싶은 프로세스들이 서는 줄), 대기 큐(입출력장치를 이용하기 위해 대기상태에 접어든 프로세스들이 서는 줄)가 있음. 운영체제는 PCB들이 큐에 삽입된 순서대로 프로세스를 하나씩 꺼내 실행하되, 그 중 우선순위가 높은것을 먼저 실행한다. 3) 선점형과 비..