전체 글 55

RxSwift 파헤치기 도전! (2) Observable

실습에 들어가기 전, Rx의 심장이라는 Observable에 대해 알아보자! - Observable = Observable Sequence = Sequence - Asynchronous(비동기적) - Observable은 일정 기간 동안 계속해서 이벤트를 생성하며, 이러한 과정을 emitting(방출)이라고 표현한다. - marble diagram 시간의 흐름에 따라 값을 표시하는 방식(시간의 흐름은 왼쪽 -> 오른쪽) http://rxmarbles.com/ RxMarbles: Interactive diagrams of Rx Observables rxmarbles.com (생명주기) Obeservable은 1. 어떤 구성요소를 가지는 next 이벤트를 계속해 방출할 수 있다. 2. error 이벤트를 방..

iOS/Swift실전 2023.01.17

Swift의 고차함수에 대해 알아보자. (Map,Filter,Reduce)

부끄럽지만 iOS 프로그래밍을 하며 고차함수에 대한 이론만 공부하고 제대로 실전에서 사용을 해본 적이 없었다. 요즘 이론을 다시 공부하며 고차함수에 대해 제대로 이해하고 사용법도 익혀보고자 이 글을 작성한다. 일단 Filter, Map, Reduce에 대해 정리하기 전, 고차함수란 무엇일까?! 다른 함수를 전달인자(argument)로 받거나 함수 실행의 결과로 함수를 반환하는 함수 스위프트의 함수가 일급객체라는 것을 아니 무슨 소리인지 이해가 간다. https://yejprogramming.tistory.com/7 Swift) iOS 프로그래밍 함수, 1급객체, 클로저, 클래스 함수 함수의 타입 (자료형, 자료형, ...) -> 리턴형(Int, Int, ...) -> Int => 리턴형이 Void형이면 ..

iOS/Swift이론 2023.01.15

RxSwift 파헤치기 도전! (1)

RxSwift를 이해하기 위해 글을 몇 개 읽었는데 이해하는데 한계가 있어 패스트캠퍼스의 GitHub 앱 만들기 강의를 보며 따라 해보려고 한다! RxSwift는 비동기를 위해 사용된다. https://yejprogramming.tistory.com/69 Swift의 비동기 처리 ※해당 글은 Swift 비동기에 관한 다른 블로그 글들을 보고 공부 목적으로 정리하였습니다. 더 자세한 정보를 원할 시 하단의 출처를 보시고 해당 글들을 참고하시길 바랍니다!! Sync vs Async Sync(동 yejprogramming.tistory.com 바로 어제 비동기에 대한 글을 작성하였는데, 이러한 방식의 비동기 처리는 복잡하고 코드가 지저분하다고 한다. 하지만 Rx를 사용하면 코드가 직관적이고 효율적이게 된다고 ..

iOS/Swift실전 2023.01.10

Swift 검색 기능, search controller 사용해보기

