본문 바로가기

전체 글

(92)
Call by Value/Call by Reference 함수 호출 시 매개변수 전달 방식인 "Call by Reference"와 "Call by Value"는 프로그래밍 언어에서 매우 중요한 개념입니다. 이 두 가지 방식은 함수 내에서 매개변수가 어떻게 전달되고 처리되는지에 대해 다른 동작을 합니다.1. Call by Value (값에 의한 호출)개념:Call by Value는 함수에 인수를 전달할 때, 해당 인수의 값을 복사하여 함수에 전달하는 방식입니다. 함수 내부에서는 복사된 값을 사용하며, 이 값은 함수가 종료될 때까지 함수 내부에서만 유효합니다.동작:함수 내에서 매개변수의 값을 변경해도, 원래의 인수에는 아무런 영향을 미치지 않습니다. 이는 함수가 외부에서 전달받은 값의 복사본을 사용하기 때문입니다.2. Call by Reference (참조에 의한..
Closure '클로저' 스위프트(Swift)에서 클로저(Closure)는 일종의 익명 함수로, 함수의 일종이지만 이름이 없는 코드 블록을 의미합니다.클로저는 변수나 상수에 할당될 수 있고, 함수에 인자로 전달될 수 있으며, 함수에서 반환될 수도 있습니다.클로저는 특히 함수형 프로그래밍 패러다임을 따를 떄 매우 유용하게 사용됩니다.클로저의 기본 형태클로저는 세 가지 형태로 나타날 수 있습니다.1.전역 함수(Global Function): 이름이 있는 클로저이며, 특정 범위 밖에서도 사용할 수 있습니다.2. 중첩 함수(Nested Function): 다른 함수 내에 정의된 이름이 있는 클로저입니다.3. 클로저 표현(Closure Expression): 경량화된 클로저 문법을 사용하여 이름 없이 정의된 클로저입니다. 스위프트의  클..
Foundation,UIKit '프레임워크' Foundation ' 과 ' 'UIKit' 은 모두 ios 및 masOS  애플리케이션 개발에서 사용되는 프레임워크입니다. 이 두 프레임워크는 서로 다른 목적을 가지고 있으며, 각기 다른 기능을 제공합니다.Foundation 프레임워크데이터 관리,문자열 처리,날짜와 시간 계산, 그리고 컬렉션 타입과 같은 기본적인 기능들을 제공합니다.주요기능:1. 기본 데이터 타입 (String,Array,Dictionary 등)2.날짜와 시간 처리 (Date,Calendar,DateFormatter 등)3.파일 관리 (FileManager)4.네트워킹 (URL, URLSession)5.데이터 직렬화 및 역직렬화 (JSONSerialization,PropertyListSerialization)6.국제화와 지역화 (Loc..
MVC패턴 MVC 패턴은 Model-View-Controller의 약자로, 소프트웨어 개발에서 널리 사용되는 아키텍처 패턴입니다.이 패턴은 애플리케이션을 세 가지 주요 역할로 분리하여 유지보수와 확장성을 높입니다. Swift와 UIKit을 사용하는 ios 개발에서 MVC 패턴은 흔히 사용되며, 각 요소는 다음과 같이 정의됩니다.1. MOdel 역할: 애플리케이션의 데이터와 비즈니스 로직을 관리 합니다. 데이터를 저장하고 조작하며, 데이터베이스 와 통신하거나 네트워크 요청을 처리하는 등의 기능을 포함할 수 있습니다.예: 사용자의 정보, 게임 점수, 제품 목록 등의 데이터를 관리하는 클래스 또는 구조체.2.View역할: 사용자에게 보여지는 UI를 담당합니다. 데이터를 표시하고, 사용자로부터 입력을 받아 이를 컨트롤러에..
비동기(Asynchronous),네트워킹(Networking) "비동기"와 "네트워킹" 은 소프트웨어 개발에서 중요한 개념이며, 특히 네트워크 프로그래밍 에서 자주 함께 사용합니다.비동기(Asynchronous)비동기 프로그래밍은 코드의 실행이 특정 작업(예: 파일읽기, 네트워크 요청 등)을 기다리지 않고 바로 다음 작업으로 넘어가는 방식 입니다.비동기 작업이 완료되면, 그 결과를 처리하는 콜백 함수나 프로미스(Promise)를 통해 응답을 받습니다.비동기의 장점:효율적인 자원 사용: 비동기는 기다리는 동안 CPU를 다른 작업에 사용할 수 있기 떄문에 자원을 효율적으로 활용할 수 있습니다.향상된 응답성: 특히 UI를 다루는 프로그램에서 비동기는 사용자 인터페이스를 블로킹하지 않으므로 응답성이 높다.네트워킹(Networking)네트워킹은 컴퓨터 간의 데이터 통신을 말..
Rx스위프트 RxSwift를 사용하여 다양한 방법으로 관찰 가능한 것을 결합하는 목록입니다.1.최신 가치 결합 'combineLatest'CombineLatest 연산자를 사용하면 여러 관찰 가능 항목의 최신 값을 결합2.병합'merge'병합 연산자는 여러 관측 가능 항목의 방출을 하나로 병합3.연결'concat'연결 연산자는 이전이 완료된 후 하나가 방출을 시작하도록 관찰 가능 항목을 연결4.지퍼'zip'zip 연산자는 여러 관측 가능 항목의 방출을 쌍으로 묶어 결합5.전환'switchLatest'switchLatest 연산자는 외부 Observable이 새로운 Observable을 방출할 때 새로운 Observable로 전환6.와 결합하기'withLatestFrom'withLatestFrom 연산자는 소스 Obs..
고차함수 Swift에서 고차함수 (Higher-Order-Functions)는 하나 이상의 함수를 인자로 받고, 함수를 반환 스위프트에서 자주 사용되는 대표적인 고차함수로는 map , filter , reduce , compactMap , flatMap , forEach 등이 있습니다.함수는 배열이나 컬렉션을 처리할 떄 매우 유용합니다.1. map각 요소에 동일한 연산을 적용한 결과let numbers = [1, 2, 3, 4, 5]let squaredNumbers = numbers.map { $0 * 2 }print(squaredNumbers) // [2, 4, 6, 8, 10]2. filterfilter 함수는 컬렉션에서 주어진 조건에 맞는 요소let numbers = [1, 2, 3, 4, 5]let eve..
Model 스위프트에서 "모델(Model)" 은 MVC(모델-뷰-컨트롤러) 아키텍처에서 중요한 역할 하는 구성 요소로, 애플리케이션의 데이터와 비즈니스 로직을 관리하는 부분을 의미합니다. 모델은 사용자 인터페이스 (UI)나 애플리케이션의 표현 계층(View)와는 분리되어 있으며, 주로 데이터 저장, 데이터 처리, 비즈니스 규칙 구현에 초첨을 맞춥니다.모델은 일반적으로 클래스나 구조체로 정의되며, 데이터 구조와 이와 관련된 로직을 포함합니다.1. 구조체(Struct)로 정의된 모델값 타입으로, 주로 간단한 데이터를 표현struct User { var id: Int var name: String var email: String func displayName() -> String { ..