bloomLog

고정 헤더 영역

글 제목

메뉴 레이어

bloomLog

메뉴 리스트

  • 홈
  • 태그
  • 분류 전체보기 (28)
    • iOS (19)
      • RxSwift (14)
      • Swift (4)
    • Temporary (2)
    • 개발일기 (4)
    • 네이버 부스트캠프 (1)

검색 레이어

bloomLog

검색 영역

컨텐츠 검색

전체 글

  • [Swift] Modal 화면에서 Push 전환이 필요할 때

    2025.07.09 by kimrindev

  • 네이버 부스트캠프 베이직 1일차

    2025.07.05 by kimrindev

  • 🐍 Poetry 설치 중 PermissionError? 나도 그랬다

    2025.06.13 by kimrindev

  • [Swift] URL Scheme: iOS 앱 간 연결의 핵심 기술

    2025.05.29 by kimrindev

  • [Swift] OAuth 인증 완벽 가이드: 안전한 앱 연동의 모든 것

    2025.05.28 by kimrindev

  • [Swift] Data Race

    2025.05.27 by kimrindev

  • [UIKit] Layout Consistency

    2025.05.25 by kimrindev

  • TMDB에서 생긴일 -3 (PassthroughSubject)

    2025.05.24 by kimrindev

[Swift] Modal 화면에서 Push 전환이 필요할 때

Modal을 사용한 독립적인 플로우 구현 시 자주 마주치는 문제와 해결 방법을 실제 코드와 함께 살펴보겠습니다!언제 Modal 기반 플로우가 필요한가?독립적인 플로우의 특징회원가입, 약관동의, 온보딩 같은 플로우는 메인 앱과는 다른 성격을 가진다:일회성 작업: 한 번 완료하면 다시 볼 일이 거의 없음완료 후 진입 개념: 메인 앱으로 "돌아가는" 것이 아니라 "진입"하는 개념순차적 진행: 단계별로 반드시 거쳐야 하는 절차이러한 특성 때문에 독립적인 플로우는 Modal 기반으로 관리하는 것이 적합하다. Modal 사용이 필수인 이유: 접근 제어약관동의나 회원가입 플로우를 Modal로 분리하는 가장 중요한 이유는 접근 제어 포인트인데Navigation 방식의 치명적인 문제점만약 약관동의를 메인 Navigati..

카테고리 없음 2025. 7. 9. 18:51

네이버 부스트캠프 베이직 1일차

Day1의 회고 일단 문제가 쉽다고 느껴졌다.이정도면 누구나 가능은 하겠는데? 싶었다. 물론 그렇다고 짜잔 하고 나오는 수준의 문제는 아니고 다양한 접근법과 풀이방법을 생각해볼수 있는 문제가 제공되었다. 그리고 이정도면 프로젝트 진행하면서 해도 수월하겠는데? 라고 생각했다.다만 markdown으로 정리하는 습관이 필요할까 라는 의문도 들었는데 나름 합당한 이유를 찾은것 같다.기록의 중요성은 알지만. 기록외의 목적이 없다면 낙서랑 다를게 없다 아닌가 였다. 문제를 구현하면서 학습한 내용의 기록디버거 관련1. 브레이크 포인트 (Breakpoint)코드 실행을 멈추고 싶은 지점에 설정하는 표시그 줄에 도달하면 프로그램이 일시정지됨2. 스텝-오버 (Step Over)현재 줄을 실행하고 다음 줄로 이동함수 호출이..

네이버 부스트캠프 2025. 7. 5. 18:08

🐍 Poetry 설치 중 PermissionError? 나도 그랬다

요즘 Python으로 API 서버나 간단한 CLI 도구를 만들 일이 많아지면서, Python 생태계도 슬슬 익숙해져야겠다는 생각이 들었다. 그러다 발견한 도구가 바로 Poetry. 처음엔 “뭐지 이게? pip이랑 venv 쓰면 되는 거 아냐?” 싶었는데, 조금만 살펴보니 Swift의 SPM이랑 굉장히 유사한 방식으로 프로젝트를 관리할 수 있게 도와주는 툴이었다. 그래서 설치를 시작했는데…바로 PermissionError를 맞았다. Poetry는 뭘까? Poetry는 Python 생태계에서 요즘 가장 핫한 패키지 및 의존성 관리 도구다. 아래 표를 보면 어떤 개발자에게 적합한 도구인지 직관적으로 이해할 수 있다: 기능설명패키지 관리requests, flask 등 외부 라이브러리 설치버전 고정request..

개발일기 2025. 6. 13. 02:05

[Swift] URL Scheme: iOS 앱 간 연결의 핵심 기술

