• 티스토리 홈
  • 프로필사진
    2료일
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
2료일
  • 프로필사진
    2료일
    • 분류 전체보기 (118)
      • SWIFT개발 (29)
      • 알고리즘 (25)
      • Design (6)
      • ARkit (1)
      • 면접준비 (32)
      • UIkit (2)
      • Vapor-Server with swift (3)
      • 디자인패턴 (5)
      • 반응형프로그래밍 (12)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • 포스트글 썸네일 이미지
        커맨드 패턴
        2료일:
        🎯 커맨드 패턴이란 무엇일까??요청을 객체의 형태로 캡슐화하여 매개변수화하는 행동 디자인 패턴수행할 동작을 객체 안에 캡슐화해 요청자(호출자)와 수신자(실행자) 사이를 분리합니다.어떤 작업 => 객체가 되는거고 필요에 따라 객체에게 전달.📺 리모콘 예시로 이해하기버튼 → 누르기 → 명령 → TV (On/Off)버튼은 TV에 대해 아무것도 모름 (삼성TV인지, LG TV인지)연결된 명령을 통해 TV를 제어요청자와 수신자가 완전히 분리🔧 해결하는 문제들1. 코드 결합도 감소요청자와 수신자 간의 직접 연결 제거2. 작업의 지연 및 예약 실행명령을 즉시 실행하지 않고 저장했다가 나중에 실행3. 작업 취소 기능이전 상태를 저장하여 실행 취소 기능을 쉽게 구현4. 작업 로깅모든 변경사항을 추적하고 필요시 재실..
        • 2025-05-20 21:35:12
      • 포스트글 썸네일 이미지
        데코레이터패턴
        2료일:
        데코레이터 패턴이 뭔가요?간단히 말하면 기존 객체를 수정하지 않고 새로운 기능을 추가하는 방법입니다.스타벅스에서 커피를 주문한다고 생각해보세요. 기본 아메리카노에 샷 추가, 휘핑크림 추가, 시럽 추가... 이런 식으로 원하는 옵션을 계속 덧붙일 수 있죠. 데코레이터 패턴이 바로 이런 개념입니다.왜 좋은가요?상속의 한계를 극복할 수 있어요. 상속으로 모든 조합을 만들려면 클래스가 엄청 많아집니다:라떼 클래스휘핑라떼 클래스바닐라휘핑라떼 클래스샷추가바닐라휘핑라떄 클래스...이건 너무 비효율적이죠. 데코레이터 패턴을 쓰면 런타임에 필요한 기능만 조합할 수 있습니다핵심 특징:기존 객체를 수정하지 않고 새로운 기능 추가런타임에 동적으로 데코레이션 적용/제거여러 데코레이터를 체인 형태로 연결 가능단일 책임 원칙(SR..
        • 2025-05-19 13:27:32
      • RxSwift(9) - Scheduler
        2료일:
        🧐Scheduelr?Swift에서 멀티스레딩은 주로 GCD를 통해 처리합니다. 반면 RxSwift에서는 Scheduelr라는 추상화된 개념을 사용합니다.하지만 scheduler != threadScheduler와 쓰레드 관계하나의 쓰레드에 여러개의 스케쥴러가 존재할 수 있고여러개의 쓰레드에 하나의 스케쥴러가 존재할 수 있습니다.Scheduler종류CurrentThreadScheduelrpublic class CurrentThreadScheduler : ImmediateSchedulerType { public static let instance = CurrentThreadScheduler()}: 기본 스케쥴러로, Serial Schduler로 동작합니다. MainSchedulerpublic fina..
        • 2025-05-09 15:57:39
      • 포스트글 썸네일 이미지
        RxSwift(8)-에러처리
        2료일:
        에러와 Observable 존재Observable에서 에러가 발생하면 해당 시퀀스는 즉시 종료됩니다.// 에러 발생 시 Observable의 동작someObservable .subscribe( onNext: { value in print("값: \(value)") }, onError: { error in print("에러 발생: \(error)") // 이 시점에서 Observable은 종료됨 }, onCompleted: { print("완료") // 에러 발생 시 이 부분은 실행되지 않음 } )실무에서 흔히 발생하는 에러 상황은 뭐가 있을까..
        • 2025-05-08 17:40:17
      • RxSwift(7)-BehaviorRelay
        2료일:
        BehaviorSubjecthttps://codeisfuture.tistory.com/125 RxSwift(2)-Subject1. Subject란?RxSwift에서 Subject는 Observable과 Observer의 특성을 모두 갖춘 하이브리드 요소입니다. Observable처럼 값을 방출할 수 있으며, 동시에 Observer처럼 다른 Observable을 구독할 수도 있습니다.흠...codeisfuture.tistory.com를 기억하시는가??? 아주 초반에 공부했던것이다. combine의 CurrentValueSubject와 비슷한 것으로 초기값을 가지고 구독시 최신 값을 즉시 수신하고 onNext, onError, onCompleted호출이 가능했다. BehaviorRelayBehaviorRel..
        • 2025-05-06 21:45:07
      • RxSwift(6)-RxCocoa(bind, drive, DelegateProxy)
        2료일:
        RxCocoa?iOS, macOS 등 모두에 적용이 가능한 프레임워크로, Cocoa 프레임워크 위에서 관련 기능들을 모두 구현할 수 있습니다.즉 RxSwift = 반응형 프로그래밍의 기본 개념과 연산자 제공?RxCocoa = 이를 UIkit 컴포넌트들과 자연스럽게 통합할 수 있게 해줍니다.RxCocoa는 UIKit 컴포넌트들에 rx 네임스페이스를 제공하여 반응형 확장을 가능하게 합니다. 예를 들어 textField.rx.text나 button.rx.tap과 같은 방식으로 UI 이벤트를 Observable 스트림으로 변환할 수 있습니다.🔄 반응형 프로그래밍의 기본: subscribeRxCocoa의 바인딩 개념을 이해하기 전에, 기존 RxSwift의 기본적인 이벤트 구독 방식을 복습해보겠습니다.observ..
        • 2025-05-06 20:09:42
      • 포스트글 썸네일 이미지
        RxSwift(5)-TimeBasedOperators
        2료일:
        시간에 기반한 오퍼레이터-> 시간 흐름을 지연시켜주거나 제어Buffering OperatorsBuffering 연산자들은 Observable 시퀀스에서 방출된 이벤트들을 일정 기간 동안 모았다가 한 번에 처리할 수 있게 해줍니다. 이를 통해 과거 이벤트를 재생하거나 일정 시간 동안 버퍼링하는 기능을 구현할 수 있습니다.Replay(_:)새로운 구독자에게 과거에 방출된 요소들의 일부를 다시 전달합니다// 마지막 N개의 이벤트를 새 구독자에게 전달let replayedObservable = Observable.interval(1,scheduler: .instance).replay(2)// 첫 번째 구독자replayedObservable.subscribe(onNext: { value in print("첫..
        • 2025-05-04 17:43:14
      • 포스트글 썸네일 이미지
        RxSwift(4)-Combining Operators
        2료일:
        이번에는 여러 Observable 시퀀스를 하나로 결합하거나, Observable과 다른 소스의 데이를 통합하는 연산자를 알아보겠습니다~이는 여러 이벤트 스트림을 관리하고 동기화해야 하는 복잡한 상황에서 유용합니다.startWith(_:)생성되어 방출되는 옵저버블에 대해 초기값을 줄 수 잇습니다.// 네트워크에서 데이터를 로드하기 전에 캐시된 데이터 먼저 표시loadFromNetwork() .startWith(loadFromCache()) .bind(to: tableView.rx.items) .disposed(by: disposeBag)초기 상태 또는 기본값을 제공하는데 유용할것같다.concat(_:)여러 옵저버블 시퀀스를 순서대로 합쳐줍니다.사실 합쳐진다느낌보다는 순서대로 진행한다? 가..
        • 2025-05-02 02:53:57
      조회된 결과가 없습니다.
      [1][2][3][4][···][15]
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바