전체 글

16.0부터 presentationDetents 로 시트의 높이를 고정할 수 있었다.그래서 운영중인 앱에서 잘 ! 사용하고 있었는데, 최근에 높이가 간헐적으로 고정해둔 사이즈로 보여지지 않고, 길게 보여진다는 버그를 제보받았다.  문제개발환경에서 앱을 실행하여 데이터가 저모양이다..!문제는 아래와 같은 상황에서 재현가능했다.- 실기기 (시뮬레이터에선 재현 불가)- 시트를 드래그로 내리고 다시 올린 경우  시트 관련한 로직만 확인해보면 아래와 같다.아래처럼 아무 문제 없어보이는 코드지만, 원치않는 에러가 발생한다.464로 고정해둔 시트 사이즈가 가끔 길게 보여지는 문제이다!struct SheetTestView: View { @State var showQuestSheet: Bool = false ..
RedactionReasons 알아보기다음과 같은 경우에 해당 redactionReason를 사용하면 좋습니다!  invalidated- 데이터가 잘못되었거나 무효일 때 새로운 업데이트가 필요함을 나타낼 경우- API 응답이 변경되거나, 콘텐츠가 최신 상태가 아니어서 업데이트가 필요한 경우 placeholder- 데이터가 로드 중일 때 로딩 상태를 표시하는 경우 privacy- 개인정보를 보호하기 위해 일부 데이터를 가릴 경우- 사용자의 계좌 정보나 거래 내역을 가릴 경우- 앱을 백그라운드로 전환하거나 캡처가 감지될 때 정보를 가릴 경우  내용이 많지 않아서, 코드와 주석으로 바로 시작하겠습니다 !!// MARK: - privacy redaction VStack(alignment: .leading) {..
이전에 항상 ProgressVew로 로딩중인 화면을 구현했었는데, 홈 탭을 구현하면서 .redacted를 사용해보고 싶었다.앱에 적용할지는 확실하진 않지만,, 간단하게 기록하고자 작성한다.  redacted란?결론부터 말하자면, redacted는 컨텐츠를 가려주는 메소드입니다. 공식 문서를 보기 전에 설명이 와닿나요?(아니요!!!!?)  단어부터 이해하고 가자면, 이 글에서 설명되어있는 것 처럼 기밀 또는 민감한 내용을 지우다라는 뜻을 갖고 있습니다.그래서 reason에 데이터를 가리기 위한 이유를 같이 작성해주는 거겠죠?   redacted 사용해보기일단 RedactionReasons에는 현재 3가지가 존재합니다.  각각 사용에 대해서는 여기서 더 알려드리겠습니다!!3가지 중에서 placeholder를..
서강 그라운드https://www.acmicpc.net/problem/14938    풀이다익스트라 1. 1부터 N까지 BFS 반복하면서 최댓값 업데이트2. 다음 큐의 cost 더했을 때 수색범위 안이고, 다음 큐의 갯수를 더했을 때 현재 아이템 갯수보다 크다면 큐에 추가하기3. 큐에 들어간 아이템들은 전부 갈 수 있으므로 Set로 관리. bfs 끝난 후 Set에 들어있는 아이템에 해당하는 비용 추가해서 bfs 반환  소스코드let NMR = readLine()!.split(separator: " ").map { Int($0)! }let N = NMR[0], M = NMR[1], R = NMR[2]var items: [Int] = [0]items += (readLine()!.split(separato..
에러Undefined symbolsLinker command failed with exit code 1 (use -v to see invocation)   너무 다양한 이유로 뜨는 에러여서 가장 싫어하는 에러다ㅠ 프로젝트 타겟에 테스트 번들을 추가했었다.이것저것 작성하고 테스트를 딱 돌리려 했는데, 저런 에러가 났다.한두시간 이것저것 시도해봤고, 파일에 타겟 설정이 제대로 안된게 있나~.. 이런저런 설정값을 확인해봤다. 그리고 마지막으로 테스트를 추가했던 다른 Xcode 프로젝트랑 세팅을 비교해봤다.. 무엇이 문제였을까요~~~~~~~해결 방법 1번째 방법: General - Testing - Allow testing Host Application APIs  아래 이미지처럼 체크해주니까 바로 !! 에러가 ..
간선 이어가기2 문제https://www.acmicpc.net/problem/14284     다익스트라 알고리즘으로 해결하면 되는 문제이다.bfs로 순회하며, dp 방식으로 접근하면 된다. (말은 쉽다..!) 현재 정점과 다음 방문할 정점과 비교했을 때,dp[다음정점]의 가중치가 dp[현재정점]의 가중치+다음 정점 가중치보다 크면 dp[다음정점]현재값으로 업데이트하고, 큐에 추가하는 것이 핵심이다. 다익스트라 문제를 풀때는 ..다익스트라 문제를 풀 때는 아래 내용을 고려하면서 풀면 된다. 1. dp 배열의 초기값을 Int.max로 두기2. 방향그래프인지 무방향 그래프인지 확인해서 딕셔너리 업데이트3. bfs 시작할 때 시작값의 dp는 0이나 특정 값으로 초기화4. 방문처리를 따로 안함5. 스위프트로 b..
1. 사이드 프로젝트를 진행하면서 앱에 적용해보고 싶은 iOS의 여러 기능~을 맘대로 추가할 수 없다는 점이 아쉬웠다. (팀프로젝트니까..)2. 혼자 앱을 만들면서 개발하고 싶은 기능을 맘껏 시도해보자~ 3. 기획&디자인에 시간을 생각보다 쓰게된다.4. 기능/화면 단위로 구현해보자 ! (언젠간 도움이 되겠지 !)어찌저찌 시간을 보내다보니 현재 4번의 결론에 도달했다.그러다 문득 스타벅스 앱을 사용하면서 유난~히 앱을 Inactive 상태로 만들면 Active의 상태의 화면이 아닌 초록 배경의 스타벅스 로고를 보여주는 걸 발견했다.이런 기능(?)은 보통 은행 앱에서 자주 보이는 패턴인데 스타벅스에서 보여서 독특하단 생각을 했다.구현을 해보자ScenePhase에는 .active, inactive, backg..
https://school.programmers.co.kr/learn/courses/30/lessons/64065 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 정리1. 문제 요구사항 정의특정 튜플을 표현하는 집합이 담긴 문자열 s가 주어질 때, s가 표현하는 튜플을 배열에 담아 반환문자열 s는 순서가 섞여있음=> 구할 것: s가 표현하는 튜플을 배열로 반환  2. 제약사항5 ≤ s의 길이 ≤ 1,000,0001 ≤ 튜플의 원소 값의 범위 ≤ 100,000  3. 메모리 및 시간복잡도 확인메모리 및 시간 제한 표기되어있지 않음  4. 풀이방법1) {,}..
https://school.programmers.co.kr/learn/courses/30/lessons/134240?language=swift 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 정리1. 문제 요구사항 정의2명의 선수들이 대회에서 책상 양쪽에서 가운데를 향해 음식을 먹는 대결을 함.승리 조건: 중앙에 있는 물을 먼저 먹는 선수환경: 두 선수가 먹는 음식의 종류와 양이 같아야 함.환경: 두 선수가 음식을 먹는 순서도 같아야 함.환경: 칼로리가 낮은 음식을 먼저 먹을 수 있게 배치.환경: 수웅이가 준비해온 음식 중 몇개는 대회에 사용하지 못함.=..
SwiftData 자세히 살펴보기 WWDC 영상 번역/정리본입니다.  목차00:00 Intro03:42 Configuring persistence | 앱의 데이터를 유지하도록 모델을 구성하는 방법07:21 Track and persist changes | 변경 사항을 추적하고 지속하는 방법(ModelContext)11:20 Modeling at scale | 객체를 다룰 때 SwiftData를 최대한 활용하는 방법14:54 Wrap-updocSwiftData 공식 문서Adopting SwiftData for a core Data app 샘플 프로젝트선 시청SwiftData 알아보기SwiftData로 스키마 모델링하기0. Intro이번에는 SampleTrips 앱을 통해 SwiftData에 대해 알아볼 것..