[회고] 신입 iOS 개발자가 되기까지 feat. 카카오 자세히보기
반응형

분류 전체보기 495

SOLID in Swift (1): SRP(Single Responsibility Principle)

해당 게시글은 아래 Article을 참고하여 작성되었습니다. https://medium.com/movile-tech/single-responsibility-principle-in-swift-61ee11ee81b5 Single Responsibility Principle in Swift First article of the series of five articles about SOLID and its use with Swift medium.com SOLID란? SOLID는 5개의 프로그래밍 디자인 원칙의 앞글자를 딴 합성어이다. 각 디자인 원칙들은 소프트웨어에 대한 이해와 발전을 돕고 유연성과 유지보수성을 높여준다. 이러한 원칙들은 교수이자 소프트웨어 엔지니어인 Robert C. Martin(a.k.a U..

[UIKit] Diffable Datasource

기존의 DataSource와 UI는 각각 시간에 따라 변경되는 자신만의 버전(truth)을 가지고 있는데, 이것이 맞지 않으면 에러가 발생한다. reloadData를 수행하기 전까지는 중앙화된 하나의 버전(truth)가 존재하지 않아 에러가 발생하기 쉽다. reloadData를 수행하더라도 애니메이션없이 화면을 갱신하게 되기 때문에 사용자 경험을 저하시킬 수 있다. Diffable Datasource 개념 그에 따라 Apple에서 도입한 것이 Differble DataSource이다. performBatchUpdates()같은 복잡한 메소드를 사용하지 않고, apply()라는 하나의 메소드로 관리하게 된다. Snapshot: UI의 버전(truth)를 저장하는 개념이다. 각 section과 item에 대..

🍎 Apple/UIKit 2021.10.20

M1 맥북 CocoaPods pod install error 해결

m1 맥북에서 CocoaPods를 설치하고 사용하다 에러를 마주했다. 설치는 잘되었고, pod init까지도 문제없었다. 하지만 pod install을 수행해 본격적으로 패키지를 다운받으려하니 에러가 출력되며 패키지설치가 되지 않았다. 'Pod installation complete! There is 1 dependency from the Podfile and 1 total pod installed.' 와 같은 메세지가 출력되면서 설치가 완료되는 것이 정상적인 수행인데, 그것이 이루어지지 않았다. 아무래도 m1이 arm 기반 프로세서이기 때문에 다르게 동작하는 부분이 있는 것 같다. 해결방법 터미널을 Rosetta를 사용하여 열고,sudo gem install ffi를 입력해 ffi를 설치 후 폴더로 이..

🍎 Apple/Error 2021.10.03

[Swift] Codable Protocol

