IT Study
-
[iOS] Swift에서 날짜 기반 채팅 목록 그룹화 개선하기 (Feat. 그룹화 우선순위의 오류, sortWeight)IT Study/iOS 2025. 1. 30. 17:01
ㅡAloneChat의 groupChatRoms() 정렬 문제 해결 과정에 대해 다루고 있습니다. 1. 문제 정의 : 연도별 정렬 오류AloneChat에는 채팅 목록을 날짜별로 그룹화하는 기능이 있습니다. 이 기능은 2024년 연말까지는 문제없는 듯 보였지만, 2025년 새해가 되면서(ㅋㅋ ㅠㅠ 바보...) 2024년 그룹이 2025년 1월보다 위에 표시되는 문제가 발생하였습니다. 내가 기대하는 정렬오늘어제02월 (2025년 2월)01월 (2025년 1월)2024년 (이전 연도는 한 그룹으로 묶음) 현재 코드에서 발생하는 문제2024년이 2025년 1월보다 위에 정렬되는 것이 문제가 됩니다. 2. 문제 원인 분석이전에는 Dictionary 형태로 반환한 뒤, Dictionary의 Key인 문자열(오늘,..
-
[LeetCode] 1071. Greatest Common Divisor of StringsIT Study/LeetCode 2025. 1. 19. 16:02
1. 문제더보기 문제 설명두 문자열 str1과 str2가 주어졌을 때, 두 문자열을 모두 나눌 수 있는 가장 긴 공통 문자열을 구하는 문제입니다.문자열 t가 문자열 s를 나눌 수 있으려면, 다음 조건을 만족해야 합니다.s = t + t + ... + t (t가 반복되어 s를 구성) 예시입력: str1 = "ABCABC", str2 = "ABC" → 출력: "ABC"입력: str1 = "ABABAB", str2 = "ABAB" → 출력: "AB"입력: str1 = "LEET", str2 = "CODE" → 출력: "" 실제 문제For two strings s and t, we say "t divides s" if and only if s = t + t + t + ... + t + t (i.e., t is ..
-
[LeetCode] 1768. Merge Strings AlternatelyIT Study/LeetCode 2025. 1. 18. 17:32
코딩 테스트에 대한 감을 잃었다. 차근히 다시 시작해보자. 1. 문제더보기 문제 설명두 개의 문자열 word1과 word2가 주어졌을 때, 다음 규칙에 따라 문자열을 병합합니다.word1과 word2의 문자를 번갈아가며 추가합니다.두 문자열 중 하나가 더 길다면, 남은 문자를 병합 결과 뒤에 추가합니다. 예시입력: word1 = "abc", word2 = "pqr" → 출력: "apbqcr"입력: word1 = "ab", word2 = "pqrs" → 출력: "apbqrs" 실제 문제You are given two strings word1 and word2. Merge the strings by adding letters in alternating order, starting with word1. If..
-
[iOS] 테스트 플라이트 "수출규정 문서 누락" 한 번에 해결하기 (Feat. 암호화 알고리즘? )IT Study/iOS 2024. 12. 8. 14:53
귀찮은 단계 없애도록 합시다 iOS 앱을 배포하기 위해 테스트 플라이트나 앱 스토어에 업로드하는 과정에서 다음과 같은 에러 메시지를 자주 만납니다.이 에러는 앱에서 암호화(Encryption) 기술을 사용하고 있는 경우, 애플이 미국 수출 규정에 따라 필요한 정보를 요청하기 때문에 발생합니다. 이번 글에서는 이 에러의 원인과 해결 방법을 알아보고, 수출 규정과 암호화 기술의 관계를 간단히 정리하겠습니다. 1. 왜 이 에러가 발생할까?우리가 테스트 플라이트나 앱 스토어로 우리의 서비스를 제출하면, Apple은 미국의 서버로 우리의 서비스를 업로드합니다. 이때, 배포하는 사람의 소재지에 관계없이 우리의 서비스, 즉 앱은 미국 수출법의 적용을 받습니다.미국 법에 따르면, 암호화 기술을 포함한 소프트웨어를 수..
-
[iOS] 상수를 어떻게 관리해야할까 (Feat. struct, enum?)IT Study/iOS 2024. 12. 8. 13:55
상수룩... 조크로 시작합니다... iOS 앱 개발을 하다 보면 화면에 표시할 텍스트, 아이콘 이름, 컬러 값 등 변하지 않는 상수를 코드에서 자주 사용하게 됩니다. 이를 효율적으로 관리하기 위해 Swift에서 자주 사용하는 두 가지 방식이 있습니다. struct와 enum. 이번 글에서는 이 두 가지 방식의 차이점과 각각의 장단점을 비교해 보며, 어떤 상황에서 어떤 방식을 선택하는 것이 적합한지 알아보겠습니다. 1. 상수 관리를 왜 해야 할까?상수를 잘 관리하면 다음과 같은 이점이 있습니다.코드 가독성 향상 : 상수 이름만 보고도 의미를 쉽게 파악할 수 있다.재사용성 증가 : 중복 코드 제거, 수정 시 한 곳만 변경할 수 있다.유지보수 편의성 : 값 변경 시 모든 파일에서 검색하지 않아도 된다."편하..
-
[iOS] 최소 지원 버전 (Feat. arm, CPU 아키텍처, 프레임워크 아키텍처)IT Study/iOS 2024. 11. 10. 18:34
아래 글에서는 iOS의 주요하게 지켜보고 있는 버전들에 대해 정리하고 있습니다. 📱 OS 버전1. iPhone OS2007년 MacWorld 컨퍼런스에서 iPhone 1세대와 함께 공개발표 당시에는 iPhone OS라는 이름도, 소개하지도 않았다.iPhone 프로젝트를 시작할 당시, Apple 내부 iPod vs Mac OS X 대립 구조 중 후자가 선택되었다.iPhone OS 1 (2007-2010) ~ iPhone OS 3 (2009-2012) 2. iOS2010년 iPad 공개와 함께 iPhone OS에서 iOS 로 명칭 변경아래는 지원 종료된 버전iOS 4 (2010-2013)iOS 5 (2011-2014)iOS 6 (2012-2015)iOS 7 (2013-2016)iOS 8 (2014-201..
-
[Native] 기본기에 관하여 (Feat. 2024년 11월 첫째주의 악몽)IT Study 2024. 11. 10. 14:38
저는 iOS를 갑작스럽게 시작하게 되었습니다. 안드로이드 개발자로서 모바일 분야에 관심이 많았던 것은 사실이지만, 안드로이드라는 분야의 전문성을 키워나가고자 하는 것이 주된 목표였습니다. 안드로이드라는 주 분야에 더해 iOS를 사이드 프로젝트를 진행하며 모바일 개발자로서의 두각을 드러내고자 했습니다.그러나 업무를 진행하며, iOS 개발자의 부재로 인해 모바일 파트를 모두 맡게 되었습니다. (여기에서 모바일 파트는 Native의 순기능을 사용할 수 있는 Android, iOS 분야로 한정하도록 하겠습니다.) 처음엔 그닥 두렵지 않았습니다. Swift와 Objective-C는 그저 개발 언어 중 하나일 뿐, 모든 언어는 비슷한 흐름을 가지고 있다고 생각했습니다. 지금까지 여러 언어를 접하며, 처음엔 어색하고..
-
[우아콘 2024] XML에서 Compose로의 전환 (Feat. 안드로이드)IT Study/Android 2024. 10. 30. 14:27
이번 우아콘 2024에서 "XML을 Compose로 전환하기" 세션에 참석했습니다.기존의 XML 기반 UI를 Jetpack Compose로 전환하는 과정에서의 경험을 들은 이후, 사견에 대해 공유하고자 합니다 :) 1. 전환 계기우아한형제의 안드로이드 팀에서는 공통 디자인 시스템 구축을 위해 Compose를 도입하기 시작했습니다. 단순한 공통 시스템을 위해 Compose를 도입하는 것이 적절한지에 대한 의구심이 있었으나, 선언적 UI의 이점과 코틀린만으로 개발이 가능하다는 점이 매력적으로 작용하여 도입을 결정지은 듯 합니다. 2. Compose의 장점아래 내용 중 예상하건데, 점진적 전환이 가능했기에 서비스에 도입할 수 있지 않았을까요?선언형 UI로 인한 성능 개선 : 화면의 변경되는 부분만을 다시 그..