전체 글
-
[iOS] 객체 레이아웃, Code base UI 구현카테고리 없음 2025. 1. 13. 13:52
UI 그리는 법storyboard(IB)xib코드UI를 그리는 방법은 총 3가지가 있다. 이번엔 코드베이스 중점으로 보게 될텐데 코드 베이스와 스토리보드의 큰 차이점은?스토리보드에서 다뤘던 뷰 객체, 뷰 컨트롤러, 시작점, info.plist ⇒ 전부 코드로 변화해서 시작해야한다.코드베이스여도, Launch Screen은 두고 하는 편파일이 누락됐다고 생각할 수도 있기 때문에 심사가 멈출 수 있다.팀 협업, 유지보수에 코드 베이스가 더 유리하게 작용한다.객체 레이아웃우선 코드로 구성하기 전 객체 레이아웃에 대해 살펴본다.뷰 객체들을 배치하기 위해선 레이아웃이 항상! 필요하다.스토리보드에서 자주 사용하던 AutoLayout은, Frame based layout부터 여러 기기를 대응하기 위해 더 나아진 레이..
-
[UIKit] 뷰 생명주기(View Life Cycle)iOS🍎/iOS 2025. 1. 2. 13:03
뷰 관리 & 계층적 구조 (by UIViewController)UIKit에서의 뷰 관리는 UIVIewController를 사용한다. 뷰의 계층적인 구조를 뷰 컨트롤러가 담당해 관리하기 때문에, 관리에 관련된 메서드나 속성을 UIVIewController(이하 줄여서 VC라고 하겠다)에 적용해 관리한다.일반적으로 화면에 보여지는 것은 하나의 ViewController가 가진 View만 표시된다.VC는 컨테이너 역할이므로 다른 View를 가진 다른 VC를 보여줄 수도 있고, 현재 VC에 다른 컨텐츠(View 객체들, UIButton,,)를 담을 수도 있다.보통 ViewController에는 Root View가 존재한다. window를 갖고 있는 곳이 RootViewController이며 View 를 로드할 ..
-
[UIKit/스토리보드] IBOutlet weak & Collection은 왜 weak가 아닐까?iOS🍎/iOS 2024. 12. 30. 10:03
요새 Storyboard 기반으로 공부를 하다보니 “IBOutlet에 붙는 weak, 그리고 collection에는 왜 weak가 안붙는지?..”가 궁금해져서 찾아보게 됐다!참조 관계 파악View Controller를 살펴보면 아래와 같이 구성되어 있다.View Controller > View > View 객체(UIImageView, UILabel,,,) 의 계층 구조로 설계되어있다.IBOutlet은 ViewController - View객체를 이어주는 연결을 하는데,여기서 weak를 붙이는 이유는 아래와 같은 참조관계를 먼저 알아야한다.모든 ViewController는 View가 있어야하기 때문에, 강하게 참조한다.VC → View그리고, View안에도 button, label 등 View 객체가 있어..
-
[iOS] Kingfisher & AppStorage로 이미지 다운로드 속도 개선하기iOS🍎/iOS 2024. 11. 24. 23:51
이력서와 프로젝트에 작성했던 부분인데, 최근 면접을 준비하다가 내가 한 방법이 맞는지 잘 모르겠다.다른 분들은 어떻게 하는지 궁금하기도 해서 쓰는 글URLSession & Kingfisher내가 맡은 부분은 인스타그램처럼 홈 화면에 매번 떠있는 저 프로필 이미지를 가져와야한다.URLSession으로 Firebase Storage 에 담긴 회원 프로필 이미지 url을 다운받아 보여주는 역할을 한다.Kingfisher의 경우 이미지 캐싱 라이브러리이기 때문에, URLSession보다 빠르게 다운로드가 가능하다.Instrument - profile - network 로 테스트 해본 결과,약 2초 걸리는 이미지 다운로드가 1.3초까지 줄여지는 것이 확인된다. 많이 줄여졌지만, 이 과정에 대한 의문점이 생겼다.프..
-
RESTful API란 무엇인가?Computer Science🖥️ 2024. 11. 15. 22:57
면접 단골 질문에, 채용 공고에도 많이 써있는 이 API는 왜 써있는 걸까?내가 프로젝트 하면서 보던 API들이랑은 뭐가 다른건가? 의 궁금증에서 시작된 글 시작~!RESTful API란?:REST(Represetational State Transfer) 아키텍처 스타일을 따르는 APIREST는 웹의 기본 프로토콜인 HTTP를 기반으로, 클라이언트와 서버 간의 통신을 효율적으로 하기 위해 정의된 아키텍처 설계원칙이다.이러한 REST 아키텍처의 설계 원칙은 크게 6가지를 가진다.이 원칙을 잘 지킨 API를 우린 RESTful API 라고 부른다.REST 원칙 Uniform Interface(일관된 인터페이스)Stateless(무상태성)Caching(캐싱 가능성)Client-Server(클라이언트-서버 구조..
-
[SwiftUI] Hashable, Equatable, IdentifiableiOS🍎/iOS 2024. 11. 10. 23:33
struct에 Hashable이 선언된 곳 안에 또다른 데이터 타입으로 Hashable 상속을 안해주면 Equatable error 가 뜬다.Type 'Hike' does not conform to protocol 'Equatable’이라는 에러로 시작해 글을 쓰게 됐다. 맨날 대충 찾아보고 긁어넣었던 이것들은 무엇일까?Hashable이란?hash 값을 생성할 수 있는 유형.즉, String, Int, Double, Float, Bool, Set 값들이 전부 해시값으로 바꿀 수 있는 것들이다.따라서 Hashable 프로토콜을 채택한 집합은 전부 이 유형을 갖고 있어야한다.설정 안한 열거형을 정의했을 때 자동으로 해시 가능성을 얻는다. 이러한 hash값을 사용하는 이유는, 탐색의 속도가 빨라서이다.해시 테..
-
HTTP vs HTTPS (with SSL, 대칭키, 공개키)Computer Science🖥️/Network 2024. 10. 24. 18:38
이 둘에 대해 매번 찾다가 결국 암호화 방식까지 궁금해서 다 찾게 되었다.매번 대칭키, 공개키를 볼때마다 찾는 것 같아서 ㅎ… 정리하려고 한다.HTTP vs HTTPSHTTP(Hyptertext Transfer Protocol)는 텍스트 기반 프로토콜로, 주로 웹 브라우저 & 서버 간에 데이터를 전송할 때 사용하는 어플리케이션 계층의 프로토콜이다.HTTP의 통신이 상대를 확인하지 않고 요청을 주고 받는 특징을 가졌기 때문에 보안에 취약한데..이를 해결하기 위해서 HTTP + SSL 로 통신 내용을 암호화 하는 방식인 “HTTPS 프로토콜”이 나오게 된다.SSL이란 ?SSL(Secure Sockets Layer)가 발전되게 TLS로 버전업되면서 이름이 바뀌었다.SSL은 위와같이, HTTP - TCP의 직접..