이 영역을 누르면 첫 페이지로 이동
Daily Growth 블로그의 첫 페이지로 이동

Daily Growth

페이지 맨 위로 올라가기

Daily Growth

Loving you is the reason I live. That’s why every day is precious, a step toward my dreams and you.

전체 글

  • Daily Growth
앱 시닝 vs 슬라이싱: iOS 앱 최적화 개념 / 에셋 카탈로그, IBOutlet

앱 시닝 vs 슬라이싱: iOS 앱 최적화 개념 / 에셋 카탈로그, IBOutlet

2025.05.25
iOS 앱 개발을 시작하면서 Xcode 프로젝트를 열어보면 처음 마주하는 개념들이 있다. 그중에서도 에셋 카탈로그, IBOutlet, 그리고 앱의 설치 용량 최적화와 관련된 앱 시닝(App Thinning)과 슬라이싱(Slicing)은 반드시 알아야 할 중요한 내용이다. 🎨 에셋 카탈로그란?Xcode에서 프로젝트를 생성하면 자동으로 Assets.xcassets라는 폴더가 생성된다.이 폴더는 이미지, 앱 아이콘, 데이터 파일 등 앱에서 사용하는 리소스를 체계적으로 관리하는 공간이며, 이를 에셋 카탈로그(Asset Catalog)라고 부른다.에셋 카탈로그의 역할이미지, 아이콘, 런치 이미지 등의 리소스를 정리해 저장디바이스의 해상도나 환경에 따라 적절한 리소스를 자동으로 선택앱 최적화 기술(슬라이싱)과 ..
존 아사라프 ‘해빙 잇 올’ : 내면의 부를 끌어당기는 뇌 사용법과 성공 마인드셋

존 아사라프 ‘해빙 잇 올’ : 내면의 부를 끌어당기는 뇌 사용법과 성공 마인드셋

2025.05.25
사람은 누구나 풍요로운 삶을 꿈꾼다.그런데 왜 어떤 사람은 모든 것을 가진 삶(Having It All)을 살고,어떤 사람은 평생 갈망 속에 머무를까?존 아사라프의 『해빙 잇 올』은 그 질문에 단순하면서도 깊은 해답을 건넨다.그 차이는 '마인드셋', 그리고 우리가 인식조차 하지 못한 채 따르고 있는 무의식적 신념에 있다. 💡 부의 마인드셋은 어떻게 만들어지지?부자들은 단순히 더 똑똑하거나 운이 좋은 것이 아니다.그들은 ‘부를 끌어당기는 뇌 사용법’을 알고 있고, 자기 신념을 설계해냈다.“당신의 외부 세계는, 당신의 내부 세계를 그대로 반영한다.”이 문장은 책 전반에 걸쳐 가장 중요한 축이다.즉, 내면에 ‘나는 충분하다’, ‘나는 부를 받을 자격이 있다’는 확고한 신념이 있어야,외부에서도 그에 걸맞은 현..
Swift 핵심 개념 정리 : 제네릭, 프로토콜, ARC와 강한 순환 참조

Swift 핵심 개념 정리 : 제네릭, 프로토콜, ARC와 강한 순환 참조

2025.05.23
1. 제네릭(Generics)제네릭은 타입에 상관없이 재사용할 수 있는 코드를 작성할 때 쓴다.예를 들어, 어떤 값이든 두 번 출력하는 함수는 이렇게 쓸 수 있다.func printTwice(_ item: T) { print(item) print(item)}는 타입 매개변수로, 어떤 타입이 들어와도 된다._ item: T는 호출할 때 매개변수 이름(item:)을 생략하게 한다.함수 호출 예printTwice("안녕") // "안녕" 두 번 출력printTwice(100) // 100 두 번 출력 2. 서브스크립트(Subscript)서브스크립트는 배열처럼 [index] 형태로 값을 읽거나 쓸 수 있게 한다.내가 만든 타입에도 이 기능을 넣을 수 있다.struct TimesTable {..
Swift 고차 함수 쉽게 배우기: map, filter, reduce 실전 예제

Swift 고차 함수 쉽게 배우기: map, filter, reduce 실전 예제

