728x90
반응형

앨런 iOS Concurrency 강의(https://inf.run/XoFhQ)

 

앨런 iOS Concurrency(동시성) - 디스패치큐와 오퍼레이션큐의 이해 강의 | 앨런(Allen) - 인프런

앨런(Allen) | , 🙋🏻‍♂️ 자가 진단표   수업 후에는 아래의 개념들에 대해 명확히 알고, 이해하실 수 있습니다. 디스패치큐의 개념에 대해서 명확히 이해하고 있다. (Yes/No) 디스패치큐의 종류

www.inflearn.com

 

1. queue의 종류

(global) main

global

private

출처: 앨런 iOS Concurrency 강의( https://inf.run/XoFhQ )

 

- main

 

- global

서비스품질(QoS)로 6가지가 나뉨

출처: 앨런 iOS Concurrency 강의( https://inf.run/XoFhQ )

 

- private

 

2. DispatchQueue 사용시 주의사항

📌 반드시 main queue에서 처리해야하는 작업

UI관련 작업은 반드시 main queue에서 처리해야한다.(화면을 표시하는 일은 한개의 thread에서 담당해야한다.) 아니면 화면간의 간섭이 일어날 수도 있기 때문에.

출처: 앨런 iOS Concurrency 강의( https://inf.run/XoFhQ )

 

출처: 앨런 iOS Concurrency 강의( https://inf.run/XoFhQ )

URLSession은 내부적으로 비동기 처리가 되어있기 때문에 그 안에서 화면 관련 작업을 처리하려면 main queue로 보내야한다.

헐 이거 부트캠프에서 나온 내용인데 이런 이유 때문에 이런 코드를 추가한거구나...

 

1) 메인큐에서는 다른큐로 보낼 때 sync메세드를 부르면 절대 안된다.

 

2) 현재의 큐에서 현재의 큐로 "동기적으로" 보내서는 안된다.

교착상황 발생

출처: 앨런 iOS Concurrency 강의( https://inf.run/XoFhQ )

 

이런 상황 주의

출처: 앨런 iOS Concurrency 강의( https://inf.run/XoFhQ )

 

반응형

'iOS > 공부' 카테고리의 다른 글

[iOS] Concurrency동시성(1) GCD/Operation  (0) 2025.02.21
[iOS] request API  (0) 2025.02.18
728x90
반응형

앨런 iOS Concurrency 강의(https://inf.run/XoFhQ)

 

앨런 iOS Concurrency(동시성) - 디스패치큐와 오퍼레이션큐의 이해 강의 | 앨런(Allen) - 인프런

앨런(Allen) | , 🙋🏻‍♂️ 자가 진단표   수업 후에는 아래의 개념들에 대해 명확히 알고, 이해하실 수 있습니다. 디스패치큐의 개념에 대해서 명확히 이해하고 있다. (Yes/No) 디스패치큐의 종류

www.inflearn.com

 

 

1. 동시성이란

 

2. GCD(DispatchQueue) / Operation

 

3. Sync(동기) vs Async(비동기)

비동기처리가 필요한 이유

대부분은 서버와의 통신(네트워크 작업) 때문이고

네트워크와 관련된 작업들은 내부적으로 비동기적으로 구현돼있다.

 

4. Serial(직렬) vs Concurrent(동시)

직렬 큐

동시 큐

반응형

'iOS > 공부' 카테고리의 다른 글

[iOS] Concurrency동시성(2) DispatchQueue  (0) 2025.02.21
[iOS] request API  (0) 2025.02.18
728x90
반응형

1. URLSession를 사용

(https://jazz-the-it.tistory.com/19 참고)0

📌URLRequest  구성 요소

  • url: 요청의 대상 URL
  • httpMethod: 요청에 사용되는 HTTP 메서드 (예: "GET", "POST", "PUT", "DELETE" 등)
  • allHTTPHeaderFields: 요청의 모든 HTTP 헤더 필드를 포함하는 딕셔너리
  • httpBody: 요청의 HTTP 본문
  • cachePolicy: 요청에 사용되는 캐시 정책
  • timeoutInterval: 요청의 타임아웃 시간 (초)

 

1. url 객체를 생성한다.

let url = URL(string: "<https://api.example.com/data>")

 

2. url session를 만든다.

let session = URLSession(configuration: .default)

 

📌 URLSessionConfiguration의 타입

URLSession의 행동이나 정책을 결정하는 URLSessionConfiguration 클래스에는 세 가지 타입이 있다.

Default : 가장 기본적인 통신 방법. 이 방식을 사용할 일이 많다.

Ephemeral : 쿠키나 캐시, 인증을 저장하지 않을 때 사용한다. (ex. Safari의 개인정보보호 모드)

Background : 앱이 백그라운드에 있는 상황에서 HTTP와 HTTPs 방식의 컨텐츠 다운로드, 업로드를 할 때 사용한다.

 

3. url session에 task를 부여한다.

let task = session.dataTask(with: <#T##URLRequest#>, completionHandler: <#T##(Data?, URLResponse?, Error?) -> Void#>)

 

받은 JSON data를 decode 해준다.

 

4. 

task.resume()

 

2. Alamofire를 사용

 

3. JSON Decode하기

 

4. 화면에 Update 하기

반응형

'iOS > 공부' 카테고리의 다른 글

[iOS] Concurrency동시성(2) DispatchQueue  (0) 2025.02.21
[iOS] Concurrency동시성(1) GCD/Operation  (0) 2025.02.21
728x90
반응형

key 숨기고 올리기

반응형

'iOS > ToyProject' 카테고리의 다른 글

[AnimalCrossingApp] Summary  (0) 2025.02.18
[AnimalCrossingApp] 화면 구성  (0) 2025.02.17
[AnimalCrossingApp] Swift로 동물의 숲 API  (0) 2025.02.17
728x90
반응형

1. API 받아오기

 

2. API 화면에 뿌리기(쓸 데이터 이름, 성별, 종류, ...)

 

3. 화면 구성하기

반응형

'iOS > ToyProject' 카테고리의 다른 글

[AnimalCrossingApp] Git에 올리기  (0) 2025.02.18
[AnimalCrossingApp] 화면 구성  (0) 2025.02.17
[AnimalCrossingApp] Swift로 동물의 숲 API  (0) 2025.02.17
728x90
반응형

API로 받아온 data를 어떻게 화면에 뿌려줄것인ㄷ가

반응형

'iOS > ToyProject' 카테고리의 다른 글

[AnimalCrossingApp] Git에 올리기  (0) 2025.02.18
[AnimalCrossingApp] Summary  (0) 2025.02.18
[AnimalCrossingApp] Swift로 동물의 숲 API  (0) 2025.02.17
728x90
반응형

1. API

API는 https://api.nookipedia.com/ 를 사용한다. 우선 폼을 작성하여 API key를 요청한다.

 

2. postman으로 API 테스트

postman으로 데이터가 잘 오는지 테스트한다.

https://api.nookipedia.com//villagers

X-API-KEY와 Accept-Version를 header parameter로 넣어준다.

이 중 name, image_url, species, gender, birthday_month, birthday_day, quote를 사용하도록 한다.

 

(postman 사용법 참고: https://hyunki99.tistory.com/93)

 

3. 받아온 API data 화면에 뿌리기

받아온 API data를 화면에 뿌려보자.

 

API request 요청 + JSON data decode하기는 https://susu98.tistory.com/68 에 정리.

 

JSON data를 받을 VillagerData struct을 만든다.

https://app.quicktype.io/ 를 이용해서 swift struct로 변경해볼 수 있다.

 

📌왜 자꾸 오류가 나나 했더니 JSON data가 [{villager1}, {villager2}, {villager3}, ...] 이런 형식이기 때문에

decoder.decode([VillagerData].self, from: villagerData)

위와 같이 받을 villagerData에 []를 해야 한다.

 

📌화면에 update하려면 protocol을 이용해야하는데 protocol 개념을 다시 정리해야할 듯

 

API Request를 해서 받아온 JSON data를 Villager struct에 넣는다.

image_url로 이미지를 불러온다.

나머지는 String으로.

반응형

'iOS > ToyProject' 카테고리의 다른 글

[AnimalCrossingApp] Git에 올리기  (0) 2025.02.18
[AnimalCrossingApp] Summary  (0) 2025.02.18
[AnimalCrossingApp] 화면 구성  (0) 2025.02.17
728x90
반응형

생각보다 간단했당 ㅎ 문제는 모델 적용한 그 이후인 것 같다

 

1. RecyclerView에서 Click event

2. PostDTO를 parcelable하게

3. RecyclerView click -> DetailActivity로 넘어갈 때 postDTO 넘김

4. DetailActivity에서 각 layer에 data binding

 

[참고]

https://yunaaaas.tistory.com/57

 

[Android/Kotlin] RecyclerView 클릭 이벤트 적용하기

RecyclerView 첫번째 시리즈에 이어 두번째 시리즈인 클릭 리스너를 추가하여 리사이클러뷰 아이템에 각각 클릭 이벤트를 적용하는 방법에 대해 적어보려고 합니다 : ) RecyclerView 만드는 방법에 대

yunaaaas.tistory.com

https://colinch4.github.io/2020-04-01/startactivity/

 

[Kotlin] startactivity, putextra

개발 강좌 블로그

colinch4.github.io

 

반응형

+ Recent posts