본문 바로가기

Programming181

[iOS Swift] SwiftUI란? UIkit vs SwiftUI 비교 SwiftUI란? 애플의 디자인 프레임워크의 변화는 빠르게 진행되었습니다. 애플은 2019년 WWDC에서 애플은 SwiftUI라는 새로운 디자인 프레임워크를 소개합니다. 더 빠르고 쉽게 개발을 할 수 있도록 하기 위해 개발된 SwiftUI는 실시간 테스트 기능과 선언적 구문 그리고 데이터주도 기반을 철학을 가지고 있습니다. SwiftUI의 특징적인 부분은 선언적 구문, 데이터 바인딩, 프리뷰 기능, 애니메이션 기능으로 압축해서 살펴볼 수 있습니다. 1. 선언적 구문(Declarative Syntax) SwiftUI는 선언적 구문을 사용합니다. 선언적 구문의 반대는 명령적(Imperative) 구문인데요, 둘의 차이점을 간단하게 비교하면 다음과 같습니다. 선언적 구문 명령적 구문 - 코딩을 할 때 무엇을 .. 2024. 1. 16.
[iOS Swift] 스위프트에서 Error Handling 하는 방법 Swift Error Handling 안녕하세요. 개발자 AboutTech입니다. 이번 포스팅에서는 스위프트 언어를 사용한 아이폰 앱 개발에서 에러를 어떻게 처리할 수 있는지 알아보도록 하겠습니다. 모든게 완벽한 코딩이라면 에러가 발생할 일도 없을 것입니다. 하지만 현실에서는 앱을 사용하던 중에 네트워크가 꺼질 수도 있고, 사용자가 예상치 못한 지점에서 앱이 정상작동하지 않는 경우가 무수히 많습니다. 개발자도 사용자도 예상하지 못한 에러가 발생했을 때 예기치 못한 심각한 오류로 사용자 경험이 훼손되지 않게 하기 위해서는 적절한 그리고 우아한 에러 처리가 필수입니다. 아이폰 앱 개발에 사용되는 스위프트에서는 에러 핸들링 작업을 위해 guard, defer, do-catch, 그리고 throwing met.. 2024. 1. 15.
[iOS Swift5] 프로퍼티 래퍼 Property Wrapper? 안녕하세요. AboutTech입니다. 이번 포스팅에서는 Swift 5.1 버전부터 적용되기 시작한 Property Wrapper에 대해 알아보고자 합니다. 이전에 OOP를 알아보면서 연산 프로퍼티 사용을 조금 더 간단하게 도와주는 개념입니다. 만약 클래스나 구조체 내부에 선언된 연산 프로퍼티의 로직을 다른 클래스나 구조체에서도 동일하게 사용하기 위해서는 어떻게 해야 될까요? 해당 로직을 복사해서 붙여 넣는 방식으로는 한계점에 직면하게 됩니다. 이 문제를 해결해주는 것이 바로 프로퍼티 래퍼입니다. Property Wrapper 사용법 간단한 구조체를 선언했고, 인스턴스를 생성해서 name이라는 프로퍼티를 출력하고 있습니다. name 연산 프로퍼티는 구조체 내부의 value 값을 통해 새로운 값을 할당하고.. 2024. 1. 13.
[iOS Swift5] Collection, 배열과 딕셔너리, Set 기본 안녕하세요. AboutTech입니다. Swift에서 다양한 데이터와 객체들을 집합체로 묶어 관리할 수 있는 타입을 컬렉션이라고 합니다. 컬렉션 타입에는 대표적으로 배열과 딕셔너리가 있는데요 데이터들을 한 번에 담아서 관리할 수 있는 방법에 대해 알아보도록 하겠습니다. Swift Array, 배열 배열은 순서있는 컬렉션입니다. 따라서 배열은 다양한 타입의 데이터를 순서대로 저장할 수 있습니다. 먼저 배열을 선언하는 방법은 다음과 같습니다. var array = [타입]() String 타입의 값을 담고 있는 배열을 선언하려면 타입에 String을 적어주시면 됩니다. var array = [String]() 초기값을 N개 가진 배열을 만들기 위해서는 repeating, count 매개변수에 인자를 전달해 주.. 2024. 1. 11.
[iOS Swift5] 열거형 구조체 기본 기초 Swift에서 클래스만큼이나 자주 사용되는 타입이 바로 구조체입니다. 이번 포스팅에서는 클래스와 구조체를 비교하면서 SwiftUI를 활용한 iOS 앱 개발에 필요한 구조체와 열거형의 개념에 대해 간단히 알아보도록 하겠습니다. Value type VS Reference Type Swift에서 데이터를 다루는 방식은 크게 (값 타입)Value Type과 (참조 타입)Reference Type이 있습니다. 차이점을 간단하게 알아보면 값 타입은 값 자체가 복사되어 전달됩니다. 이를 pass by value라고 합니다. 반면 참조 타입은 참조가 전달되어 같은 인스턴스를 공유하게 됩니다. 이를 pass by reference라고 합니다. 즉 데이터의 값만을 전달하기 위해서는 값 타입을 사용하고, 참조를 전달해서 공.. 2024. 1. 10.
[iOS Swift5] 객체지향 프로그래밍 기초 클래스 프로토콜 익스텐션 Swift는 객체 지향 프로그래밍 언어(Object Oriented Programming)입니다. 그만큼 객체를 사용한 프로그래밍을 지원하고 있다는 말인데요, 객체는 재사용가능한 독립 기능 모듈로 클래스 구조체의 형태로 지원되고 있습니다. 이번 포스팅에서는 Swift에서 바로 사용가능한 클래스의 기본 개념에 대해 알아보고자 합니다. 클래스는 왜 사용하나요? 먼저 클래스를 사용하는 이유에 대해 알아보겠습니다. #1 캡슐화 OOP에서 클래스는 멤버를 하나로 묶어 캡슐화 할 수 있습니다. 이는 데이터를 보호하고 유지보수하는데 용이하다는 장점을 가지고 있습니다. 또한 접근제어자를 통해서 클래스 멤버에 접근할 수 있는 안전장치를 걸 수 있기 때문에 안전하게 데이터를 사용할 수 있습니다. #2 추상화 클래스를 사용.. 2024. 1. 9.
[iOS Swift5] 함수, 메서드 그리고 클로져 기본 개념 프로그래밍 영역에서 함수는 반복적인 작업을 대폭 줄여주는 장점이 있습니다. 애플의 스위프트 언어 또한 함수를 제공하고 있는데요, 이번 포스팅에서는 Swift의 함수에 대해 알아보도록 하겠습니다. Swift 함수와 메서드 기본 함수 Function은 특정 기능을 수행하기 위한 코드 블럭입니다. 특정 데이터를 매개변수로 받을 수도 있고, 함수의 결과물을 반환받을 수도 있습니다. 일반적으로 특정 기능을 수행하기 위한 코드 블럭을 함수라고 지칭합니다. 함수와 유사하게 사용되는 개념이 메서드인데요, 메서드는 특정 클래스나 구조체 내에서 사용하는 함수를 통상 메서드라고 지칭합니다. 함수와 메서드가 작동하는 방식은 동일하지만 사용방법에서 조금 다르다는 차이점이 있습니다. Swift에서 함수를 사용하는 기본 방법은 다.. 2024. 1. 8.
[iOS Swift5] if else, guard 제어 흐름 관리하기 Swift5 제어흐름 관리하기 안녕하세요 About Tech 입니다. 이번 포스팅에서는 Swfit 언어에서 제어흐름을 어떻게 관리할 수 있는지 알아보고자 합니다. 제어흐름은 조건식이라고도 불리는 if 문이나 guard 문을 말하는데요, 개발은 로직을 이용하는 것이기도 하고, 프로그램의흐름을 통제하는 것이기 때문에 제어흐름(Control Flow)로 불리고 있습니다. 제어흐름에는 크게 조건부 제어흐름(Conditional Control Flow)과 반복제어(Loopin Control Flow) 문으로 구분됩니다. 코드를 몇번 반복해서 실행할지를 결정하는 반복 제어흐름과 특정 조건에 따라 코드를 실행할지 뛰어넘을지를 결정하는 조건식으로 구분됩니다. Swift 조건부 제어흐름 조건부 제어흐름은 크게 두가지가 .. 2024. 1. 5.
[iOS Swift5] 연산자와 표현식 Swift 연산자와 표현식 변수에 값을 할당하는 방법은 기본적으로 표현식을 따릅니다. 피연산자와 할당자 그리고 연산자를 통해 값을 생성하고 변수에 데이터를 저장할 수 있습니다. var number = 1 + 2 1. 할당 연산자 (=)를 사용해 변수에 값을 저장합니다. 2. 복합 할당 연산자 (+=) (-=) 처럼 산술연산자나 논리연산자를 할당연산자에 결합해서 사용하는 형태입니다. var num = 10 // Addition assignment operator (+=) num += 5 // Equivalent to: num = num + 5 print(num) // Output will be 15 // Subtraction assignment operator (-=) num -= 3 // Equivale.. 2024. 1. 5.
Xcode Playground 사용법 주석 라이브뷰 사용하는 방법 플레이그라운드란? 플레이그라운드는 xcode의 추가적인 기능으로 실시간으로 코드를 실행해볼 수 있는 개발환경입니다. 아이폰 앱을 개발하기 위해서 코딩부터 컴파일 그리고 디버깅의 일련의 과정을 거치게 되는데, 플레이그라운드에서는 코드를 바로 실행해보고 코드에 대한 주석 기능도 제공하고 있기 때문에 코드를 문서화 할 때도 좋은 툴이 될 수 있습니다. Swift 언어를 공개한 애플은 플레이그라운드를 함께 공개하면서 많은 개발자들에게 보다 편리한 환경을 제공하고 있습니다. 이번 포스팅에서는 플레이그라운드의 여러 기능들을 학습해보도록 하겠습니다. 먼저 플레이그라운드를 시작하기 위해서는 xcode를 실행해줍니다. 단축키는 ⌥[option] + ⇧[shift] + ⌘[command] + N입니다. 플레이그라운드를 처.. 2024. 1. 4.
[iOS Swift5] 상수와 변수 데이터 타입 옵셔널, 옵셔널 바인딩, 강제언래핑 Swift5 상수와 변수 프로그래밍 언어에서 데이터를 표현하는 방법은 다양합니다. iOS 8 이전까지는 Objective-C로 개발했지만 스위프트 언어가 등장하고 나서는 대부분 흐름이 스위프트로 새로운 기능들이 대체되고 있는 상황입니다. 스위프트 언어에서 가장 먼저 익혀야 되는 부분은 데이터타입입니다. 프로그램은 RAM에 올라가 CPU의 자원을 사용해 Bit라고 불리는 0 혹은 1의 데이터에서 시작합니다. 비트가 바이트가 되고, 우리가 원하는 2진수 혹은 문자열의 데이터를 저장할 수 있게 됩니다. 여기서 변수와 상수가 나뉘게 됩니다. 변수 Variables는 애플리케이션에서 사용되는 데이터를 저장하기 위해 생성하는 컴퓨터 메모리 내의 위치를 의미합니다. 개발자는 메모리 주소에 이름을 지정하고 값을 할당하.. 2023. 12. 26.
[iOS Swift5] Objective-C를 넘어선 Swift5 언어의 등장 Swift 5 언어의 출현 현재 애플의 기기에 들어가는 소프트웨어를 개발하기 위해서는 Swift언어를 사용합니다. 애플 에코시스템에서 개발자가 되기 위해서는 Swift 언어를 익혀야 하는데요, Swift 프로그래밍 언어는 2014년 WWDC에서 공개되면서 2023년 현재 Swift5까지 발전에 발전을 거듭하고 있습니다. 기존의 소프트웨어 개발에서는 전통적인 프로그래밍 언어인 C를 개량한 Objective-C를 사용했었는데요, 한계와 어려움을 극복하서 2010년 초반 Swift 프로젝트가 가동되었고, 2014년 새롭게 첫 선을 보이게 됩니다. 애플의 스위프트 언어 소개 스위프트가 공개되고 난 후 쉬운 언어 문법과 강력한 기능이 더해지면서 애플 생태계에서 개발을 하기 위한 필수 언어로 자리 잡았습니다. 물론.. 2023. 12. 26.
[티스토리 스킨 만들기 #1] 치환자 이해하기 [티스토리 스킨 만들기 #1] 치환자 이해하기 티스토리 스킨을 만들어 볼 작정입니다. 최근 티스토리에서 자체 광고를 신설하고 상단 혹은 하단의 광고 영역을 침범(?)한다고 공지한 이후 티스토리 블로거들의 거센 반발에 부딪혔는데요, 그럼에도 불구하고 티스토리 만큼 자유롭고 무료로 사용할 수 있는 블로그는 또 없기 때문에 애증을 담아 스킨을 한번 만들어 보려고 합니다. 티스토리에 적용할 스킨을 만들기 위해서는 치환자를 이해해야 하는데요, 스킨 제작이 처음이신 분들은 티스토리 스킨 가이드를 참고하셔야 합니다. 우리가 웹 애플리케이션을 만들 때 프론트랑 백엔드랑 2개를 만듭니다. 여기서 티스토리 스킨 가이드는 백엔드 영역을 담당해주고 있습니다. 프론트에서 get 요청을 보내지 않아도 HTML에 치환자를 심어주면.. 2023. 6. 9.
프로그래머스 자전거 공장 문제 Javascript 프로그래머스 자전거 공장 문제 Algorithm 프로그래머스 자전거 공장 문제는 스택을 이용해서 풀어낼 수 있다. 기간별로 다른 누진세가 적용되기 때문에 최대한 저렴한 가격으로 자전거를 생산하기 위해서는 최대한 앞쪽에 물량을 몰아서 생산기간 동안 최대한 적은 숫자의 자전거를 매월 생산하도록 하는 것이 관건이다. 총 3단계로 나누어 알고리즘을 설계할 수 있다. 1. 얼마까지 자전거를 생산해야 한다라는 개념을 향후 몇개월 동안 얼마만큼의 자전거를 생산해야 되는지 order 배열을 재배치한다. 2. 새롭게 정의된 주문서에서 월별 생산량을 비교해서 뒷쪽에 물량이 몰려있는 경우 앞으로 추가하면서 물량을 조절할 수 있다. 3. 생산해야 하는 물량과 기간을 고려해서 최종 생산비를 뽑아낸다. 프로그래머스 자전거 공장 .. 2023. 4. 6.
Github CLI Install Ubuntu 22.04 1. 터미널 실행 아래 코드 입력. 터미널에 Github CLi install type -p curl >/dev/null || sudo apt install curl -y curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg \ && sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg \ && echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archi.. 2023. 2. 9.