2025.05.22
고차 함수란 무엇인가?고차 함수(Higher-order function)란 다른 함수를 전달받거나 결과로 반환하는 함수를 말한다. Swift에서는 함수가 일급 객체이기 때문에, 값처럼 함수도 전달하거나 반환할 수 있다.대표적인 고차 함수로는 다음 세 가지가 있다:map: 배열 안의 값을 변형(transform) 하는 함수filter: 조건에 맞는 값만 걸러내는 함수reduce: 여러 값을 하나로 합치는 함수 map: 배열을 변형할 때✅ map이 유용한 상황예를 들어, 학생들의 이름과 성적이 담긴 배열이 있다고 하자. 여기서 각각의 학생 성적 평균을 계산해서, 이름과 평균만 담긴 새로운 배열로 만들고 싶다면 map이 딱이다.🧩 예시struct Student { let name: String l..
Swift 오류처리 : 자판기 예제로 배우는 throw, throws, try, do-catch, switch-case, defer

Swift 오류처리 : 자판기 예제로 배우는 throw, throws, try, do-catch, switch-case, defer

2025.05.21
🧯 Swift 오류 처리 Swift에서 프로그래밍을 하다 보면 예상치 못한 문제가 생길 수 있다. 예를 들어 자판기를 만든다고 할 때, 사용자가 잘못된 금액을 넣거나 제품이 부족한 상황 등이 오류가 될 수 있다. 이런 문제들을 깔끔하게 처리하는 것이 바로 오류 처리(Error Handling)이고, Swift는 이를 위한 다양한 기능을 제공한다. 오늘은 그 개념들을 정말 쉽게, 단계별로 정리해보았다(: 1. 오류는 어떻게 표현할까?Swift에서는 Error라는 빈 프로토콜을 통해 오류를 정의한다. 보통은 enum을 사용해서 오류의 종류를 나눈다. 열거형은 다양한 오류 상태를 구분하기에 적합한 구조다.enum VendingMachineError: Error { case invalidInput ..
Swift 익스텐션 활용법: 연산 프로퍼티, 메서드, 서브스크립트 추가하기

Swift 익스텐션 활용법: 연산 프로퍼티, 메서드, 서브스크립트 추가하기

2025.05.14
익스텐션이란?익스텐션(Extension) 은 말 그대로 기존에 존재하는 타입에 기능을 ‘확장’해주는 기능이다. 마치 기존에 완성되어 있는 레고 블록에 다른 블록을 덧붙여서 새로운 기능을 붙이는 것과 비슷하다.익스텐션은 구조체(struct), 클래스(class), 열거형(enum), 프로토콜(protocol) 등의 타입에 새로운 기능을 추가하는 문법이다.중요한 점은, 원래의 코드에 손대지 않고도 기능을 더할 수 있다는 것이다. 즉, 다른 사람이 만든 타입이더라도, 혹은 애플이 만든 타입이더라도 익스텐션을 통해 기능을 추가할 수 있다. 이게 바로 익스텐션의 매력이다. 익스텐션으로 할 수 있는 것들익스텐션을 통해 어떤 기능을 추가할 수 있을까?(: 아래와 같은 것들이 가능하다.연산 프로퍼티 (계산해서 값을 반..
스위프트 프로토콜 vs 클래스 상속: 유연한 기능 구현을 위한 최적의 선택

스위프트 프로토콜 vs 클래스 상속: 유연한 기능 구현을 위한 최적의 선택

2025.05.11
스위프트에서 프로토콜은 특정 역할을 수행하기 위한 메서드, 프로퍼티, 기타 요구사항 등을 정의하는 청사진이다. 클래스, 구조체, 열거형은 이러한 프로토콜을 채택(Adopt)하여 실제로 기능을 구현할 수 있다.단, 프로토콜은 클래스를 상속하지 않고, 요구사항을 정의만 하며 구현은 직접 하지 않는다. 즉, 프로토콜은 다른 언어에서 말하는 인터페이스와 유사하지만, 스위프트에서는 그들만큼 강력한 구현을 요구하지 않는다(:1. 프로토콜 정의 및 요구사항protocol Talkable { var topic: String { get set } // 주제에 대한 프로퍼티 (읽고 쓸 수 있어야 함) var language: String { get } // 언어에 대한 프로퍼티 (읽기만 가능) ..
Swift : assert, guard, 그리고 제어 흐름 제어문

Swift : assert, guard, 그리고 제어 흐름 제어문

2025.05.11
assert란 무엇인가?assert는 개발 중 예상치 못한 상황이 발생했는지 확인하기 위한 디버깅 도구다. 코드가 실행될 때 특정 조건이 반드시 참(true)이어야 한다고 판단되면, 그 조건을 assert로 명시할 수 있다. 만약 그 조건이 거짓(false)이라면 프로그램은 실행 중단되고, 지정된 메시지를 출력한다.var someInt = 0assert(someInt == 0, "someInt는 0이여야 합니다.")위 코드에서 someInt가 0이 아니면, "someInt는 0이여야 합니다."라는 메시지를 출력하며 앱이 중지된다. 중요한 점은, assert는 디버그 모드에서만 동작하며 실제 사용자에게 배포되는 릴리즈 버전에서는 무시된다는 것이다.assert의 메시지 "..."는 해당 조건이 거짓일 때 출..
Swift에서 is와 as로 배우는 타입 확인과 변환의 핵심

Swift에서 is와 as로 배우는 타입 확인과 변환의 핵심

2025.05.11
타입 캐스팅이란 무엇인가?타입 캐스팅은 객체의 타입을 다른 타입으로 변환하는 과정이다. 그러나 이때 중요한 점은 타입을 변경하는 것이 아니라 객체가 다른 타입을 참조하도록 변환하는 것이라는 점이다. 쉽게 말해, 어떤 클래스의 인스턴스를 부모 클래스나 자식 클래스의 타입으로 변환하여 사용할 수 있도록 해주는 기능이다.타입 캐스팅은 is와 as라는 키워드를 사용하여 진행된다. is는 객체의 타입이 특정 타입에 맞는지 확인할 때 사용하고, as는 객체의 타입을 다른 타입으로 변환할 때 사용된다. 타입 캐스팅의 예시우리는 타입 캐스팅을 이해하기 위해, 아래와 같은 간단한 클래스를 정의해보자.class Person { var name: String = "" func breath() { pr..
Swift 옵셔널 체이닝과 nil 병합 연산자

Swift 옵셔널 체이닝과 nil 병합 연산자

2025.05.11
Swift를 공부하다 보면 옵셔널(Optional)이라는 개념을 꼭 마주하게 된다. 옵셔널은 "값이 있을 수도 있고, 없을 수도 있는 변수"를 뜻한다.Swift는 안전한 언어이기 때문에, 값이 없을 수 있는 상황에서는 반드시 옵셔널로 처리해야 한다.하지만 이 옵셔널을 다루다 보면 종종 코드가 복잡해지고, 옵셔널 안의 옵셔널을 꺼내야 할 때마다 여러 번 if let을 중첩해서 써야 해서 불편함이 생긴다.이럴 때 옵셔널 체이닝(Optional Chaining)과 nil 병합 연산자(nil coalescing operator) 를 사용하면 깔끔하게 처리할 수 있다(: 1. 옵셔널 체이닝이란?옵셔널 체이닝은 ?. 연산자를 이용해 옵셔널 내부에 또 다른 옵셔널이 있을 때 안전하게 접근하는 방법이다.중간에 하나라도..
Swift 클래스, 인스턴스, 그리고 메모리 관리: init과 deinit의 역할

Swift 클래스, 인스턴스, 그리고 메모리 관리: init과 deinit의 역할

2025.05.10
스위프트(Swift)는 객체 지향 프로그래밍(Object-Oriented Programming, OOP)을 지원하는 언어로, 클래스(Class)와 객체(Object)의 개념을 기본으로 한다. 클래스를 이용해 객체를 만들고, 그 객체를 메모리에서 관리하는 방식은 매우 중요하다. 오늘은 스위프트에서 클래스와 인스턴스, 그리고 메모리 관리에 관련된 핵심 개념인 init과 deinit에 대해 기록해보고자 한다.1. 클래스와 인스턴스의 차이스위프트에서 클래스는 객체를 만들기 위한 설계도에 해당한다. 클래스를 통해 객체가 어떻게 행동할지 정의하고, 그 정의를 바탕으로 객체를 생성하게 된다. 반면, 인스턴스는 그 클래스를 기반으로 실제 메모리 상에 만들어진 객체를 말한다.예시:class Dog { var nam..
Swift 클래스 상속 제대로 알기: 프로토콜과 final, override

Swift 클래스 상속 제대로 알기: 프로토콜과 final, override

2025.05.09
프로그래밍을 배우다 보면, "상속"이라는 개념이 꼭 나온다. 그런데 이게 처음에는 되게 추상적이고 어려운 말처럼 느껴질 수 있다."부모 클래스?", "override?", "final?" 이런 단어들이 막 나오는데, 말도 어렵고 개념도 어려워서 머리가 아파올 수 있다 ㅎㅎ. 그래서 오늘은 정말 쉽게, 동물을 예시로 들어서 하나씩 풀어보려고 한다. Swift 코드도 같이 보면서, 진짜 왜 상속이 필요한지 이해해보자. 🧠 상속이란?먼저, 상속(inheritance)이란?"어떤 클래스가 다른 클래스의 기능을 물려받는 것"이다.예를 들어, ‘동물(Animal)’이라는 큰 개념이 있고, 그 아래에 ‘개구리’, ‘오리’ 같은 동물들이 있다.이때, 공통된 특징(예: 움직인다)을 부모 클래스인 Animal에 적어두고..
  • 최신
    • 1
    • ···
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • ···
    • 41
  • 다음

정보

Daily Growth 블로그의 첫 페이지로 이동

Daily Growth

  • Daily Growth의 첫 페이지로 이동

검색

메뉴

    카테고리

    • 분류 전체보기 (491) N
      • Design History (69)
      • IT (185) N
      • Typography (13)
      • UX • UI Design (11)
      • Money (62)
      • Health (58)
      • Words (6)
      • Reading (21)
      • English (65)

    나의 외부 링크

    • Daily Growth
    • Daily World
    • lody.design
    • lody.diary

    정보

    self-improvement의 Daily Growth

    Daily Growth

    self-improvement

    블로그 구독하기

    • 구독하기
    • 네이버 이웃 맺기
    • RSS 피드

    방문자

    • 전체 방문자
    • 오늘
    • 어제

    티스토리

    • 티스토리 홈
    • 이 블로그 관리하기
    • 글쓰기
    Powered by Tistory / Kakao. Copyright © self-improvement.

    티스토리툴바