- 메모리관리(weak self와 guard의 만남)2료일기본 개념인 weak, unowned에 대한 자세한 설명은 스킵하겠다. 여기서 다룰것은 언제 그래서 메모리누수가 생기고 댕글런포인트가 뭐고 언제 댕글런포인트가 발생할 수 있을지, weak self는 언제써야하는지.. 등 좀더 실무적인 개념에서 다뤄보려 한다.weak self를 사용하게 되면 ARC가 1증가하지 않는 약한참조이지만 값이 있을수도 있고 없을수도 있어 guard let같은 옵셔널 binding을 사용하여 코드에 사용해야한다. @escaping & nonEscapingnonescaping 클로저가 범위 내에 실행되어, 코드를 즉시 실행하며 나중에 저장하거나 실행할 수 없다@escaping 클로저는 저장 될 수 있고, 다른 클로저로 전달될 수 있으며 미래의 어느 시점에서 실행 될 수 있다.딜레이가..
- 2025-01-12 20:27:12(87일 전)
- Hash-Hashable을 곁들인2료일사실 이건 기본중의 기본이다. 이미 알고리즘을 풀며도 사용하고 개발을 할때도 이미 많은 곳에 포함되어있다. 하지만 내 블로그에는 따로 정리를 해놓은 적이 없어 딥다이브로 파고들 생각이다. 자 들어가자해쉬🌞Hashing은 임의의 각각 크기를 가진 입력 데이터를 고정 크기의 값으로 변환하는 과정으로, 이를 해시 함수(Hash Function)가 담당한다. 이 과정에서 생성된 출력값은 해시 값(Hash Value) 또는 해시 코드(Hash Code)라고 한다원본 데이터인 키값을 저 hash function을 통해 64 bit의 int형으로 변환한 것을 확인 할 수 있다. 일반 적으로 키 값이 동일하면 해쉬결과값도 동일하게 나온다. Hash Function를 통해 어떠한 값이 들어오건 정해진 자료내의 결과값으..
- 2025-01-05 16:01:27(95일 전)
- 마케팅 앱스토어 노출하기2료일https://developer.apple.com/kr/videos/play/tech-talks/110358/ 앱 노출 및 마케팅 시작하기 - Tech Talks - 비디오 - Apple DeveloperApp Store에서 앱의 노출을 향상시키는 방법에 대해 알아보십시오. 사용자가 App Store에서 앱을 발견하는 다양한 경로를 살펴보고 앱의 노출도를 높일 수 있는 방법을 알려드립니다. 최고의 제품 페developer.apple.comhttps://apps.apple.com/kr/app/%EB%B3%BC%EB%A0%88%EB%98%90/id6737753864 볼레또1. 티켓으로 꾸미는 특별한 여행 기록 - 일반적인 일기 형식이 아닌, 티켓을 형상화한 독특한 기록 방식을 제공합니다. 티켓에는 출발지..
- 2025-01-04 20:56:00(95일 전)
- 22968-균형(swift풀이)2료일https://www.acmicpc.net/problem/22968문제를 해석하는게 어려웠다. 그래서 나와같은 어려움이 있는 사람들을 위해 정리하자면..정점의 개수가 주어질때 해당 정점으로 만들수 있는 AVL Tree의 최대 높이를 구하자는 것이다. AVL Tree = 왼쪽과 오른쪽 노드의 층 차이가 1층보다 크면 안됨. 결국 같은 층이거나 1층차이이여만 한다. 맨 오른쪽의 예제를 보면 1과 10이 2층차이난다. 그냥 이렇게 해석하면 끝!딱 보자마자 아 이거 규칙이 있겟구나 생각을 하며 점을 찍어보았다.1로 그래프를 찍었을때 딱 저 부분이 킥이다. 저 1이 생기는 순간 한층을 더 아래로 내릴 수 있다. 왜냐? 1층차이니까!! 완전이진트리가 될 필요가 없다.그러므로 조금 더 규칙을 구하기 위해 경우를 좀 ..
- 2024-12-26 13:25:46(105일 전)
- Alamofire error code handling2료일현재 내가 개발중인 앱 볼레또에서는 에러코드핸들링을 오로지 401 즉 토큰 만료될때에만 final class RequestTokenInterceptor: RequestInterceptor { func adapt(_ urlRequest: URLRequest, for session: Session, completion: @escaping (Result) -> Void) { guard let accessToken = KeyChainManager.shared.read(key: .accessToken) else { return } var urlRequest = urlRequest urlRequest.setValue("Bearer " + a..
- 2024-12-17 07:44:55(114일 전)
- Preference Key2료일PreferenceKey는 하위 뷰에서 상위 뷰로 데이터를 전달하기 위한 메커니즘입니다. 일반적으로 SwiftUI는 데이터가 상위 뷰에서 하위 뷰로 전달되는 구조를 따르지만, PreferenceKey는 그 반대 흐름을 가능하게 해줍니다.PreferenceKey의 주요 구성 요소PreferenceKey는 다음과 같이 세 가지 주요 요소로 이루어집니다:키 등록: PreferenceKey 프로토콜 준수 및 타입 정의값 송신: 하위 뷰에서 preference 메소드를 통해 값 전달값 수신: 상위 뷰에서 onPreferenceChange 메소드를 통해 값 수신PreferenceKey 프로토콜 구조SwiftUI에서 PreferenceKey는 아래와 같은 프로토콜로 정의됩니다.public protocol Prefer..
- 2024-11-25 18:23:54(136일 전)
- 산모양타일링 - swift2료일https://school.programmers.co.kr/learn/courses/30/lessons/258705 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제분석n이 주어지면 밑변이 n+1로 깔림. 그리고 tops 배열에 따라 위에 삼각형이 있는지 없는지 결정된다. 1이면 위에 있는거고 0이면 없는거고 즉 위의 이미지는 일부러 짤랏지만 [0,1]이겟쥬? 그런데 삼각형 2개로 이루어진 사다리꼴과 삼각형 1개로 배치해서 가득 채우는 경우를 10007로 나누라고 한다.문제접근에? 이렇게 큰 수로 나눠? 이건 DP네~! 자 여기까지 감을 잡았다. // 그런데 기존의 DP와 다른게 n도 달라질수 ..
- 2024-11-15 17:06:21(146일 전)
- 12980좋아하는 수열 - swift2료일https://www.acmicpc.net/problem/12980흠..이 문제는 풀이가 없는 것 같아서 내가 먼저 올린다. 그래야 조회슈 ㅎ...는 농담이고 문제가 재밌다.문제분석1. 순열의 크기 n이 주어진다. 그리고 1..N까지 써야하는 배열이 있다. 이 배열에는 0이 있는데 이는 지워졌다는 것을 의미한다.2. 즉 0자리에는 이미 배열에 있는 수 말고 1..N까지의 수 중 아무거나 사용할 수 있다.3. 하지만 S 점수를 맞추는 경우의 수를 구해야한다.4. 점수? [1,2,3] 이라고 보면 [1,2] , [1,3], [2,3]의 케이스가 가능하기에 총 3점이다. 이런식으로 배열의 인덱스와 값을 비교해 i 문제접근1. 0인 곳에 남은 수로 채워서 모든 경우를 구해보자.2. 그 케이스별로 계산을 하여..
- 2024-11-13 20:08:38(147일 전)
- 상담원인원-Swift풀이2료일https://school.programmers.co.kr/learn/courses/30/lessons/214288 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr오랜만입니다. 알고리즘은 계속 풀고 잇엇으나 그닥 올릴만한 것이 없어서...ㅜ (핑계핑계)자 이번문제는 내가 PM이라고 몰입해야한다.문제 분석 1. 멘토에게 유형이 있음. 맞는 유형의 사람을 시간이 되면 한명씩 진행. 2. 그런데 만약 여러명이 웨이팅중이다? 가장 먼저 상담요청한 참가자부터 진행한다. 3. req는 c번 유형의 사람이 a분때 b분만큼 요청하는 것을 의미한다. -> 결국 구해야하는것은 기다리는 시간을 최소로 하도..
- 2024-11-12 15:30:52(149일 전)
- ShareLink - 개발일기2료일앱 내에서 새로운 친구를 맺을 때, 링크를 통해 친구를 맺고, 만약 다운받지않은 유저라면 앱스토어로 이동하도록 구현을 해야했다. 그러면 어떻게 공유할 수 있을까? 카카오 API의 방법도 있지만 애플로그인으로 하는 경우에는 사용하지 못한다. 그래서 우리는 iOS16이전까지는 위의 기능을 UIKit을 이용해야 했지만 이후에서는 ShareLink를 통해 자체적으로 SwiftUI에서 사용할수 있기에 위의 기능을 사용하기로 했다.아주 쉽다. 그 전에 ShareLink를 통해 데이터를 내보낼 수 있는데 해당 데이터(Item) Transferable 프로토콜을 준수해야한다.ShareLink(item: subject: message:): subject는 제목으로 공유대상이 이메일, 메시지 앱 등일때 필드들이 미리 채워..
- 2024-11-09 19:40:09(151일 전)
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)