GitHub에서 사용되는 SSH는 뭘까?
Life style/TIL2024. 6. 29. 08:48GitHub에서 사용되는 SSH는 뭘까?

Secure SHell의 약자로 네트워크상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해주는 응용 프로그램 또는 프로토콜을 가리킵니다.SSH는 암호화 기법을 사용하기 때문에, 통신이 노출된다고 하더라도 이해할 수 없는 암호화된 문자로 보입니다.일반적인 역할원격 로그인: 원격 서버에 안전하게 접속하여 명령을 실행파일 전송: SCP나 SFTP을 사용하여 파일을 안전하게 전송포트 포워딩: SSH 터널을 통해 네트워크 서비스에 안전하게 접근자동화 및 스크립팅: SSH 키를 사용하여 비밀번호 없이 자동으로 스크립트를 실행하거나 작업을 자동화GitHub에 연결SSH 키를 사용하면 방문할 때마다 사용자 이름 및 personal access token을 제공하..

iOS 앱의 생명주기(App Life Cycle)
Life style/TIL2024. 6. 5. 00:11iOS 앱의 생명주기(App Life Cycle)

앱의 현재 상태에 따라 언제든지 할 수 있는 것과 할 수 없는 것이 결정된다.앱이 상태가 변경됨에 따라 그에 따라 동작을 조정해야 한다.iOS 13이상에서는 UISceneDelegate 개체를 사용하여 scene-based app의 수명 주기 이벤트에 응답한다.앱이 Scene을 지원하는 경우 UIKit은 각각에 대한 별도의 수명 주기 이벤트를 제공한다.Scene은 기기에서 실행되는 앱 UI의 한 인스턴스를 나타낸다.UIApplicationSceneManifest 를 추가하면 앱이 Scene 기반으로 작동하도록 설정된다. 이를 통해 멀티태스킹을 지원하고 여러 창을 동시에 열어서 작업할 수 있게 된다. Opt-in feature로 기본적으로는 단일 윈도우를 가지고 Scene 기반의 생명 주기 관리가 비활성화..

Swift에서 Optional이란?
Life style/TIL2024. 6. 4. 19:57Swift에서 Optional이란?

wrapped value 또는 값의 부재를 나타낼 때 Optional 형식을 사용한다.여기서 말하는 값의 부재는 메모리 할당하지 않은 것을 의미한다.일반적으로 변수의 유형을 Int? 와 같이 물음표를 타입 이름의 후행에 표시한다.Optional는 또 다른 작성 방식입니다.여기서 나오는 Optional.none 은 nil 과 동일합니다.let number: Int? = Optional.som(42)let noNumber = Int? = Optional.none 옵셔널 바인딩과 강제 언래핑의 차이점두 가지 모두 Optional을 언래핑할 때, 조건적으로 할 것인지 강제로 할 것인지의 차이가 있다.Optional Binding 은 Optional 인스턴스의 래핑된 값을 새 변수에 조건부로 바인딩하는 것을 의미..

iOS에서 자동 참조 카운팅(ARC)과 가비지 컬렉션(Garbage Collection)의 차이점
Life style/TIL2024. 5. 31. 15:11iOS에서 자동 참조 카운팅(ARC)과 가비지 컬렉션(Garbage Collection)의 차이점

Garbage Collection가 뭘까?1950년대 후반에 개발된 Lisp 프로그래밍 언어에서 처음 도입되었다. 이후에 다양한 언어에 영향을 미쳤으며, Java, C# 등에서 사용된다.Java GC는 어때?GC는 힙 메모리를 살펴보고, 사용중인 오브젝트와 사용되지 않는 오브젝트를 식별하고, 사용되지 않는 오브젝트를 삭제하는 프로세스다. 사용 중인 개체 또는 참조된 개체는 프로그램의 일부가 여전히 해당 개체에 대한 포인터를 유지 관리한다는 것을 의미한다. 사용되지 않는 개체 또는 참조되지 않은 개체는 더 이상 프로그램의 어떤 부분에서도 참조하지 않습니다. 따라서 사용하는 메모리를 회수할 수 있다.MarkingGC는 사용 중인 메모리와 사용되지 않는 메모리를 식별합니다.참조된 객체와 참조되지 않는 객체를 ..

데이터베이스의 종류와 iOS에서 주로 사용되는 데이터베이스
Life style/TIL2024. 5. 19. 14:45데이터베이스의 종류와 iOS에서 주로 사용되는 데이터베이스

데이터베이스는 크게 2가지로 나눌 수 있다.관계형 데이터베이스비관계형 데이터베이스관계형 데이터베이스(RDBMS)데이터를 행과 열로 구성된 2차원 테이블 형태로 저장된다.SQL을 사용하여 데이터를 조작한다.비관계형 데이터베이스(NoSQL)키-값으로 데이터를 저장한다.JSON 등의 문서 형태로 데이터를 저장한다. iOS에서 사용되는 SQLite, Core Data, Realm 등의 특징과 사용 사례Core Data는 관계형 데이터베이스와 객체 지향 프로그래밍을 결합한 것으로 객체-관계 맵핑된다.Entity, Attribute, Relationship로 정의된 스키마로 저장되어 SQL와 유사하게 데이터를 쿼리할 수 있다.데이터는 SQLite 데이터베이스에 저장된다. Swift Data에서는 Core Data와..

iOS 앱의 메모리 사용량 최적화를 위한 방안과 고려 사항
Life style/TIL2024. 5. 19. 11:35iOS 앱의 메모리 사용량 최적화를 위한 방안과 고려 사항

메모리 캐싱은 왜 필요할까?우선 Caching은 메모리 내에서 자주 액세스하는 데이터를 관리하는 데 사용되는 기술이다. 캐싱을 하면  더 빠른 로드 시간과 네트워크 대기 시간 감소 등 사용자 경험을 향상 시킨다.서버에서 가져와야 하는 데이터를 줄어 들면서 요금 절감 혹은 네트워크 환경이 좋지 못한 사용자에게 도움된다. 메모리 캐싱 기법의 개념과 iOS에서의 구현 방법Cache Hit는 캐시에서 데이터를 읽는 방식으로 제공된다. Cache miss 경우에는 데이터를 가져와 캐시에 저장한다.Cache Hit: 요청된 데이터를 캐시에서 찾을 수 있을 때 발생Cache Miss: 캐시에서 찾을 수 없을 때 발생캐시를 지우는 데에도 전략이 존재한다.LRU: 가장 오랫동안 사용되지 않은 데이터를 캐시에서 삭제LFU..

가상 메모리의 개념과 동작 원리
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 크기 밉맵 이미지를 적절한 방법으로 보간해서 최종 이미지를 ..

image