분류 전체보기
-
[UIKit/스토리보드] IBOutlet weak & Collection은 왜 weak가 아닐까?Apple🍎/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로 이미지 다운로드 속도 개선하기Apple🍎/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, IdentifiableApple🍎/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의 직접..
-
누적합Algorithm PS👩🏻💻/개념 2024. 9. 16. 12:27
누적합은, 보통 이중 반복문(배열 문제)으로 시간 초과가 될때 구간합을 O(1)로 줄여주는 경우가 많아서, 종종 쓰인다. 누적합 사용 유형구간 합 구하기: 배열에서 여러 번 특정 범위의 합을 구하는 경우, 배열의 누적합을 미리 계산해 두면 각 구간의 합을 빠르게 구할 수 있습니다.예시: 주어진 배열에서 여러 번 "i번째 원소부터 j번째 원소까지의 합"을 구하는 문제.최소/최대 구간 합: 배열에서 특정 길이의 구간 중 가장 큰 합 또는 가장 작은 합을 구하는 문제에서, 누적합을 활용하면 구간 합을 효율적으로 계산할 수 있습니다.예시: "배열의 부분 배열 중 합이 가장 큰 구간을 찾아라"와 같은 문제.차이 배열: 누적합을 활용하여 배열에서 구간별로 값을 추가하거나 뺄 때, 전체 배열을 매번 갱신하지 않고도 ..
-
[iOS/SwiftUI] NavigationStack을 왜 사용하는가?Apple🍎/iOS 2024. 9. 4. 01:48
NavigationStack으로 link를 타면서 화면 전환을 하다가,,,화면 전환을 하면서 action을 취해야하는 순간이 있었는데 이를 찾다가 .navigationDestination을 봤고....Router 구조체를 만들어서 navigation을 정리하는 것을 보며NavigationStack은 도대체 왜 나타나게 된건지,어떻게 제대로 사용하는 건지를 찾아보게 됐다.NavigationStack & Link로 사용하면 안되는건가?원래는 아래와 같이 NavigationLink만 사용해도, 원하는 화면으로 이동 가능하다.import SwiftUIstruct ContentView: View { var body: some View { NavigationStack { VSt..
-
[iOS] ARC란 무엇인가 & 메모리 누수Apple🍎/iOS 2024. 8. 23. 19:08
Swift - ARC 한글문서를 참고해서 정리한 문서입니다.2024.08.23 - [iOS] 메모리 구조앞의 글에서 "하지만 ARC도 강한 참조면 메모리 해제 못한다구?!" 에 이어서 ARC를 알아보자!ARC(Automatic Referecne Counting)란?객체의 생명주기와 관계를 모델링한다.이게 뭔 소리야..? 싶겠지만 앞에서 본 heap영역에 올라간 객체(클래스)의 생명주기, 관계를 모델링 해주는 역할이라고 생각하면 어떨까?대부분 Swift의 메모리 관리는 생각할 필요 없이, ARC가 알아서 클래스 인스턴스로 사용된 메모리를 할당/해제 해준다.(유의: 참조 카운팅은 클래스의 인스턴스에만 적용! 구조체,열거형은 참조 타입이 아닌 값 타입이므로 참조로 저장되거나 전달되지 않는다.)ARC의 작동 원..