apple

Queue Queue(큐)란 영화 티켓을 구매하거나, 프린트 등을 하기 위해 줄을 서는 것과 매우 비슷한 자료 구조입니다. 큐는 ‘FIFO’ 데이터 구조를 사용하여, 처음으로 추가된 요소가 가장 처음으로 제거되는 형식입니다. 따라서 요소들의 순서를 유지하기 위해서 유용하게 사용되는 자료 구조입니다. Commom operations public protocol Queue { associatedtype Element mutating func enqueue(_ element: Element) -> Bool mutating func dequeue()-> Element? var isEmpty: Bool { get } var peek: Element? { get } } enqueue: queue의 가장 뒷 부분에 ..
· Swift
,(콤마)와 &&(앰퍼샌드) 스위프트 문법을 공부를 하다보면 if문에서 ,(콤마)를 사용하는 경우도 있고 &&(앰퍼샌드)를 사용하는 경우도 있었습니다. 하지만 이 둘의 차이점에 대해 몰랐었기 때문에, 이번 기회에 이 둘의 차이점을 알아보고자 합니다. && 우선 &&에 대해 알아보겠습니다. &&는 논리 연산자로, 여러 개의 boolean expression을 하나의 boolean expression으로 연산해줍니다. 예를 들어 true인 boolean A와 false인 boolean B가 있을 때, A && B는 두 개가 모두 참이어야 true가 되고, 그렇지 않으면 false를 반환합니다. 즉, 두 개(A와 B)의 boolean expression을 하나(false)의 boolean expression으..
· iOS
이번 글은 SwiftLint를 적용하는 방법에 대해 알아보도록 하겠습니다. SwiftLint란 SwiftLint란 스위프트 스타일 및 컨벤션을 강제하기 위한 도구로, Kodeco 스위프트 스타일 가이드에 대략적인 기반을 두고 있습니다. 협업을 진행할 때, 컨벤션을 정하고 이를 준수하기 위해 코드 리뷰 등을 진행하지만, 컨벤션에 맞지 않는 경우가 생길 수 있습니다. 이러한 경우를 위해 SwiftLint를 사용하면, 컨벤션에 맞지 않는 부분을 알려주기 때문에 컨벤션을 지키는데 도움을 줍니다. SwiftLint 사용하기 1. SwiftLint 설치하기 우선 SwiftLint를 사용하기 위해선 SwiftLint를 설치해주어야 합니다. brew로 설치할 수도 있고, cocoapods로 프로젝트 자체에 추가해서 사..
· 기타
12월 5일 파이널 쇼케이스를 끝으로 길다면 길고, 짧다면 짧은 Apple Developer Academy @ POSTECH에서의 생활이 종료되었습니다. 나름 바쁘게 살아와서 그런지 9개월이란 시간이 매우 빠르게 지나갔다고 느껴졌는데, 이곳에서 경험한 것들을 까먹지 전에 정리하고자 작성하게 되었습니다. 해당 글은 프로젝트에 대한 자세한 설명보단 각 프로젝트에 대한 전반적인 느낌 위주로 설명하고자 합니다. (프로젝트들에 대한 설명도 작성할 예정인데, 각 프로젝트마다 따로 작성할 예정입니다.) 참고로 밑에서 나타나는 MC는 mini challenge의 약자입니다. Prelude & MC1 해당 기간에는 사실 새로운 사람들과 친해지고, 아카데미에 적응하는 기간이었던 것 같습니다. 오전반만해도 100명의 사람들..
스토리보드가 없이 앱을 개발할 때 UIView, UIViewController, UICollectionView 등을 상속하여 개발을 진행하는데, 이때 override init(frame:)과 required init?(coder:)와 같은 메서드를 선언해주어야 합니다. 왜 이러한 차이가 있을까요? 우선 각각의 이니셜라이저를 확인해보겠습니다. init(frame:) init(frame:) init(frame:) | Apple Developer Documentation Creates a view with the specified frame rectangle. developer.apple.com 공식문서를 보면 특정한 frame rectangle을 가진 뷰를 생성하고 이를 반환한다고 합니다. frame의 원점..
MVC MVC란 Model-View-Controller로 구성되어 있으며, UIKit 프레임워크에 적합한 디자인 패턴입니다. (MVC 패턴을 기반으로 UIKit 프레임워크가 구성되어 있습니다.) MVC는 각자 다른 역할들을 가지고 있습니다. Model 앱에 사용되는 데이터와 비즈니스 로직을 담당하는 함수 등을 정의합니다. ex. 데이터 View 사용자가 볼 수 있는 화면을 구성합니다. UIKit에서의 스토리보드가 대표적인 예시입니다. Model과 View는 직접적으로 접근할 수 없습니다. Controller Model의 데이터를 View에 띄워주는 역할을 합니다. Model과 View의 중간 다리 역할로, Model과 View 사이에서 데이터를 전달해줍니다. 서로 접근할 수 없는 Model과 View는 ..
· Swift
메모리 구조 이번 포스팅은 Swift의 메모리 구조에 관한 내용입니다. 사실 지금까지는 메모리 관리를 신경쓰지 않고 프로젝트들을 진행했었는데, 이번 기회에 공부하여 다음부터는 해당 내용을 적용할 수 있도록 하는 것이 목표입니다. 메모리(RAM)공간은 4가지로 나뉘어져 있습니다. 코드 영역, 데이터 영역, 힙 영역, 스택 영역 다음은 4가지 공간들에 대한 특징입니다. 코드 영역 코드 영역에는 우리가 작성한 소스 코드가 기계어 형태(이진수)로 저장됩니다. CPU는 이 곳에 저장된 명령어를 가져가서 처리합니다. 프로그램의 시작부터 종료까지 메모리에 남아있으며, 컴파일 타임에 결정되고, Read-Only 형태로 저장됩니다. (Read-Only 형태라면 중간에 코드가 변경되지 않기 때문입니다.) 데이터 영역 데이..
· 기타/Error
코코아팟을 설치할 때 에러가 나타나서 이와 관련된 해결 방법을 작성하고자 합니다. 사실 코코아팟 자체의 설치는 어렵지가 않습니다. 그저 터미널에 해당 명령어를 입력해주면 됩니다. sudo gem install cocoapods 그런데 제 맥북에서 다음과 같은 에러가 발생하였습니다. Building native extensions. This could take a while... ERROR: Error installing cocoapods: ERROR: Failed to build gem native extension. current directory: /Library/Ruby/Gems/2.6.0/gems/ffi-1.15.5/ext/ffi_c /System/Library/Frameworks/Ruby.fra..
Dev_Ted
'apple' 태그의 글 목록