글 전체보기
-
[개발] #01 스테이지 정보 업데이트활동/Arkhive 2023. 3. 23. 23:20
스테이지 정보 화면 업데이트 완료했습니다. 단, 적 등장 정보는 추가하지 않았습니다. 그 이유는, 적 정보가 스테이지 별 json 정보로 저장되어 있는데, 그 json 파일이 너무 많아서 시간적 여유가 되지 않았기에 생략했습니다. 양해 부탁드립니다. 또한, 현재 아이템의 목록은 날것의 데이터 형태로만 출력하고 있는데, 추후에 아이템 부분의 개발이 완료되면 순차적으로 디자인 할 예정입니다. 아래의 내용은 개발에 대한 내용입니다. 소스 데이터 위의 정보는 아래의 데이터를 기반으로 출력됩니다. https://github.com/Kengxxiao/ArknightsGameData/blob/master/ko_KR/gamedata/excel/activity_table.json https://github.com/Ken..
-
[개발] #00 Arkhive 프로젝트 개요활동/Arkhive 2023. 3. 5. 23:07
목표 - 명일방주 인게임에서 접근하기 힘든 정보 (상세 수치, 아이템 드롭률 등)을 보다 쉽게 확인하도록 애플리케이션을 구현할 것. - 단, 인터넷에서 정보를 찾는 것과 다르게 정보들이 유기적으로 연결되도록 구현할 것. 오퍼레이터 선택 스킬 업그레이드 재료 확인 재료(아이템) 클릭 > 아이템 정보창으로 연결 드롭률 확인 드랍 스테이지 클릭 > 스테이지 정보창으로 연결 나오는 적 확인 적 클릭 > 적 정보창으로 연결 - 오프라인 상태에서도 동작하지만, 온라인 상태에서 실시간 업데이트가 가능할 것. (단, 서버 비용청구를 고려하여 최대한 서버와의 통신을 줄이도록 알고리즘을 최적화 할 것) 참고할 데이터 목록 - 명일방주 인게임 데이터 (한국 서버) GitHub - Kengxxiao/ArknightsGameD..
-
그래프대학/자료구조실습 2022. 12. 15. 22:21
- 그래프 노드와 노드를 연결하는 간선들로 이루어진 비 선형 자료구조로 트리와 다르게 패턴이 없다. 모든 노드가 1-1로 연결되어 있는 그래프를 완전 그래프 (Complete Graph)라 부르고, 원래 그래프에서 일부 간선을 제외한 그래프를 부분 그래프 (Subgraph)라 부른다. 그래프의 표현 방법은 인접 행렬 (Adjacency Matrix)과 인접 리스트 (Adjacency List)로 표현할 수 있는데, 인접 행렬로 표현시 구현이 쉽고, 특정 노드간의 인접 여부 확인이 빠르다는 장점이 있지만, 특정 노드와 인접한 모든 노드를 알고자 할 때, 모든 간선을 확인해야 하고, 구현상의 이유로 메모리 낭비가 발생한다는 단점이 있다. 반면에 인접 리스트로 표현시 메모리 효율적이고, 인접한 노드를 효율적으..
-
스택 / 큐대학/자료구조실습 2022. 12. 15. 21:38
- 스택 (Stack) 한 쪽에서만 데이터 입출력이 일어나는 선형구조로, 가장 마지막에 삽입된 원소가 가장 먼저 제거되는 LIFO 형태의 자료구조 이다. c++ STL의 stack 라이브러리이다. 위 코드는 일반 스택1과, 크기가 2, 값 100으로 초기화한 vector을 이용한 스택2를 수정해보는 코드이다. - 큐 (Queue) 한 쪽에서 데이터 입력이, 다른 한 쪽에서 데이터 출력이 일어나는 선형구조로, 가장 처음에 삽입된 원소가 가장 먼저 제거되는 FIFO 형태의 자료구조 이다. c++ STL의 queue 라이브러리이다. 위 코드는 일반 큐1과, 크기가 2, 값 100으로 초기화한 list을 이용한 큐2를 수정해보는 코드이다.
-
트리대학/자료구조실습 2022. 12. 15. 21:22
트리에 대한 이론적인 부분은 세 번에 걸쳐 포스팅한 바 있다. Tree 트리구조는 아주 중요한 알고리즘이라 세 번에 나누어서 진행할 예정이다. Tree... 이게 얼마나 사기(?)냐 하면은 트리를 이용하여 데이터를 관리할 경우 데이터 탐색에 필요한 시간이 O(n^2)에서 O( with611.tistory.com Tree - Binary Search Tree Binary Tree 중, 아래의 조건을 만족하는 Tree이다. 1. 루트노드의 왼쪽 서브트리의 노드는 루트노드보다 작거나 같아야 한다. 2. 루트노드의 오른쪽 서브트리의 노드는 루트노드보다 커야한다. BST로 with611.tistory.com Tree - Heap, B-Tree Heap Heap은 complete binary tree의 일종으로 추..
-
연결 리스트대학/자료구조실습 2022. 12. 15. 21:10
연결 리스트는 데이터와 포인터를 가진 노드들이 한 줄로 연결되어 있는 방식으로 데이터를 저장하는 자료구조. vector와 같은 배열과 다르게 리스트의 중간 지점에서도 자료의 추가와 삭제가 빠르고, 메모리 선할당이 없고, 크기도 마음대로 정할 수 있을 뿐더러, 데이터의 추가/삭제시에도 이터레이터가 유효하다는 장점이 있지만, 랜덤 액세스가 느리다는 단점이 있다. 노드들이 포인터를 이용해서 연결되어 있는 방식에 따라 다음의 세 종류로 분류된다. - 단일 연결 리스트 (Singly Linked List) 각 노드에 데이터와 하나의 포인터가 있고, 각 노드는 다음 노드를 가리키는 구조이다. - 이중 연결 리스트 (Doubly Linked List) 각 노드에 데이터와 두 개의 포인터가 있고, 각 노드는 이전과 다..
-
배열과 문자열대학/자료구조실습 2022. 12. 15. 20:51
- 정적 배열 (Static Array) 크기가 고정되어 있는 배열로 저장할 수 있는 데이터의 개수가 고정되어 있다. 한 번 할당하면 메모리를 추가적으로 할당하거나 해제하지 않아도 되고, 랜덤 액세스 속도가 빠르다는 장점이 있지만, 필요에 따라 크기를 조절할 수 없고, Stack영역에 할당되기 때문에 최대 크기의 제약이 있다는 단점이 있다. c++ STL의 array 라이브러리이다. 위 코드는 4행 8열의 배열을 생성한 후 이터레이터를 이용해서 탐색하는 코드이다. - 동적 배열 (Dynamic Array) 크기가 유동적으로 변하는 배열. 필요에 따라 배열의 크기를 조절할 수 있다는 장점이 있지만, 배열의 크기를 조절할 때 마다 메모리를 추가적으로 할당하기 때문에 퍼포먼스 이슈가 발생할 수 있다. c++ ..
-
Assembly대학/시스템소프트웨어 2022. 12. 12. 22:38
레지스터와 명령어에 대해 살펴보자. (x86 아키텍쳐의 GAS/GNU format에 대해 다룹니다) - Register 레지스터 설명 %eax 데이터를 저장 %edx 데이터를 저장 %ecx 데이터를 저장 %ebx 데이터를 저장 %esi ? %edi ? %esp stack의 top. 즉 stack frame의 끝을 가리킴 %ebp stack frame의 시작을 가리킴 %eip program counter. 현재 실행중인 라인을 가리킴 레지스터 안에는 기본적으로 메모리의 주소가 저장되어 있다. (e.g. %eax = 0x8048b90) (%eax)와 같이 레지스터에 괄호를 치는 경우에는 레지스터가 가리키는 메모리주소에 담긴 값을 가리킨다. (e.g. (%eax) = 100 ) 상수는 $표시를 앞에 붙여 사용..