가상 메모리의 개념과 동작 원리
Life style/TIL2024. 5. 13. 13:35가상 메모리의 개념과 동작 원리

Virtual memory 또는 Vitrual storage는 메모리 관리 기법의 하나로 컴퓨터 시스템에 실제로 이용 가능한 기억 자원을 이상적으로 추상화하여 사용자들에게 매우 큰 메모리로 보이게 만드는 것을 말한다. 각 프로그램에 실제 메모리 주소가 아닌 가상의 메모리 주소를 주는 방식이다. 주 메모리(RAM)를 모두 소비하고 고갈될 것으로 생각하여 개발하게 되었으며, 디스크의 일부를 가상 메모리로 할당하고 필요한 데이터를 디스크와 RAM 간에 주고 받는 방식으로 개발했다. 가상 메모리는 사용하지 않는 데이터를 RAM에서 디스크로 스왑하고 다른 작업을 위해 RAM을 확보한다.  가상 메모리의 필요성과 장점가상 메모리는 멀티태스킹에 매우 중요한 역할을 한다.컴퓨터가 무거운 프로그램을 둘러싼 메모리 제약에..

렌더링 속도의 향상을 위한 MIP maps: 밉맵
Life style/TIL2024. 5. 13. 10:33렌더링 속도의 향상을 위한 MIP maps: 밉맵

3차원 그래픽스 텍스처 매핑 분야에서 렌더링 속도를 향상시키기 위한 목적으로 기본 텍스처와 이를 연속적으로 미리 축소시킨 텍스처들로 이루어진 비트맵 이미지의 집합이다.  라인터 multium in parvo의 약자로, "많은 것을 작은 공간에 넣음"이라는 뜻이다.32비트 시스템에서 각각의 색이 8비트값으로 이뤄지면 1/4공간이 낭비하게 된다. 미사용 공간을 활용하기 위해 이미지의 1/4 크기의 복사본을 넣으면서 반복하여 넣게 된다. 텍스처 크기가 256x256 픽셀이라고 할 때, 만들어지는 이미지는 128x128, 64x64, 32x32 ... 여덟 개의 이미지로 구성된다.이 텍스처를 40x40 크기로 렌더링할 경우 64x64 크기와 32x32 크기 밉맵 이미지를 적절한 방법으로 보간해서 최종 이미지를 ..

암호화와 보안의 기본 개념과 iOS 앱 보안을 위한 방안
Life style/TIL2024. 5. 9. 11:59암호화와 보안의 기본 개념과 iOS 앱 보안을 위한 방안

암호화는 정보를 인코딩하는 프로세스이다.암호화에 사용되는 키가 있으며, 키를 통해서 암호문을 생성한다. 암호화된 정보를 사용하기 위해서는 키를 이용하여 암호문을 복호화한다. 암호화는 보안 분야에서 사용되며, 대표적으로는 아래와 같다.데이터 전송 보안: 인터넷 통신데이터 저장 보안인증 및 접근 제어: 인증서, 보안 토큰전자서명블록체인 대칭키 암호화와 비대칭키 암호화의 차이암호화에서 사용되는 키는 두 가지 유형의 키가 사용된다.대칭키비대칭키(공개키)Symmentic-key암호화와 복호화에 사용되는 키, 두 키 사이에는 동일할 수도 있고 간단한 변환이 있을 수도 있다.둘 이상의 당사자 간의 공유하는 키로 양 당사자가 비밀 키에 접근할 수 있어야 한다는 요구 사항은 public-key에 비해 주요 단점이다.그러..

동시성 프로그래밍의 개념과 iOS에서 동시성 처리 방식
Life style/TIL2024. 5. 7. 17:44동시성 프로그래밍의 개념과 iOS에서 동시성 처리 방식

Concurrent Computing은 여러 계산이 순차적이지 않고 겹치는 기간 동안 동시에 실행되어 다음 계산이 시작되기 전에 하나가 완료되는 컴퓨팅의 한 형태이다.병렬 처리와 동시 처리의 차이둘 다 동일한 기간 동안 실행되는 여러 프로세스로 설명된다.병렬 처리는 동일한 물리적 순간에 발생한다. 실제로 동시에 수행하기 위해 멀티 코어를 이용하여 작업을 분산하여 처리한다. 주로 과학 계산, 고성능 컴퓨팅, 그래픽 처리, 인공 지능 등에 사용된다.동시 처리는 여러 작업이 시간적으로 겹쳐서 진행되는 것처럼 보이는 것을 의미한다. 즉, 하나의 CPU 코어가 여러 작업을 교차 실행하는 방식이다. 운영체제, 게임, 데스크톱 환경 등에 사용된다. 예를 들면, time-sharing slices(시분할)을 이용하여 ..

