
안녕하세요, 개발하는 멍구입니다 😊 오늘은 개발자라면 한 번쯤 마주치는 "중복 이벤트 문제"를 깔끔하게 해결할 수 있는 Throttle 기능을 iOS에서 직접 구현해보려 해요.복잡한 내용 같지만, 걱정 마세요. 오늘은 개발 지식이 많지 않아도 어느정도는 이해할 수 있도록 하나씩 친절하게 설명드릴게요. 중간중간 예제와 함께 설명드리니, 개발에 입문한 분도, 간만에 Swift 다루는 분도 쉽게 따라오실 수 있을 거예요! 예제 보기에 앞서서 Throttle이 뭐임?앱을 만들다 보면, 버튼을 여러 번 누르거나, 스크롤 이벤트가 너무 자주 발생하는 경우가 있어요. 이럴 때, 매번 이벤트를 처리하면 앱이 느려지거나 이상한 동작을 하게 되죠. 😨이걸 막기 위해 사용하는 게 바로 Throttle 입니다.한 마디로..

안녕하세요~개발자 멍구입니다 😊오늘은 iOS 개발을 하다 보면 한 번쯤 꼭 마주치는 "debounce 처리", 그중에서도 Timer를 활용한 간단한 구현 방법을 공유해보려 해요.너무 무거운 Combine은 부담스럽고, 간단한 기능 하나 때문에 복잡한 구조 짜긴 애매할 때!이럴 때 오늘 소개하는 방식이 깔끔하고 딱입니다.프론트엔드에서도 자주 쓰이는 debounce 개념, 함께 쉽게 이해해볼게요! Debounce란 뭘까? 쉽게 이해하기Debounce는 ‘이벤트가 연달아 들어올 때, 마지막 것만 실행’하는 기능이에요.대표적인 예시는 자동 검색창이 있겠네요.사용자가 키보드를 칠 때마다 검색을 하지 않고,타이핑이 멈춘 뒤 일정 시간이 지나면 한 번만 검색 요청을 보내는 것!즉, 이벤트가 너무 자주 발생하는 상황..

안녕하세요, 개발자 멍구입니다! 🍀오늘은 iOS 앱에서 자주 필요한 기능 중 하나인 "버튼 중복 클릭 방지", 바로 throttle 기능을 Swift 코드로 직접 구현해본 경험을 공유해보려 해요.보통 throttle은 Combine에서 제공되지만, Combine 없이도 구현 가능하다면?코드를 직접 다루며 개념을 이해하면, 좋을 것 같아서 공부 겸 Task 비동기 API를 이용해서 구현해봤어요.오늘은 Task와 @MainActor, 그리고 async/await 기반으로 Throttler 클래스를 직접 만들어보며, 어떤 원리로 동작하는지 친절하게 풀어드릴게요. throttle이란? 간단 개념 정리throttle은 지정된 시간 간격 안에서는 한 번만 이벤트를 허용하고, 그 외에는 무시하는 제어 방식이에요. ..

안녕하세요~ 개발자 멍구입니다. ✨저는 현업에서 개발을 하면서 비동기적으로 중복 호출을 방지하고, 예외처리 하는등의 다소 복잡한 로직을 구현해본적이 있는데요. 그렇게 자주 사용하지는 않다보니, 한번씩 리마인딩을 하지 않으면 얼마 안가서 까먹게 되더라고요... ㅠㅠ근데 사용할일이 생기면 굉장히 중요하고, 많은 테스트가 필요한 작업이다보니, 리마인딩의 필요성을 느꼈습니다.. 그래서 이 리마인딩 공부 겸... Swift Concurrency의 Task를 활용해서 Debouncer를 구현해봤습니다. 초기구현이라 부족한 점 많을 수 있으니, 감안해서 보고 많은 피드백 부탁드립니다! 근데 그전에... Debounce가 머임?debounce는 일정 시간 동안 특정 이벤트가 다수 발생했을때, 마지막 하나의 이벤트만 ..
- Total
- Today
- Yesterday
- 스위프트
- 자연어처리
- swift reduce
- 알고리즘
- swift 문자열
- CoreML
- ios
- 알고리즘문제
- swift언어
- 부스트코스
- 프로그래머스swift
- uikit
- 개발자문서
- Protocol
- Swift 알고리즘
- 컬렉션
- swift 기초
- 백준알고리즘
- swift
- 프로그래머스
- 프로토콜
- swift concurrency
- createML
- 김프매매
- swift string
- SwiftUI
- 백준swift
- swift문제
- Collection
- swift알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |