분류 전체보기(67)
-
GPT는 블로그 글도 써준다 (feat. 저작권)
GPT를 이용한 기술 블로그를 만들어보자.
2024.12.06 -
Moya에서 Query Parameters와 Encoding 처리 방법
GPT는 블로그 글도 써준다.Moya에서 Query Parameters와 Encoding 처리 방법Moya는 Swift에서 널리 사용되는 네트워크 라이브러리로, 간결하고 효율적으로 API 요청을 처리할 수 있도록 도와줍니다. 이번 글에서는 Moya를 사용해 API 요청을 보낼 때, 특히 Query Parameters와 Encoding에 대해 알아보고, 실수를 방지하는 방법을 설명합니다.Moya의 Task와 Query ParametersMoya의 Task는 API 요청의 본문과 관련된 데이터를 정의하는 데 사용됩니다. Query Parameters를 사용하는 API 요청에서는 적절한 Task를 설정해야 합니다.Moya에서는 주로 다음과 같은 Task 타입이 사용됩니다:.requestPlain: 본문 없이 ..
2024.12.06 -
Swift에서 JSON 디코딩 오류와 해결 방법
GPT는 블로그 글도 써준다. Swift로 API를 연동할 때 JSONDecoder를 사용하여 서버에서 반환된 데이터를 디코딩할 수 있습니다. 하지만 JSON 데이터와 구조체 간의 매핑이 일치하지 않을 경우 DecodingError가 발생합니다. 이번 글에서는 이러한 오류를 해결하는 방법을 알아봅니다.예제 상황다음과 같은 JSON 데이터가 서버에서 반환된다고 가정합니다:{ "imageUrl": "https://example.com/image.png", "status": "SUCCESS"}이 JSON 데이터를 Swift의 구조체로 디코딩하려고 합니다.오류 상황다음과 같이 구조체를 정의했다고 가정해 봅시다:struct ApiResponse: Decodable { let result: Result ..
2024.12.06 -
시뮬레이터! 에뮬레이터?
에뮬레이터 시뮬레이터 차이는!?에뮬레이터(Emulator)와 시뮬레이터(Simulator)는 둘 다 소프트웨어 개발과 테스트에서 사용되는 도구이지만, 작동 방식과 목적에 차이가 있습니다.에뮬레이터 (Emulator):정의: 실제 하드웨어를 소프트웨어적으로 구현하여, 실제 장치와 동일한 방식으로 동작하는 환경을 제공하는 도구입니다.사용 사례: 주로 Android 개발에서 사용됩니다. Android 에뮬레이터는 실제 Android 기기의 CPU, 메모리, 네트워크 등 모든 하드웨어 요소를 소프트웨어적으로 구현하여 테스트할 수 있게 해줍니다.특징: 에뮬레이터는 실제 하드웨어 환경을 소프트웨어적으로 흉내 내기 때문에, 실제 장치와 거의 동일하게 동작하며 더 깊이 있는 테스트가 가능합니다. 하지만 이로 인해 성능..
2024.10.23 -
iOS Derived Data 삭제
왜 빌드가 되지 않는것이야...회사 맥에서는 빌드 잘 되는데 집에서는 잘 안된다..왜지? 이것저것 찾아보다가 Xcode Derived Data 삭제를 통해 해결하였다. Xcode Derived Data 삭제rm -rf ~/Library/Developer/Xcode/DerivedData 그리고!Clean BuildXcode 메뉴에서 Product > Clean Build Folder 일단 문제가 생기면 Derived Data 삭제해보자.. 문제가 해결된다. 거지같은 Xcode.. 삭제하는 방법으로는 위 명령어를 치거나 Clean My Mac(유료), DevCleaner for Xcode(일부 무료) 프로그램을 이용해서 깔끔하고 쉽게 지울수 있다.
2024.09.21 -
iOS 뷰 전환
viewDidLoad() 메서드 내에서 다른 뷰컨트롤러를 push하는 것은 가능합니다. 하지만 iOS의 뷰 컨트롤러 생명주기와 navigation controller의 동작 방식에 따라 몇 가지 중요한 사항이 있습니다.1. 즉시 push가 실행됨:viewDidLoad()는 뷰 컨트롤러가 메모리에 로드될 때 호출되는 메서드입니다. 이 메서드 내에서 다른 뷰 컨트롤러를 push하면, 뷰가 로드되자마자 바로 다음 뷰 컨트롤러로 화면 전환이 이루어집니다.즉, 첫 번째 뷰 컨트롤러가 화면에 표시되기 전에, 두 번째 뷰 컨트롤러로 전환됩니다.2. 첫 번째 뷰컨이 화면에 보이지 않음:viewDidLoad()는 뷰가 메모리에 로드될 때 호출되지만, 이 시점에서 뷰가 아직 사용자에게 보이지 않은 상태입니다. 이 메서드에..
2024.09.12