자료구조의 종류와 iOS 개발에서 자주 사용되는 자료구조
Life style/TIL2024. 5. 7. 12:53자료구조의 종류와 iOS 개발에서 자주 사용되는 자료구조

자료구조는 데이터를 효율적으로 사용할 수 있도록 정리하는 방법이다. 데이터 간의 관계 그리고 적용할 수 있는 함수나 명령을 의미한다. 선형 자료구조와 비선형 자료구조로 나눌 수 있으며, 선형 자료구조는 데이터 요소를 순서대로 정렬하고 비선형 자료구조는 데이터를 비연속적으로 연결한다. 개별 요소에 접근하는 작업에는 선형 자료구조가 더 효율적이지만, 네트워크 연결과 같은 특정 문제를 효율적으로 해결하기 위해서는 비선형 자료구조가 더 알맞다.배열, 연결 리스트, 스택, 큐의 특징과 iOS에서 구현 방법배열배열은 연속적인 메모리 블록에 요소를 저장한다. 각 0부터 인덱싱된다.C언어의 경우에는 선언 시 크기가 고정되는 반면 Swift에서는 capacity가 초기화될 때 일정 크기의 메모리 공간을 할당받으며, ca..

알고리즘의 시간 복잡도와 공간 복잡도의 개념, 빅오 표기법
Life style/TIL2024. 4. 29. 20:19알고리즘의 시간 복잡도와 공간 복잡도의 개념, 빅오 표기법

알고리즘의 성능을 이야기할 때에는 시간 복잡도와 공간 복잡도에 대해 이야기한다.시간 복잡도는 문제를 해결하는 데 걸리는 시간이고 공간 복잡도는 메모리 공간을 얼마나 사용하는지 나타낸다.입력 크기에 따라서 어떻게 되는지는 빅오 표기법을 통해 표시한다.특정 데이터를 찾을 때에는 왼쪽에서 시작하여 오른쪽으로 끝이 나는 방법 같이 선형적으로 찾게 된다. 운에 귀결되는 탐색이다.이러한 방식으로 모든 값을 확인하는 것은 O(n) 시간 복잡도를 뜻한다.하지만 알고리즘으로 정렬이 되어있다면 특정 데이터를 빠르게 찾을 수 있게 된다.자주 사용되는 정렬 알고리즘의 동작 원리와 시간 복잡도Sorting AlgorithmsTime ComplexitySpace Complexity  Best CaseAverage CaseWors..

iOS에서 메모리 사이즈와 관련된 개념과 고려 사항
Life style/TIL2024. 4. 29. 15:42iOS에서 메모리 사이즈와 관련된 개념과 고려 사항

iOS 다바이스의 메모리 제약과 앱 메모리 제한디바이스마다의 실제 메모리 RAM이 존재하고 앱이 실행되면 메모리를 사용하며 실행된다.사용하려는 시스템은 메모리를 사용하다 부족하면 백그라운드에서 실행 중인 앱을 종료하거나 앱의 메모리 사용을 제한할 거 같다.메모리 제한이라면 각 앱마다 메모리 양을 제한하여 다른 앱와 프로세스에 문제 생기는 부분을 이야기하는 거 같다. 메모리 워드(word) 크기와 데이터 정렬이 메모리 액세스 성능에 미치는 영향메모리에서 말하는 word는 데이터를 저장하고 처리하는 기본 단위를 의미한다.word의 크기는 컴퓨터 아키텍처에 따라 다르며 32비트 CPU에서 1word는 32비트를 의미한다.아이폰 14 프로에 사용되는 Apple A16은 64비트 6코어 CPU로 데이터를 저장하고..

네트워크 프로토콜 스택과 iOS에서의 네트워크 통신 방식
Life style/TIL2024. 4. 24. 00:00네트워크 프로토콜 스택과 iOS에서의 네트워크 통신 방식

네트워크 프로토콜은 네트워크 통신을 위한 약속이다. 데이터의 형식, 순서, 시스템과의 조율 등 다양한 역할을 수행한다. 프로토콜 스택은 TCP/IP 4계층과 OSI 7계층 모델이 있으며, 각기 다른 역할로 사용된다. TCP/IP 모델은 실제 네트워크 작동 방식으로 사용되며 OSI는 교육 혹은 개념적인 모델로 사용된다. OSI 7계층 Application: 사용자와 연결, 응용 SW를 도와주는 계층으로 하위 계층에 사용자 정보를 전달하거나 반대로 하위 계층에서 전송한 데이터를 사용자에게 전달한다. Presentation: 송신측과 수신측 사이에 데이터 형식을 정한다. Session: Port 번호를 연결 Transport: 실제 데이터를 전송하기 위한 동작을 담당, 사용되는 프로토콜에는 TCP와 UDP가 ..

image