본문 바로가기

전체 글188

[밀꼭] 사용자 피드백 반영하기 (Tuist + Carthage + RealmSwift 트러블 슈팅) 글 작성 배경최근 업데이트에서 밀꼭은 고객의 소리함 이라는 기능을 만들었습니다. UI적이나, 기능적으로 필요한 것들에 대해 고객의 의견을 받아보고 싶어서 만들었습니다. 실제로 기능에 대한 불편한점을 호소하였습니다.  개인앱이기에 기능을 고치고 바로 배포에 들어갈려 했습니다. 하지만 저를 가로막은건 Tuist 와 Carthage의 오류였습니다.  오류에 관해서일단 밀꼭은 비교적 오래된 어플리케이션 입니다. 여기서 오래된 이란 단어를 사용한 이유는 2024년에 굵직한 업데이트들이 많이 일어났습니다. swift 6.0 과 Tuist 4.0 업데이트가 있었습니다. 현재 개발이 완료되었고 서비스 유지보수 단계에서 Tuist 와 Swift의 Version Up에 대해 Task Ticket을 전혀 생각하지 않았습니다.. 2024. 11. 1.
[알고리즘] 하노이 탑 이동 순서 python (백준 11729) 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 옮기려 한다.한 번에 한 개의 원판만을 다른 탑으로 옮길 수 있다.쌓아 놓은 원판은 항상 위의 것이 아래의 것보다 작아야 한다.이 작업을 수행하는데 필요한 이동 순서를 출력하는 프로그램을 작성하라. 단, 이동 횟수는 최소가 되어야 한다.아래 그림은 원판이 5개인 경우의 예시이다.입력첫째 줄에 첫 번째 장대에 쌓인 원판의 개수 N (1 ≤ N ≤ 20)이 주어진다.출력첫째 줄에 옮긴 횟수 K를 출력한다.두 번째 줄부터 수행 과정을 출력한다. 두 번째 줄부터 K개의 줄에 걸쳐 두 정수 A B를 빈칸을 사이에 두고 출력.. 2024. 10. 30.
[알고리즘] ZOAC python(백준_16719) 문제2018년 12월, 처음 시작하게 된 ZOAC의 오프닝을 맡은 성우는 누구보다 화려하게 ZOAC를 알리려 한다.앞 글자부터 하나씩 보여주는 방식은 너무 식상하다고 생각한 성우는 문자열을 보여주는 새로운 규칙을 고안해냈다!규칙은 이러하다. 아직 보여주지 않은 문자 중 추가했을 때의 문자열이 사전 순으로 가장 앞에 오도록 하는 문자를 보여주는 것이다.예를 들어 ZOAC를 보여주고 싶다면, A → AC → OAC → ZOAC 순으로 보여주면 된다.바쁜 성우를 위하여 이 규칙대로 출력해주는 프로그램을 작성하시오.입력첫 번째 줄에 알파벳 대문자로 구성된 문자열이 주어진다. 문자열의 길이는 최대 100자이다.출력 규칙에 맞게 순서대로 문자열을 출력한다.https://www.acmicpc.net/problem/1.. 2024. 10. 29.
[알고리즘] 백준_문자열 뽑기 Python (boj 8913) 문제a와 b로만 이루어진 문자열 s이 있다. 그룹은 같은 글자로 이루어진 가장 긴 연속 부분 문자열이다. 길이가 2 이상인 s의 모든 그룹 g는 제거할 수(뽑을 수) 있고, 남은 왼쪽 부분과 오른쪽 부분을 연결해서 새 문자열을 만들 수 있다. 이러한 과정은 문자열이 빈 문자열이 되거나, 길이가 2 이상인 그룹이 없을 때 까지 계속한다.예를 들어, s = babbbaaabb일 때, s에는 그룹이 다섯 개 있다. s는 다음과 같은 단계를 거쳐서 빈 문자열로 바꿀 수 있다. (밑 줄이 그어져 있는 그룹이 뽑히는 그룹)babbbaaabb → baaaabb → bbb → 빈 문자열하지만, 아래와 같은 단계를 거친다면, 빈 문자열로 바꿀 수 없다.babbbaaabb → babbbaaa → baaaa → b문자열이 .. 2024. 10. 25.
[Python] Regex HOWTO https://docs.python.org/ko/3/howto/regex.html,. Abstract: This document is an introductory tutorial to using regular expressions in Python with the re module. It provides a gentler introduction than the corr..." data-og-host="docs.python.org" data-og-source-url="https://docs.python.org/ko/3/howto/regex.html" data-og-url="https://docs.python.org/3/howto/regex.html" data-og-image="https://scrap.ka.. 2024. 10. 16.
[Python] Pyhton Sort에 관하여 (cmp_to_key 활용하기) 개요: python에서 sort할 때 함수를 사용하고 싶을 경우가 있습니다. 가령 Swift의 경우 sorted method를 통해 sorted조건을 Custom할 수 있습니다. Python에서는 어떤 방식으로 인자를 받아서 처리하는지 궁금하여 python에 Sort에 관해 알아봤습니다.  let myList = [1, 2, 3, 4, 5]let sortedMyList = myList.sorted{($0 % 5)  1. 정렬하기 sort(*, key=None, reverse=False)python에 정렬은 간단하게 만들 수 있습니다. nums = [1, 10, 5, 3]nums.sort()sortedNums = sorted(nums, reverse= True)## [1, 3, 5, 10]print(num.. 2024. 10. 10.
[수수] Swift 6.0 마이그레이션 후기 안녕하세요 수수 어플리케이션 iOS개발자 정다함 입니다. 이번 2024-09-17기준으로 Swift6.0이 업데이트 되었습니다. 당장은 Swift 5버전으로 어플리케이션을 배포하고 유지보수해도 상관 없지만, 언젠가는 해야하는 일이라고 생각했습니다. 그래서 이번 기회에 마이그레이션을 진행해 보았습니다.  글은 Swift 6.0 마이그레이션을 하면서 정리했던 생각과, 왜 이런 코드를 작성했는지에 대한 흐름을 보여줄 예정입니다.  1. 싱글톤 객체를 Sendable로프로젝트에서 사용하는 싱글톤 객체를 컴파일 하면 다음과 같은 에러가 발생합니다. 로컬 캐시나 프로젝트에서 쓰는 모듈을 싱글톤을 활용한 경우가 있는데 이들을 모두 수정해주어야 합니다.  Static property 'shared' is not con.. 2024. 10. 4.
[WWDC20] Getting started with HealthKit https://github.com/MaraMincho/MakingFrogWithoutDissecting/blob/main/WWDC/WWDC20-Getting%20started%20with%20HealthKit/Getting%20started%20with%20HealthKit.md [MakingFrogWithoutDissecting/WWDC/WWDC20-Getting started with HealthKit/Getting started with HealthKit.md at main · MaraMincho/M개구리를 해부하지 않고 직접 만들기, 공부 레포. Contribute to MaraMincho/MakingFrogWithoutDissecting development by creating an accou.. 2024. 10. 2.
[혼자하는 해커톤] AI를 활용하여 24시간 만에, 헬스케어 iOS 서비스 만들기(SwimLight - 수영 기록 어플리케이션) 추석 기간동안 개발 16시간, 디자인 및 기획 8시간 하루에 8시간씩 24시간 정도 했습니다. 저는 이번 추석동안 혼자 해커톤을 진행해 보았습니다. 요즘 수영에 맛들렸는데, Apple이 제공하는 수영 관련 데이터들의 불편함을 느꼈습니다. 그래서 이번에 수영관련 데이터들을 관리하는 SwimLight이라는 해커톤을 혼자 진행해보았습니다.     1. 프로젝트 기획하기 _ Chat GPT해커톤에서 가장 어려운 브랜딩 부분을 ChatGPT로 대체하였습니다. ChatGPT를 활용하면 복잡한 브랜딩 과정을 생략하고 빠르게 개발에 전념할 수 있다고 생각했습니다. 다음은 실제 제가 ChatGPT에게 물어본 질문들입니다.   Q: 나는 현재 어플리케이션을 브랜딩 할려고 해.대한민국에서 수영에 관한 어플리케이션이 그렇게 .. 2024. 9. 29.
[수수] iOS에서 에러 Log를 Discord + FireBase로 전달(Discord를 통한 Log 저장 방식 공유) SUSU를 개발하던 도중 한 이메일이 도착했습니다. 메일은 정확한 버그에 대해서 설명을 해주셨습니다. 검색 기능이 동작하지 않는 버그였는데, 버그를 재현 할 수 없었습니다. 즉 어떤 방식으로 왜 버그가 발생했는지에 대해서 명확한 분석을 하지 못하였습니다. 그래서 이를 해결하고자 Log를 외부 서버로 저장하자 라는 생각을 하였습니다.  그래서 서버쪽에 버그를 아카이브 하는건 어떨지에 대해서 물어봤습니다. 당연히 API만들 어줄 것으로 생각했지만, 더 좋은 해결 방법을 얻을 수 있었습니다. 바로 업무에 사용하는 메신저 플래폼을 활용하여 버그를 아카이브하는 방법을 선택했습니다.   1. 통합 로깅 시스템 구축개발자들은 각 Object혹은 function에 적절한 do try catch 를 활용하여 Error를.. 2024. 9. 26.
[수수] iOS 4개월치 회고, 열길 물속은 알아도 한길 사람속은 모른다. 옥수수 팀에 들어가서, 수수 어플리케이션을 만들고 있습니다. 오늘은 그 어플리케이션을 만들면서 느꼈던 것들에 대해서 회고를 하려 합니다.   1. 열길 물속은 알아도 한길 사람속은 모른다.  (iOS팀원의  연속 탈주로 인한 팀이 아닌 개인이 되버린...)프로젝트를 진행하면서 iOS개발자들이 대거 이탈하였습니다. 3명이서 시작한 팀은 몇번의 증원과 탈주가 있었습니다. 이렇게 몇번을 반복하니 결국 팀에 남은 iOS개발자는 저 혼자 남게 되었습니다. 팀원들은 각자 저마다의 사정으로 팀을 나가게 되었고, 나간다는 소식을 듣고 나가기 까지 걸린 시간은 반나절도 안되었습니다.(당일통보 ㅠㅠ) 팀끼리 상의 없이 나가서 속상하고 분노도 차올랐습니다.  그렇게 절망과 원망의 시간이 흐르고 감정이 무뎌지는 데 까지는 얼.. 2024. 9. 8.
[TCA] Performance 읽어보기 ArticlePerformanceLearn how to improve the performance of features built in the Composable Architecture. Overview As your features and application grow you may run into performance problems, such as reducers becoming slow to execute, SwiftUI view bodies executing more often than expected, and more. This article outlines a few common pitfalls when developing features in the library, and how to fi.. 2024. 8. 29.