본문 바로가기

전체 글

[iOS] Metal - 1 사전지식Rendering(렌더링)3D 컴퓨터 그래픽에서는 여러 점을 연결해 화면에 이미지를 만듦여기서 이미지 → 렌더라고 함3D 모델을 실제 이미지처럼 보이게 하는 과정 → 렌더링 렌더링이 왜 필요할까?3D 모델은 구조, 모양만 존재 → 빛, 그림자, 색에 대한 요소 X렌더링을 통해빛을 어디에 비출지그림자가 어떻게 혹은 어디에 생기는지재질 등을 계산해서 진짜 처럼 보이게 만드는 과정→ 그냥 뼈대만 있으니 거기에 색상, 그림자를 입혀 real하게 보이게 하는 거 3D 모델?Vertex라는 정점들로 구성되어 있는 뼈대정점들을 연결하여 모양을 만들고 여기에 색, 재질, 빛 효과 등을 입혀 3D 이미지 생성 렌더링 파이프?3D 모델이 화면에 나타나기까지 거치는 모든 과정모델을 불러옴 → 정점 정보 읽어드림GPU.. 더보기
CPU & GPU 파란놈이 연산하는 놈인데 GPU가 압도적이다..!오.. 그럼 모든 작업을 GPU에서 하는 게 유리하지 않을까..? 헤이헤이,, No No... ...CPU & GPU 모두 프로세서(처리 장치 - 작업 수행자)임!그런데 쓰임이 다름. 항목CPUGPU주 역할앱 로직, 조건 판단, 시스템 제어이미지 처리, 대량 데이터 계산처리 방식순차적 처리에 장점(smart core 소수)병렬 처리에 좋음(simple core 다수)특징로직제어, 분기처리에 굳렌더링, 수치 계산 등 반복 작업에 유리 ex) In Game.. CPU는- 플레이어 입력 처리(터치, 움직임)- 게임 로직 판단(몬스터가 맞았는지.. 점수가 올랐는지..)- 네트워크 통신, 정보 저장 등 시스템과 관련된 일들 실행 GPU는- 캐릭터, 배경, 이펙트 등.. 더보기
[iOS] Metal - 0 Metal?Apple에서 만든 고성능 그래픽 & 계산용 APIiOS, macOS, tvOS에서 GPU를 직접 제어할 수 있도록 해줌그래픽 렌더링뿐만 아니라, 머신러닝, 영상 처리 등에도 활용 가능 왜 Metal을 쓰나?OpenGL보다 훨씬 저수준의 접근 가능 → 더 빠르고 최적화된 렌더링iOS12 부터 OpenGL ES 권장 XmacOS에서는 아예 deprecated 처리Apple 에서는 Metal이 그래픽 개발의 표준이 됨Shader 프로그래밍(Metal Shading Language)을 통해 실시간 효과 구현 가능Swift, Objective-C에서 손쉽게 사용 가능 (애플 생태계 최적화)저수준(Low-level)?저수준 API- 시스템이나 하드웨어(GPU 등)에 더 직접적이고 세세하게 접근할 수 있.. 더보기
[iOS] SKIP.tools 사용기 SKIP.tools Install사전 설치: Xcode, Android Studio, Homebrew 도 설치가 되어있어야합니다..!저는 Android Studio만 추가적으로 설치해줬습니다 그 다음엔 brew install skiptools/skip/skipskip checkup차례로 진행하면 되는데요checkup 시, 하나라도 체크가 안 되면 다음 단계로 넘어갈 수 없어요..! 저는 안드로이드 스튜디오를 설치만하고 실행, 추가 패키지 설치를 하지 않아서 오류가 났습니다.다시 깔아주고 chekcup하면 이렇게 쫘악 체크표시가 뜬답니다. 그 다음엔위의 폼에 맞게 스킵을 실행시켜주면 됩니다.실행시켜주면..! Wow... 알아서 촤라락 나오는데요.. 코드도 예시코드들이 기본적으로 작성이 되어있습니다.그래서 .. 더보기
[iOS] SKIP.tools? Skip이란? Skip은 Swift 기반의 선언형(declarative) UI 프레임워크로, iOS와 Android 양쪽을 위한 네이티브 앱을 단일 코드베이스(Swift언어, Xcode)로 개발할 수 있게 해주는 도구  SKIP이 말하는 SKIP의 장점 진정한 네이티브 경험- Skip을 통해 생성된 앱은 iOS에서는 SwiftUI를, Android에서는 Jetpack Compose를 사용하여 완전한 네이티브 UI 제공 투명성- Skip의 라이브러리는 오픈 소스로 제공되며, 복잡한 런타임이 없어서 디버깅이 용이 경량성- SkipZero를 사용하면 iOS 앱은 추가적인 Skip 프레임워크에 의존하지 않으며, Android 앱도 최소한의 오픈 소스 라이브러리 필요 메모리 효율성- 추가적인 관리형 런타임이 없으.. 더보기
정렬 알고리즘 정렬 알고리즘원소들을 번호순이나 사전 순서와 같이 일정한 순서대로 열거하는 알고리즘Stable & Unstablestable : 동일한 key값을 갖고 있는 원소들의 순서가 보존 되는 것unstable : 동일한 key값을 갖고 있는 원소들의 순서가 보존 되지 않는 것Inplace & Not-In-Placein-place 알고리즘입력 데이터를 수정하면서 정렬을 수행즉, 추가적인 메모리 공간을 사용하지 않고, 주어진 입력 데이터 내부에서 직접적으로 작업을 수행not-in-place추가적인 메모리 공간을 사용하여, 입력 데이터를 복사하고 정렬을 수행 1. 버블 정렬두 개의 인접한 원소를 비교해 순서에 맞게 교환하여 정렬각 회차가 끝날 때마다 가장 큰 or 가장 작은 수의 자리가 확정func bubbleSor.. 더보기
비선형 자료구조 - 트리 트리- 순환 X, 무방향, 계층적인 구조를 갖는 그래프- 그래프의 표현(인접 리스트/행렬)과 탐색(DFS/BFS) 알고리즘을 그대로 사용 가능 등장 배경- 정보를 계층적이고 체계적으로 관리하고 싶음- 분기를 나눠 탐색 속도를줄일 수 있음 -> 분기로 통해 탐색 방향이 걸러지면 걸러진 분기는 탐색 X 트리의 종류 1. 이진 트리- 모든 노드가 최대 2개의 자식을 가짐ex. 이진 검색 트리, heap, 완전 이진 트리 2. N진 트리- 한 노드가 여러 자식을 가질 수 있음ex. 파일 시스템 디렉토리 구조 3. 균형 트리- 모든 리프 노드가 비슷한 깊이를 갖도록 설계ex. AVL 트리, Red-Black 트리이진 트리각 노드가 최대 2개의 자식을 갖는 트리 1. 정 이진트리- 모든 노드가 0 or 2개인 자식.. 더보기
비선형 자료구조 - 그래프 비선형 자료구조- 순차적으로 나열되는 것이 아닌 앞,뒤의 관계가 1:N, N:N인 자료구조ex. 그래프, 트리  왜 비선형 자료구조를 사용할까?- 더 많은 정보를 담고- 많은 정보를 담은 상태에서 더 빨리 탐색하기 위함  그래프- 노드(정점) + 간선 으로 연결관계를 표현하는 자료구조 그래프 특징 1. 방향성- 간선에 방향성 추가 (기존 A - B, 방향성 추가 A -> B )- 방향성이 추가되면서 한 쪽 방향으로의 접근만 가능해짐- 해당 연결성을 확인하기 위해 Floyd - Warshall 알고리즘 활용 2. 가중치- 간선에 가중치(비용) 추가- 가중치 + 방향 성분이 모두 포함된 그래프 -> 네트워크- 가중치 개념이 추가되면서 기존에 없던 minimum cost 를 확인해야하는 문제 발생 -> 최소 .. 더보기