분류 전체보기 28

[데이터베이스] 트랜잭션

DB의 회복redo와 undo 연산이 있다. redo는 재실행, undo는 취소이다. redo: 최근에 저장한 DB 복사본을 가져온 후, 로그를 이용하여 모든 연산 재실행해 복구.undo: 예전 상태로 연산 모두 취소 후 복구. 로그 회복 기법- 지연 갱신 : 트랜잭션이 커밋까지 진행 후 완료.트랜잭션 수행 중 장애 -> 아무것도 안함. 로그내용만 무시하고 버림.(DB 값 변하지 않았으므로)트랜잭션 모두 수행 후 Commit 된 상태에서 장애 -> redo - 즉시 갱신 : 진행 상태 중 변경 연산 결과 그대로 DB 반영. 로그 파일 기록 후 즉시 output()트랜잭션 수행 중 장애(커밋 x) -> undo트랜잭션 모두 수행 후 Commit 된 상태 -> redo 검사 시점 회복체크포인트를 만들어서, ..

학교 공부 2025.06.12

[데이터베이스] Index와 B+Tree

Index 인덱스: 추가적인 쓰기 작업과 저장 공간을 활용해서 검색 속도를 향상시키기 위한 자료구조 Index 사용 동기- 탐색을 위한 IO 연산 수 줄임- insert 시, 다른 레코드를 뒤로 밀어야함. 최악의 경우 2*N/P만큼 IO 연산 필요- 다중 속성 검색 시 데이터 공간 비효율적=> index 가 필요! NoSQL에서도 중요하다!전통적인 데베와 달리 유저에게 많은 기능을 양보하였지만, 데이터의 검색 성능은 보장해주어야함.B+Tree, Hash 등을 사용. Indexs: High-level인덱스는 특정 속성 값 또는 검색 Key를 통해 빠르게 찾음.Primary key != search Key(ex.Product(name, maker, price) 셋 모두가 검색 키 가능) index: 검색 키..

학교 공부 2025.06.12

[운영체제] VSFS(Very small file system) 파일 크기에 따른 저장 방식 및 파일 변형

기본 구조- 블록 크기 : 일반적으로 4KB- inode 구조: direct pointer 12개 + indirect pointer 1개 + double indirect pointer 1개 VSFS는 Multi level index를 가진다. 파일 크기별 저장 방식 변화작은 파일의 경우,직접 포인터만 사용(12*4KB = 48KB)I/O 특성: 1번의 inode 읽기 + 직접 데이터 블록 접근성능: 가장 빠름 중간 파일의 경우, 직접 + Single indirect 포인터 사용간접 블록 존재: 1024개 포인터 (4KB/4바이트 = 1024)최대 크기: 48KB + (1024*4KB) = 48KB + 4MBI/O 특성: inode 읽기 + 간접 블록 읽기 + 데이터 블록 접근성능: 추가 I/O 1회 필..

카테고리 없음 2025.06.10

[운영체제] 파일 시스템 (1)

어떻게 영속 저장 장치(하드 디스크 드라이브 or SSD) 장치를 관리하는가?저장 장치의 가상화에 대한 두 가지 주요 개념1. 파일 2. 디렉토리 파일 : 단순히 읽거나 쓸 수 있는 순차적인 바이트의 배열각 파일이 low level name (inode number)를 가짐.대부분 시스템에서 os는 파일의 구조 모름. 역할: 데이터를 디스크에 안전히 저장하고, 데이터가 요청되면 처음 저장했던 데이터를 돌려주는 것. 파일 생성open(). 리턴값은 파일 디스크립터. 파일 읽기/쓰기echo hello > foo // echo의 출력을 파일 foo로 전송해 "hello" 저장cat foo // cat 프로그램이 파일 foo에 접근하여 내용 확인fsync()로 즉시 기록 가능..

학교 공부 2025.06.08

36장~37장 I/O Devices와 Hard_Disk_Drives

사실 다른 장 먼저 해야하는데 내일 이 장을 하기 때문에 멍을 안 때리기 위해 정리한다. 36장 I/O Devices영속성에 들어가기 전에, 입력/출력 장치의 개념을 알고 어떻게 I/O를 시스템에 통합하는지에 대해 알아보자. CPU는 메모리 버스를 통해 주요 메모리와 연결된다.몇몇 디바이스들은 일반적인 I/O 버스를 통해 연결된다. 버스란?CPU와 램, 입출력 장치들 간의 정보를 제공할 수 있게 하는 데이터 경로이다. I/O 버스란?CPU와 입출력 장치를 연결하는 데이터 경로이다. 입출력 포트, 인터페이스, 디바이스 컨트롤러. 이 세 가지 하드웨어 요소를 통해 I/O 기기와 연결되어 있다. 표준 장치구성요소 - 내부 구조 (internals) : 시스템에게 제공하는 장치에 대한 추상화를 정의한다. ..

학교 공부 2025.05.13

게임 개발 회사 크래프톤 신입 채용공고에 나타난 AI 분야 모집