URL Scheme이란?URL Scheme는 iOS 앱을 식별하고 외부에서 앱을 호출할 수 있게 해주는 고유 주소 체계입니다.마치 Safari에서 https://로 웹사이트를 여는 것처럼, letsgitit:// 같은 앱 전용 프로토콜을 등록해두면 다른 앱(예: Safari, GitHub 웹페이지)에서 우리 앱을 열 수 있어요.일상에서 만나는 URL Scheme가장 간단한 예시로는 기본 앱에서 많이 활용하는 기능들이 있습니다.번호 형태의 텍스트를 누르면 전화걸기가 바로 뜨는 방식이죠. 번호를 누르면 팝업메뉴가 뜨고 다양한 액션을 취할 수 있게 확인되는 부분에서 연결하는 느낌입니다. (기본 앱끼리 간의 호환성이 엄청 뛰어나지 않을까 하는 생각이 들었어요)문득 생각난 예시가 카카오T나 카카오페이에서 카카오톡..

iOS/Swift 2025. 5. 29. 19:33

[Swift] OAuth 인증 완벽 가이드: 안전한 앱 연동의 모든 것

OAuth가 뭔가요?OAuth는 다른 앱이 사용자의 비밀번호를 몰라도, 사용자의 정보를 안전하게 가져올 수 있도록 만든 권한 위임(authorization delegation) 방식이에요.용어 정리OAuth를 이해하기 위해 먼저 핵심 용어들을 정리해보겠습니다:Authentication (인증): "이 사람 맞아?" — 사용자 로그인 검증Authorization (권한 부여): "이 사람이 이 기능까지 해도 돼?" — 범위 제한Access Token: "로그인 완료 + 권한 확인"을 담은 열쇠 같은 토큰REST API: 서버와 클라이언트 간의 약속된 데이터 요청/응답 방식 (HTTP 기반)사용자(User): 정보를 소유한 사람클라이언트 앱(Client): 정보를 가져오려는 제3자 앱인증 서버(Auth Se..

iOS/Swift 2025. 5. 28. 19:55

[Swift] Data Race

Data Race 란? 여러쓰레드에서 동시에 하나의 데이터에 접근하고, 그중 하나의 쓰레드가 쓰기작업을 하게될경우 예측할수 없는 결과가 발생하는 문제이다. 예제: 클래스를 여러 Task에서 동시에 접근할경우 (Data Race 발생 )final class Counter { var value = 0 func increment() { value += 1 }}let counter = Counter()Task { for _ in 0.. class는 참조 타입이며 Task {} 는 비동기적이고 병렬적인 작업 단위인데. ( 내부적으로 별도 쓰레드에서 실행됨 )여러 Task가 동시에 동일한 class 인스턴스를 참조하고, 동일한 속성에 접근하면 문제가 발생한다.그 이유는 value ..

iOS/Swift 2025. 5. 27. 13:11

[UIKit] Layout Consistency

레이아웃 정합성이란?레이아웃 정합성(Layout Consistency)이란 UIKit이 UICollectionView를 화면에 그리기 위해 내부적으로 유지하고 있는 데이터 구조와 실제 데이터가 '서로 맞아떨어지는 상태'를 의미한다. UICollectionView의 레이아웃 캐싱 메커니즘레이아웃 사전 계산 (Pre-layout Phase)UICollectionView는 셀을 그릴 때 단순히 그리는 것이 아니다. 내부적으로 "섹션 몇 개, 각 섹션에 셀 몇 개, 셀의 위치, 크기"를 전부 계산해서 기억해둔다. 이를 레이아웃 캐시(layout cache)라고 한다. UICollectionView는 레이아웃을 그리기 전에:layoutSubviews()나 reloadData() 전 "지금 섹션 몇 개야? 각 섹..

iOS 2025. 5. 25. 16:14

TMDB에서 생긴일 -3 (PassthroughSubject)

무한스크롤 구현하기처음에는 reloadData()를 사용했다. 하지만 무한스크롤 진입 시 셀을 처음부터 다시 그리는 문제가 발생했다. 사용자가 열심히 스크롤해서 내려온 위치가 다시 맨 위로 돌아가버리는 것이다. 그래서 reloadSection을 시도해봤다. 섹션별로 업데이트하면 될 것 같았는데, 여전히 해당 섹션이 처음부터 다시 그려지는 동일한 문제가 있었다. ( 근데 생각해보면 너무 당연했던 걸지도..?) 이제 insertItems로 정확한 위치에 셀을 추가하는 방식을 써보자고 생각했다. 하지만 여기서 더 복잡한 문제가 나타났다.핵심 문제가 된 것: CompositionalLayout에서 섹션별 무한스크롤 구현 시 발생하는 동시 업데이트 충돌이었다. ( 잠재적이긴 했다. 실제로 에러가 난것은 아니지만 ..

개발일기 2025. 5. 24. 14:24

추가 정보

인기글

최신글

페이징

이전
1 2 3 4
다음
TISTORY
bloomLog © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바