Swift, iOS Foundation(24)
-
[Swift] for-in문과 forEach 사이의 차이, 그리고 고차함수(map, filter, reduce)의 활용까지
1️⃣ 내가 이 글을 쓰게 된 이유 프로그래밍을 조금이라도 배워본 사람이라면, 반복문의 대표주자로 for-in문이 있다는 것은 당연히 알 것이라 생각한다. Swift에도 당연히 for문을 지원하기에 평소 for-in 코드를 사용한 반복을 많이 사용하곤 했었는데, 반복을 목적으로 짠 코드에서 forEach문 역시 동일한 기능을 제공한다는 것을 다른 협업 팀원들의 코드에서 많이 확인할 수 있었다. 이에 그동안 나도 무지성 따라 치기(?) 스킬로 forEach라는 코드를 사용했지만, 사실 for문과 어떤 점에서 차이가 있는지, 성능 차이는 존재하는지에 대한 고찰이 없었기에 항상 공부하고 싶었던 내용이었다. 여기에 덧붙여, 최근 진행하던 프로젝트에서 iOS 멘토님에게 받은 피드백 중 하나가 "for + appe..
2024.03.11 -
[Swift] Swift는 에러를 어떻게 처리할까? (Error Handling)
오늘은 Swift에서 에러를 처리하는 방법, Error Handling에 대해 배워보도록 하겠다. 모든 프로그래밍 언어가 에러를 처리하는 방법을 가지고 있듯이, Swift도 마찬가지로 프로그램에서 발생한 에러 조건에 응답하고, 처리하는 프로세스를 갖고 있다. 공식문서 상에서는 이것을 "Swift는 런타임 에러를 던지고(throwing), 잡고(catching), 전파하고(propragating), 조작하는(manipulating) 방법을 모두 지원한다"라고 표현했다. 에러를 "던지고", "잡고", "전파"하고, "조작"한다는 말이 혹시 어렵지는 않은가...? (나만 그런가) 내가 공부를 했을 때, Swift 공식문서를 보고 공부하기에는 번역상으로 이해가 안 가는 말이 많아서 많은 어려움을 겪었는데, 이번..
2024.02.13 -
[iOS] 내가 서버 통신(Networking) 진짜 알기 쉽게 정리해서 올려줄게 (HTTP, JSON, REST API)
0️⃣ Intro: 내가 이 글을 쓰는 이유다른 건 다 늘었어도 여전히 내가 왕초보의 마음과 실력을 가지고 있는 분야가 바로 서버 통신(Networking) 부분이다.이 부분에 대한 공부가 그동안 부족하기도 했고,뭔가 서버를 붙인다고 하는 게 선뜻 달갑지(?)만은 않다고 해야 하나. 괜스레 내가 겁을 먹게 되는 것 같더라.Alamofire, Moya .. 등등 방법은 많고 예전에 글로 정리하기도 했지만, 2년이 지나면서 진짜 기억이 하나도 나지 않으면서 왕초보의 마음으로 정말 누구라도 이해하기 쉽게 정리해 보는 것이 이번 글의 목적이자 목표이다. 1️⃣ 서버 통신이 일단 뭔지 알아야겠지?Networking이 처음에 어렵게 느껴지는 이유는 그 무엇보다도, 익숙하지 않은 용어가 한꺼번에 쏟아지기 때문이라 생..
2023.11.13 -
[iOS] iOS 화면을 구성하는 파일, Nib와 Xib 개념 정리해보기
1️⃣ Nib와 Xib 핵심 내용만 정리해보기 Nib와 Xib 두 개 모두 iOS 화면을 구성하기 위한 파일이다. Nib : Nextstep Interface Builder의 줄임말, 바이너리 파일 (데이터의 저장과 처리를 목적으로 0과 1의 이진 형식으로 인코딩된 파일, 사람은 읽지 못하고 컴퓨터만 읽을 수 있는 언어)이다. Xib : Xml Interface Builder의 줄임말, Xml 파일 (데이터들을 쉽게 구조화해서 전달하기 위해 만들어진 언어가 xml이고 이 xml로 쓰여진 파일이 xml 파일, 컴퓨터와 사람 모두 읽을 수 있는 언어)이다. 2️⃣ Nib와 Xib 핵심 내용에서 살을 더 붙여보자! ✔️ 새로운 Cocoa Touch Class 파일을 만들 때, "Also create XIB f..
2023.10.08 -
[Swift] 고차함수 개념 완전 정복하기: map, filter, reduce
오늘 글에서는 Swift의 고차 함수(Higher-order function)에 대해서 배워보도록 하자.고차 함수(Higher-order function)는 다른 함수를 전달인자(매개변수)로 받거나, 함수 실행의 결과를 함수로 반환하는 함수를 의미한다.어 잠깐, 함수를 인자로 전달될 수 있고, 함수의 반환값이 될 수 있다는 말,,, 어디서 들어본 적이 있지 않는가....?예전 내가 올린 글을 읽었으면 알겠지만, 이 부분은 클로저와 Swift의 일급객체(first-class object)라는 특성과 연관되어 있다!(오랜만에 아래 글을 참고해서 읽어볼까..?) [Swift] Closure 완전 정복하기: 일급 객체부터 작성법, 그리고 @escaping까지1. 클로저(Closure)란? 솝트에서 서버 통신을 ..
2022.01.24