크래프톤의 2025 채용공고가 떴다.https://recruit.krafton.com/ 2025 KRAFTON 신입채용크래프톤에서 여러분의 가능성을 향한 여정을 시작하세요recruit.krafton.com  채용하는 분야가 크게 두 갈래로 나뉘어져 있었는데,바로 게임 제작/지원 분야와 AI 분야이다. 보자마자 이전에 크래프톤 산하 회사에서 낸 게임 '마법소녀 어쩌구...'가 생각이 났다.이 게임은 대부분이 AI에 의해 만들어졌다는 것을 뉴스로 보았다.실제로 이 게임을 개발한 렐루게임즈는 딥러닝/AI 전문 스튜디오이다.이제는 경쟁력이 있으려면 AI 공부는 필수라는 생각이 들었다...  채용 AI 분야 정리AI 응용연구와 게임 AI 응용(강화학습/언어모델)의 경우 완전 AI 전문직을 대상으로 한 직무라 게임..

생각 정리 2025.03.05

[유니티] Behaviour Tree 개념 정리

상태Running : 노드 검사 진행중Success : 조건을 만족하여 노드 실행 성공Failure : 조건을 만족하지 못하여 노드 실행 실패 노드Composite Node : 합성 노드. 하나 이상의 자식을 가지는 부모 노드. 자식의 상태 결과에 따라 실행 성공과 실패 여부가 결정된다. 자식 노드는 순차적으로 실행되며 한 노드의 검사가 끝나기 전까지 다른 노드는 실행되지 않는다. - Sequence node: 말그대로 자식 노드의 연속적인 실행이 목적인 노드. 자식 모두 성공 시 성공 처리.- Selector node: 자식 중 선택된 하나의 노드 성공이 목적인 노드. 자식 중 하나가 성공 시 다음 노드로 이어가지 않고 바로 성공 처리 Decorator Node: 자식 노드의 반환 값을 바꾸거나 동작을..

유니티 2024.12.13

[Photon 정리] Pun 기능 개요 및 인스턴스 생성. 보스 동기화, 내가 가한 데미지만 표시하는 방법

기능 개요 PhotonNetwork 파일 안에는 필요한 모든 함수와 변수들 있음. Photon 연결PhotonNetwork.ConnectUsingSettings("v1.0") 게임 생성 및 참가PhotonNetwork.JoinRoom(roomName); // 방 참가PhotonNetwork.CreatRoom(roomName); // 방 생성PhotonNetwork.JoinRandomRoom(); // 방 무작위 생성  Photon.PunBehaviour 상속을 통한 콜백 오버라이드public override void OnJoinedRoom() // 콜백 오버라이드{ Debug.Log("OnJoinedRoom() called by PUN: " + PhotonNetwork.room.na..

유니티/포톤 2024.11.26

모바일 이동 UI 문제(조이스틱 적용 안됨 + 부캠 대회 결과 후기)

부캠의 디펜스 포폴로 제출한 프로젝트를 모바일에서 구동이 가능하게 하기 위해 조이스틱을 만드려고 했다. 대회가 끝난터라 빠르게 프로젝트를 마무리 하기 위해서 유니티 에셋을 활용하여 만들었는데...  안된다.... 움직이지를 않는다.회전은 되는데 걷는 모션도 적용이 되지 않는다. 디버그 로그를 해봤더니 한 번 조이스틱을 사용한 후로는 조이스틱을 쓰지 않을 때에도 Horizontal(moveDir.x) 과 Vertical(moveDir.z)이 0이 아닌 값이 나왔다. 그게 문제인가 싶어서 조건에 Horizontal과 Vertical을 쓰지 않고 드래그 여부를 확인하는 bool 변수를 넣어 코드를 짜봤다. 똑같이 움직이지 않는다... 키보드로 움직일 때 transform이동이 아닌 RigidBody.MoveP..

문제 해결 2024.09.11

터렛 업그레이드 시스템 구현

구상터렛 업그레이드 기능을 추가하려 한다. 일단 StatusManager에 이벤트를 만들어서 버튼을 눌렀을 때 이벤트가 발생하도록 해놓았다. 처음에는 적을 만들 때와 같이 터렛의 프리팹에 업글 UI를 추가하려했으나, 인게임에 송출되었을 때 두 가지 문제점이 발생하였다.   1. UI가 화질이 깨지고 희미하게 보인다. 2. 터렛이 화면 가운데에 있을 때는 터렛의 바로 위에 UI가 뜨지만, 사이드에 있을 때는 터렛의 바로 위보다 살짝 옆에 있는 것 처럼 보인다.   1과 2의 이유는 동일하다.프리팹 안에 캔버스가 있다는 것. 그래서 눙물을 머금고 (코드가 복잡해진다는 것을 알기에...) UI를 화면에 동적으로 띄우기로 했다. 하나의 슬라이더를 선택한 오브젝트의 위로 이동시킬지, 아니면 풀링으로 여러 개 만들..

유니티 2024.08.30