Swift(7)
-
서버 없이 로컬 데이터 관리 하고 싶어요.
서버 없이 로컬 데이터 관리가 필요한 이유는 무엇일까? 개인프로젝트로 앱을 개발할 때, 부담없이 데이터를 관리할 수 있는 데이터베이스 시스템에 관심을 가지게 된다. 전통적인 방식의 RDBMS는 아니지만, 서버리스 DB 이자 임베디드 데이터베이스가 바로 그런 데이터베이스다. 이해하기 쉽고, 사용자 입장에서도 서버에 사용자의 개인적인 데이터가 저장되지 않으니 찜찜할 이유도 없다. 게다가, 서버와의 통신이 불안정한 걸 걱정할 필요도 없고, 오프라인 환경에서도 잘 동작한다. 서버 운용비용에 대한 부담도 없다. 어떤 로컬 데이터베이스를 선택하고 어떻게 사용해야 할까? 2024년에 내가 배포했던 소리의 기록(링크) 앱도 바로 이런 로컬 DB 시스템을 사용한 좋은 예시다. 응? 임베디드 데이터베이스(Embedd..
2025.03.16 -
Apple 이 제시하는 콤비네이션 핏자, Combine 살짝 음미해보기
RxSwift 를 10월쯤 작성하고(꽤 많은 시간동안, Swift 와 관련된 글을 쓰지 못했다.), RxSwift 관련 코드를 더 공부할까 파볼까 고민했다. 그치만 Combine 도 궁금했고, 기본적으로 애플에서 제공하는 프레임워크였기에 알아보고 싶었다.그렇다..나는 건들면 안되는 크나큰 무언가를 건든 것이다..꽤나 Combine 이 제공하고 다루고 있는 영역이 컸다. 그래서 나는 컴바인, Rx 왕초보니까,, 기본적인 흐름과 역할에 대해 정리하고 공부하려고 한다. 기본 공식문서에서 소개하는 Combine 의 역할은 애플리케이션이 이벤트를 처리할 때, 선언적으로 접근할 수 있게 해준다고 한다. 선언적 프로그래밍은 목표를 설정하고 목표에 접근하는 방법은 컴퓨터에게 일임한다. 예를 들어, '양복점에 가서 1..
2024.12.21 -
동시성(Concurrency)을 대하는 Swift 의 자세 1 - DispatchQueue
요즘 Rx 에 대해 조금씩 곰튀김님 유튜브 강의를 통해 살펴보고, 동시성 글을 읽게 되면서, RxSwift 와 Combine 은 왜 쓰는걸까? 하는 의문이 들었다. 저 두 라이브러리 또한 비동기로 수행할 작업들을 기다리지 않고 적절한 시기에 동시적으로 수행할 수 있고, 코드의 가독성도 좋아져서일 것 같다. 동시성의 사용과 경계에 대해서는 클린코드에서 알아봤다. (클린코드 동시성 글이 궁금하시다면 링크 클릭 하세요) 애플 또한 동시성을 사용함으로써 얻게 되는 성능적인 측면과 그로 인해 발생할 수 있는 경쟁 상태와 시스템 부하 외 콜백 함수를 사용할 때 발생하는 들여쓰기로 인해 보이는 예쁘지 않은 코드에 대해서도 대응을 했다. (그 방법은 async, await 와 연관이 있다😅, 여기서 언급하게 될 부분은..
2024.02.02 -
Swift 기본 가이드라인 - part 1
1. fundamental(기초) 사용 시점의 명확성(Clarity as the point of use) -> 가장 중요한 목표 - 메소드, 속성(property) 등의 엔터티는 한 번만 선언되지만 반복적으로 사용 => API를 명확하고 간결하게 사용하도록 설계해라! => 설계를 평가할 때, 선언문(declaration)을 읽는 것만으로는 충분치 않다. 항상 사용 사례를 조사해 맥락해서 명확하게 보이는지 확인해라! 간결함보다 명확성이 더 중요해! Swift 코드는 간결할 수 있으나, 최소한의 문자로 가능한 가장 간단한 코드를 구현하는 게 목표가 아니다. Swift 코드의 간결함은 강력한 유형 시스템과 자연스럽게 상용구(boilerplate)를 줄이는 기능의 부작용이다. BoilerPlate란? 다양한 프..
2023.12.14 -
[ Array ] String 을 배열로 쪼개라!
본론을 시작하기에 앞서, 알고리즘과 나의 인연에 대해 잠깐 언급해보려고한다. 작년부터 백준 브론즈를 풀다가, readLine() 의 쓰임에 익숙치 않았지만, 풀어 나갔었다. 일목요연한 문법과 문법설명이라기 보단, 내가 생각하고 느꼈던 것에 대한 기록이다. 난 알고리즘 왕초보니까..😅 내 힘으로 해결하지 않고 풀다가 다른 사람들의 풀이를 보곤 했었는데, 그렇기엔 내 일시적 궁금증만 해소될 뿐이지 궁극적인 나의 알고리즘 내성력(?) 에 일절 도움이 되지 않았다. 그래도 작년 말부터는 다시 초심으로 돌아가 프로그래머스 코딩테스트 기초부터 풀고 있는중이다. 절대 다른 이들의 풀이법을 보고 싶지 않았다! 1. 우선, 문제에서 설명하는 것과 요구하는 것을 먼저 파악했다. 2. 그리고 나서 웬만하면, 제한사항을 두는..
2023.08.14 -
[Swift ] Escape Sequence - 문자열처리
Extended String Delimiters You can place a string literal within extended delimiters to include special characters in a string without invoking their effect. You place your string within quotation marks (") and surround that with number signs (#). For example, printing the string literal #"Line 1\nLine 2"# prints the line feed escape sequence (\n) rather than printing the string across two lines..
2022.05.21