기초 중에 기초 생성자 Initalizer, 하지만 생각보다 잘 모르고 쓰는 것들이 많기에 공식문서를 중심으로 내용을 정리해보았습니다. 그래서 이번 글에서는 클래스, 구조체, 열거형의 초기화에 대해 나눠 알아보고, 필수생성자(required)와 실패가능한 생성자(failable)에 대해서도 알아보겠습니다. 1. 생성자(Initalizer)란? '생성자(I…
iOS에서 Delegate 패턴은 정말 많이 보긴했다. 대충 뭔지는 알지만 아직 잘 몰라서 한 번쯤 다시 정리해보고 싶어서 이번 주제로 갖고 왔다. 1. Delegation Pattern 먼저 델리게이션 패턴이란 무엇일까? 'Delegate'는 '위임하다, 대리자' 라는 사전적 의미 그대로 하나의 객체가 모든 일을 처리하는 것이 아니라, 처리해야할 일의 …
제네릭은 Swift 의 가장 강력한 기능 중 하나로 Swift 표준 라이브러리의 대부분은 제너릭 코드로 구축되어있다. 바로 Array, Dictionary 이 대표적인 제네릭 타입이다. Swift를 사용하며 자각하지 못했을지 모르지만, Swift 전반에 걸쳐 사용한 제네릭에 대해 파헤쳐 보도록 하자. 1. 제네릭 타입 파라미터 먼저 제네릭 함수를 정의할 때…
Swift에서 프로토콜은 특정 작업이나 기능에 적합한 메서드, 프로퍼티 및 기타 요구 사항의 청사진(Blueprint)이다. 이러한 요구 사항의 실제 구현을 제공하기 위해 클래스, 구조체 또는 열거형에 의해 채택될 수 있다. 프로토콜을 사용하면 채택된 유형이 준수해야 하는 일련의 규칙이나 동작을 정의할 수 있다. 특히 마지막 문장은 대체 무슨말인지 싶겠지…
1. Ads.txt 추가 Gatsby 블로그에 구글 애드센스를 적용하면, 먼저 ads.txt 파일을 루트 디렉토리에 업로드 해야한다. 처음에는 바보같이 최상단 루트에 업로드해서 deploy 과정에서 초기화가 되면서 파일이 계속 지워졌다...🥹 Ads.txt가 root 에 없다?! 해결방법은 간단하다. 먼저 package.json에 build시에 적용되게…
문제 상황 'document is not defined' 지난번 scrollTop기능과 window 창 크기 변경에 따른 이벤트를 구현하다가 해당 오류를 겪었는데, 이번에 ToC 기능을 구현하다가 "document is not defined" 빌드 오류를 겪었다. 찾아보니 gatsby JS에서 "document is not defined" 오류는 주로 S…
Xcode 에서 알고리즘 풀기 readLine 함수를 사용해야하는 경우(입력값을 받아야하는 경우)에는 플레이그라운드 대신, Xcode의 Command Line Tool을 사용해야한다. 그런데 main.swift이외의 다른 파일에서 실행하면, 해당 메시지가 뜬다. Error! swift expressions are not allowed at the top …
Xcode15에서 git 연결 VScode는 내게 매우 익숙하지만, Xcode는 처음 사용해봐서 git은 대체 어떻게 연결하는 건가싶었다. 최근 앱스쿨을 들으면서 Xcode를 사용하여 공부하고있는데, Xcode나 Playground로 매일 실습하는 과제를 github에 게시하고 싶었다. 1. Github 계정연결 먼저 github 계정을 연결하자. Xco…
2. 작업과정 블로그를 본격적으로 구축한 과정들을 정리해보았다. 2-1. 기술블로그 컨셉잡기 떠오르는 생각을 정리하기 위해 마인드맵으로 끄적여봤다. 깔끔심플한 디자인, 작성에 불편함이 없어야 하는 조건 등 어떤 기능으로 채워넣을지 고민했었다. 2-2. 내가 원하는 조건 나는 무엇보다 사용자 경험을 해치지 않도록 페이지를 구성하고 싶었다. (링크를 클릭하…
포트폴리오 겸 기술블로그를 구축하면서 고려했던 사항들을 정리해본 글입니다. 자유도 (기능, 디자인 모두) 🧐 커스텀을 자유롭게 하고 싶었고, 디자인과 UI/UX 편의성으로 승부를 두고 싶었다. 왜 기존 플랫폼을 선택하지 않고, 직접 짰는가? 이미 블로그 플랫폼은 매우 많지만, 커스텀의 자유도가 직접 만든 블로그보다 떨어진다는 것이 아쉬웠다. 고민했던 플랫…