앱에서 중요한 기능인 검색!! Swift에 있는 search controller로 간단하게 구현해 볼 수 있다. storyboard navgation과 table view를 연결해준다. 또한 테이블뷰는 tableView라는 이름으로 아웃렛을 만든다. @IBOutlet weak var tableView: UITableView! viewController.swift 일단, 내가 만든 프로젝트는 배우들의 이름을 배열에 저장하고 그 배열을 테이블뷰로 출력해서 검색할 수 있게 해주는 기능을 담았다. 열심히 주석을 단 코드 전체를 첨부하니 설명은 생략! import UIKit class ViewController: UIViewController { @IBOutlet weak var tableView: UITable..

iOS/Swift실전 2023.01.09

Swift의 비동기 처리

※해당 글은 Swift 비동기에 관한 다른 블로그 글들을 보고 공부 목적으로 정리하였습니다. 더 자세한 정보를 원할 시 하단의 출처를 보시고 해당 글들을 참고하시길 바랍니다!! Sync vs Async Sync(동기) 요청과 응답이 동시에 일어남 코드 작성 순서대로 호출 주어진 작업이 완료될 때 까지 다음 작업으로 넘어가지 않음 Async(비동기) 요청과 응답이 동시에 일어나지 않는 방식. 요청하면 상황에 따라 응답(하지 않을 수도 있음) 주어진 작업의 완료 여부와 관계 없이 작업 전달 후 바로 다음 작업으로 넘어감 Serial vs Concurrent Serial(직렬) 순차 진행 할 일을 하나의 스레드에 차곡차곡 순서대로 쌓는 것 DisaptchQueue.main() Concurrent(동시) 동시 ..

iOS/Swift이론 2023.01.08

[Swift] array! 배열에 대해 파헤쳐보자!

Swift의 컬렉션 타입에는 배열, 딕셔너리, 세트가 있다. 그 중에서 오늘은 배열에 대해 한 번 자세히 알아보고자 한다. 배열[array]은 "같은 타입"의 데이터들을 "순서"에 맞춰 저장하는 타입이다. 배열의 생성은 다음과 같이 한다. var array : Array = Array() var array2 : = [Int]() var array3 : [Int] = [] 여기서 알아야 할 점! 1. 위 코드와 같이 빈 배열을 생성할 경우에는 배열의 타입을 명시해야 하지만, 값을 넣어서 배열을 만들 경우에는 타입을 명시하지 않아도 된다. 그런 경우는 밑의 코드 처럼 작성한다. var array = [100, 200, 300] 2. 하나의 배열에는 같은 타입의 데이터들만 있을 수 있다. 고로 밑의 코드는 잘..

iOS/Swift이론 2022.12.28

[Swift/iOS프로그래밍] 뷰와 뷰 사이 데이터 전달

지난 화면전환 네비게이션 글에서 실습한 프로젝트 이후 부분이니 참고바람 https://yejprogramming.tistory.com/62 [swift/iOS프로그래밍] navigation controller 4가지 방법, 세그 vs 코드,push vs present 스위프트로 화면전환을 구현하는 방식 중에 네비게이션 컨트롤러가 있다. 세그로 구현하는 것과 코드로 구현하는 것이 있는데 이 중에서도 푸쉬와 프레젠트라는 방식이 있다. 오늘은 이런 4가 yejprogramming.tistory.com ▼실습 완료 화면 코드로 구현한 네비게이션 컨트롤러 부분에서 Push 부분은 첫번째 뷰컨트롤러(루트컨트롤러)에서 두번째 컨트롤러로 데이터 전달, Present 부분은 delegate으로 두번째 뷰컨트롤러에서 첫번..

iOS/Swift실전 2022.05.25

[Swift/iOS프로그래밍] 뷰 사이클과 관련된 메서드들

viewDidLoad() : 뷰 컨트롤러의 모든 뷰들이 메모리에 로드됐을 때 호출, 처음 한 번만! -> 라이프사이클에서 딱 한 번만 호출될 내용만 정의 viewWillAppear : 뷰가 뷰 계층에 추가되고, 화면에 보이기 직전에 매 번 호출, 즉 다른 뷰로 이동했다가 돌아올 때도 재호출됨 viewDidAppear() : 뷰 컨트롤러의 뷰가 뷰 계층에 추가된 후 호출, 주로 뷰가 나타날 때 필요한 추가 작업이나 애니메이션을 시작하는 작업 viewWillDisappear() : 뷰 컨트롤러의 뷰가 뷰 계층에서 사라지기 전 호출, 뷰가 생성된 뒤 작업한 내용 되돌리는 작업, 최종적으로 데이터 저장하는 작업 viewDidDisappear() : 뷰 컨트롤러의 뷰가 뷰 계층에서 사라진 뒤 호출, 뷰가 사라지는..

iOS/Swift실전 2022.05.25

인증 쿠키값 속이기 & 코드 품질

웹이 동작하는 방식 클라이언트가 서버에 로그인을 함 -> 서버에서 DB를 확인함 -> 사용자가 확인이 되면 클라이언트에게 세션 ID 발급 -> 사용자는 세션ID를 쿠키에 저장 -> 쿠키로 다시 서버에 접속 -> 서버에서 쿠키 검증을 하고 사용자에게 세션을 줌 쿠키와 세션의 차이점 쿠키는 클라이언트에 저장, 텍스트 형식, 브라우저 종료시 소멸, 한 도메인에 20개, 쿠키당 4kd, 총 300개 세션은 서버에 저장됨, 오브젝트 형식, 정확한 만료기한 알 수 없음, 서버가 허용하는 한 용량 제한x 오늘 실습 : 인증 쿠키값을 이용해 다른 사용자의 쿠키를 이용해서 정보 가져오기 인증쿠키값 속이기? 코드 품질(Code Quality) 코드품질공격이란? 공격에 유용한 정보를 검색해 이를 획득, 이용 해킹에서는 코드..

정보보안 2022.05.25

[Swift/iOS프로그래밍] navigation controller 4가지 방법, 세그 vs 코드,push vs present

스위프트로 화면전환을 구현하는 방식 중에 네비게이션 컨트롤러가 있다. 세그로 구현하는 것과 코드로 구현하는 것이 있는데 이 중에서도 푸쉬와 프레젠트라는 방식이 있다. 오늘은 이런 4가지 방식에 대한 포스팅을 해볼 예정! ▼ 실습 후 완성 화면 네비게이션 컨트롤러를 추가해주고 뷰컨트롤러에 세그 연결을 해준다. 네비게이션 기능을 구현해줄 각각의 버튼도 만들어준다. 총 4개의 실습을 할 것이라고 했는데 세그 연결로 네비게이션을 구현하는 뷰 컨트롤러 두 개와, 코드로 구현할 뷰 컨트롤러 두 개이다. 일단, Push와 Present 화면 전환 동작하는 모습이 다른데 Push는 방향이 가로(왼쪽->오른쪽), Presents는 세로(아래->위)이다. 또한 Push는 스택 형식이라 여러 뷰가 쌓일 수 있다. ① 세그로..

iOS/Swift실전 2022.05.24