Codable 자신을 특정표현으로 변환하거나 변환될 수 있는 타입 쉽게말해 특정표현으로 인코딩할 수 있고, 특정표현으로부터 디코딩될 수 있는 타입이라는 것이다. typealias Codable = Decodable & Encodable 실제로 Codable은 위와 같이 Decodable과 Encodable가 함께 존재하는 형태로 이루어져 있다. 여기서 특정표현은 여러가지가 있을 수 있지만, 주로 다루게 되는 것은 JSON이다. Class, Enum, Struct에서 모두 사용이 가능하다. Codable 프로토콜을 채택한 구조체로 Encoding, Decoding을 해보며 이해해보자. Encoding struct DataModel : Codable { var title : String var number ..

🍎 Apple/Swift 2021.09.02

[Xcode] 다크모드 Color Set 생성

다크모드 Color Set 생성 iOS 프로젝트에서 Assets.xcassets 클릭 후 화면 왼쪽 아래의 + 버튼 클릭 New Color Set을 눌러 새로운 Color Set을 생성할 수 있다. 옵션에서 Appearances를 Any, Light, Dark로 바꾸면 각 모드에 따른 색을 추가할 수 있다. 이제 ColorSet 생성이 완료되었다. Name에서 원하는 이름을 주고 프로젝트에서 활용하면 된다. cf. 이미지도 마찬가지로 Assets.xcassets에서 이미지를 만들고 Apperance 옵션을 수정한 다음, 다크모드에서 열릴 이미지를 첨부하면 처리가능

🍎 Apple/Xcode 2021.08.27

[네이버 부스트캠프 웹모바일 6기] 챌린지 후기

챌린지 후기 4주간의 부스트캠프 챌린지 일정이 끝났다. 기본적으로 수행해야하는 미션 자체도 어려운데, Swift마저 처음이다 보니 정말 매일매일이 챌린지스러웠던 것 같다. 객체지향 프로그래밍, 네트워크, 운영체제 등을 포함한 CS지식을 중심으로 학습이 진행된다. CS지식을 쭉 훑어가다보니, 어떤 CS 분야에서 내가 부족한지 체크할 수 있는 좋은 기회가 되었다. 학습을 진행하면서 어려웠던 부분을 모두 기록해놓았기에, 이를 추후 보충하는 방식으로 나를 더 채워나갈 수 있을 것으로 생각된다. 매일 수행한 미션 코드를 동료들과 공유하며 피드백을 나누게 된다. 사실 내 코드를 누군가에게 보여준다는 것이 굉장히 부끄러웠다. 미션을 나름 잘 수행한 날도 있었지만 엉망으로 코드를 짜는 날도 많았는데, 그런 날이면 내 ..

[Swift] 기초 문법 정리

iOS 개발을 위해 Swift 문법을 공부하다보니, 낯선 개념들이 많이 보였습니다. 이들을 어느정도 정리해야할 필요성을 느껴 정리해둡니다. 참고1 : iOS 프로그래밍을 위한 스위프트 기초(https://www.boostcourse.org/mo122/joinLectures/38564) 참고2 : 애플 개발자 문서(https://developer.apple.com/documentation) 참고3 : Swift 5.5 번역(https://xho95.github.io/swift/programming/language/grammar/2017/02/28/The-Swift-Programming-Language.html) cf. 타언어와 유사하고 기초적인 문법들은 정리하지 않았습니다. optional nil값과 op..

🍎 Apple/Swift 2021.07.18

웹서버와 WAS

웹서버 일반적으로 '서버'라고 하면 서버역할을 하는 컴퓨터를 뜻한다. 하지만 어떤 컴퓨터가 서버역할을 하도록 도와주는 소프트웨어도 서버라는 이름으로 부른다. (=웹서버) 웹서버는 이름 그대로 웹사이트를 제공하는 소프트웨어로 html,css,js 및 기타 asset 파일 등을 사용자에게 보내는 역할을 한다. apache-php-mysql(apm)과 같이 기초적인 구조의 동적 웹은 처리할 수도 있지만 다른 구조는 처리할 수 없는 경우가 많다. 대표적으로 Apache와 NginX가 있다. WAS Web Application Server의 약자 단순히 웹을 제공해주는 것이 아닌 동적 웹페이지 생성과 같이 프로그래밍되어 내장된 작업을 수행한 후 전달하는 기능까지 보유하고 있다. Tomcat을 예를 들자면, 스프링..

🛠 기타/WEB 2021.07.17

Docker란?

서버를 구축하는 것은 귀찮은 일이다. 새로운 환경인 서버에 언어, 웹서버, DB, 자동배포툴 등을 모두 설치해야하기 때문이다. 거기다 개발환경에 따라 도구의 버전 역시 중요하기 때문에 이 역시 신경써줘야 한다. 서버를 운영하다보면 서버를 옮기거나 확장할 일이 많다. 이 때마다 서버환경을 똑같이 구축해주는 것은 상당히 귀찮다. 거기다 다른 사람이 구축한 서버를 처리해야하는 일이 발생할 경우 매우 번거로운 상황이 된다. 또한 한 서버에서 여러 서비스를 돌릴 때 각 서비스의 개발환경이 다른 경우 이를 처리해주기 어렵다. Docker? 이런 서버운영의 어려움을 해결해주는 것이 Docker이다. 개발도구들이 설치된 모습을 '이미지'화하여 DockerHubd에 업로드하고 다운로드한다. 이미지로 저장된..

CI/CD란?

CI/CD란? CI(Continuous Integration) : 지속적 통합 CD(Continuous Deployment) : 지속적 배포 코드 저장소(Github, BitBucket, GitLab)에 코드를 통합시키면 CI로 통합된 코드에 에러가 없는지 체크하고 CD로 배포한다. 설치형 도구인 Jenkins 클라우드형 도구인 Travis CI, Circle CI 등이 있다. 코드 저장소인 Github, BitBucket,GitLab 등에서 자체 제공하는 기능들도 있다. (Github Actions,GitLab CI/CD,BitBucket Pipelines) 설치형 : Jenkins 내 컴퓨터 혹은 서비스가 돌아갈 서버에 직접 설치 후 사용한다. (윈도우, 맥, 리눅스 모두에서 사용 가능) 설치 시 해..

반응형