본문 바로가기

전체 글60

[프로그래머스] 정수 내림차순으로 배치하기 (Swift) - LV.1 ⬆ 문제 풀기 ⬆ 풀이 import Foundation func solution(_ n:Int64) -> Int64 { return Int64(String(String(n).sorted(by: >)))! //return Int64(String(String(n).sorted{ $0 > $1 }))! } 다른 풀이 import Foundation func solution(_ n:Int64) -> Int64 { return Int64(String(String(n).sorted(by: >))) ?? 0 } 2024. 1. 5.
[Swift] 네트워크 통신 (3. URLSession) URLSession URLSession은 네트워크 데이터를 가져오거나 보내는 작업을 수행한다. URLSession의 주요 특징 비동기적 네트워킹 (Asynchronous Networking) URLSession은 비동기적으로 네트워크 요청을 처리하므로, 네트워크 작업이 백그라운드에서 수행될 수 있습니다. 이는 앱의 성능을 향상시키고 응답성을 유지하는 데 도움이 됩니다. 다양한 데이터 전송 방식 지원 URLSession을 사용하여 데이터를 업로드하거나 다운로드할 수 있으며, JSON, 이미지, 파일 등 다양한 데이터 형식을 처리할 수 있습니다. 이번 숙련 챕터에서의 예제는 JSON 데이터를 다운로드하여 사용합니다. 캐시와 쿠키 관리 URLSession은 네트워크 응답을 캐싱하고 쿠키를 관리할 수 있는 기능.. 2024. 1. 4.
[Swift] 네트워크 통신 (2. REST API) 네트워크 통신 REST API REST는 HTTP 프로토콜을 기반으로 하며, 클라이언트와 서버 간의 통신을 위한 규칙을 정의 HTTP 메서드 (HTTP Methods) REST API에서는 HTTP 메서드를 사용하여 자원을 다룬다. HTTP 메서드 GET: 자원을 읽기 위해 사용 (ex. 유저를 조회) POST: 새로운 자원을 생성하기 위해 사용 - 멱등하지 않음 (ex. 유저를 생성(가입)) 💡멱등성 : 여러번 요청(시도)해도 모든 결과값이 동일한 성질 PUT: 기존 자원을 업데이트하기 위해 사용 - 멱등함 (ex. 유저를 수정) DELETE: 자원을 삭제하기 위해 사용 (ex. 유저를 삭제(탈퇴)) 자원 (Resources) REST API에서는 모든 데이터가 자원으로 표현된다. 이러한 자원은 고유한.. 2024. 1. 4.
[Swift] 네트워크 통신 (1. URL 구성요소) 네트워크 통신 URL 구성요소 프로토콜 (Protocol) URL은 일반적으로 http:// 또는 https://와 같은 프로토콜로 시작 이는 클라이언트와 서버 간의 통신 방법을 지정한다. http://는 보안 없는 통신을, https://는 SSL/TLS 암호화를 사용하여 보안된 통신을 나타낸다. 도메인 (Domain) 도메인은 API 서버가 호스팅되는 서버의 주소를 나타낸다. 예를 들어, music.naver.com은 API 서버가 위치한 서버의 도메인 주소이다. 포트 (Port, 옵션) 포트 번호는 서버에서 API 요청을 수신하는데 사용되는 포트를 나타낸다. 대부분의 경우 HTTP의 기본 포트는 80이고, HTTPS의 기본 포트는 443 (일반적으로 생략될 수 있다.) 경로 (Path) 경로는 서버.. 2024. 1. 4.
[Swift] ARC(Automatic Reference Counting)란? ARC(Automatic Reference Counting) 란? Swift는 ARC를 사용하여 Heap 영역의 객체 메모리를 자동으로 관리한다. ARC는 Heap 영역의 객체에 대한 Strong Reference(강한 참조) count를 추적하고, 객체가 더 이상 필요하지 않을 때 (참조 count가 없을 때) 해당 객체에 대한 메모리를 자동으로 해제하는 방식으로 메모리를 관리한다. Strong Reference (강한 참조) Swift에서 변수나 상수는 Strong Reference(강한 참조)를 한다. 객체에 대한 Strong Reference count가 증가되어 있다면, 해당 객체는 메모리에 유지된다. class Person { // Person이라는 참조 타입의 클래스 var name: Str.. 2024. 1. 4.
[프로그래머스] 정수 제곱근 판별 (Swift) - LV.1 ⬆ 문제 풀기 ⬆ 풀이 제곱근 함수로 sqrt() 가 있다. 실수형이라서 Float 나 Double 형으로 import Foundation func solution(_ n:Int64) -> Int64 { var x = Int64(sqrt(Double(n))) if x * x != n { return -1 } else { return (x+1) * (x+1) } } 다른 풀이 삼항 연산자 활용 import Foundation func solution(_ n:Int64) -> Int64 { var x = Int64(sqrt(Double(n))) return x * x == n ? (x+1) * (x+1) : -1 } 2024. 1. 4.