Total 45

나의 두번째 APP-JAM을 마치며

작년 회고에 이어 지금도 여전히 팬데믹 상황이다. 하지만 2021년은 벌써 반환점을 돌아 8월을 향해 가고 있다. 이 8개월이라는 시간 동안 나는 솝트를 하며 지난 학기와 다르게 졸업 작품과, 취업 준비도 병행 해야 했기 때문에 여느 때보다 더 정신없이 살아온 것 같다. 그래도 무사히 두 번째 APP-JAM을 마칠 수 있었다. 그리고 그간 많은 일이 있었다. BE SOPT(28기) OB 지원 SOPT를 하면서 경험하고 얻은 것들이 많았기 때문에 27기 종료 후 28기에도 지원하기로 마음을 먹었었다. 하지만 이번엔 iOS가 아니라 서버파트로…! 지원하였다. 그 이유에는 뭐 여러 가지가 있었지만 가장 큰 이유는 "경험해 보고 싶어서", 구체적으로는 "클라이언트로 개발을 하다 보니 서버 개발이 궁금해져서" 였..

회고 2021.07.27

iOS) ARC(Auto Reference Counting)

오늘은 이름부터 멋드러지는 ARC에 대해서 공부하고자 합니다 :) 1. ARC란 ARC란 Automatic Reference Counting의 준말로써, 자동 참조 카운트라는 의미입니다. ARC가 있기 때문에 개발자는 별도로 메모리 관리를 위해서 인스턴스들의 참조를 직접 관리하며 해지해주지 않아도 됩니다. 무슨 말이냐면..! 모든 기기에는 메모리가 존재하고 이러한 메모리를 적절히 사용하여 작업을 처리해야합니다. 앱에서도 마찬가지로 앱의 메모리 사용을 관리해야 하는데, Swift에는 고맙게도 이를 알아서 관리해주는 ARC라는 녀석이 존재하는 것입니다! ARC는 자동으로 참조 횟수를 관리하기 때문에 ARC가 알아서 더 이상 사용하지 않는 인스턴스를 메모리에서 해지합니다. 때문에 개발자가 메모리 관리에 신경 ..

iOS 2021.07.12

Git) merge? rebase?

여러분들은 merge와 rebase에 대해 잘 알고 계셨나요? 저는 merge는 알았어도 rebase에 대해서는 잘 몰랐기에 한번 공부해보려구 해요! git history 깃으로는 많은 사람들이 자신의 개인 프로젝트나 작업물들을 관리하고 협업을 진행합니다. 그렇기 때문에 그 과정 속에서 여러 개의 브랜치가 뻗어있고 커밋이 기록되고 합쳐지곤 하죠. 이러한 기록들을 볼 수 있는게 git history입니다. 이걸 관리하는게 필수는 아니지만 협업을 할 때에 보다 직관적으로 history가 관리되면 개발자간 더 좋은 개발경험을 할 수 있겠죠? git history가 그래서 관리하면 좋다는건 알겠는데 지금까지는 정말 소규모의 협업만을 경험해왔고 그래서 관리할 필요성을 못느꼈을 수 있습니다. 안해도 깔끔하니까요. ..

Git 2021.06.20

iOS) TestFlight? App Store 등록? 배포를 위한 준비과정 (2-실습편)

iOS) TestFlight? App Store 등록? 배포는 어떻게 하는거지? (1-개념편) 들어가며 개발자 계정을 구매한 이후에도 AppStore나 TestFlight에 앱을 배포하는 과정에는 많은 것들이 필요합니다. 오늘은 그 과정 속에서 필요한 것들이 무엇인지, 왜 필요한지 알아보도록 하겠습 snowee.tistory.com 본 포스팅의 전 글에서 개념을 공부해보았습니다! 아직 읽지 않으신 분들은 본 포스팅의 단계가 이해되지 않으실 수 있으니 읽어보고 오시는 것을 추천드립니다! 개념을 익혔으니 실제로 배포를 위한 과정을 밟아볼까요? 전체적인 과정은 다음과 같습니다. "CSR 발급 신청" > "CSR 발급" > "발급된 CSR로 인증서 발급 신청" > "인증서 발급" > "발급된 인증서로 Provi..

iOS 2021.06.11

iOS) TestFlight? App Store 등록? 배포를 위한 준비과정 (1-개념편)

들어가며 개발자 계정을 구매한 이후에도 AppStore나 TestFlight에 앱을 배포하는 과정에는 많은 것들이 필요합니다. 오늘은 그 과정 속에서 필요한 것들이 무엇인지, 왜 필요한지 알아보도록 하겠습니다! 먼저, Apple Developer Program에 enroll하게 되면 TestFlight나 AppStore배포만 할 수 있는 것이 아닙니다! 비싼만큼..할 수 있는 것들이 다양하게 있으니 하단 링크를 방문하여 읽어보시는 것을 추천드립니다! 포함 사항 - Apple Developer Program 멤버십 세부 사항 멤버십 등록 시 Apple 플랫폼을 사용하는 전 세계 10억 명 이상의 고객을 위한 소프트웨어를 제작하고 제공하는 데 필요한 모든 도구, 리소스 및 지원을 이용할 수 있습니다. dev..

iOS 2021.06.11

iOS) TableView, CollectionView의 변화를 처리하는 방법

들어가며 TableView와 CollectionView는 거의 뭐 운명공동체라고 봐도 무방 할 만큼 정말 많이 사용되는 녀석들입니다..! 그래서 우리는 개발을 하다보면 TV, CV의 내부 데이터들이 추가되고 삭제되어 뷰가 변경되는 일이 자주 발생하죠 오늘은 별 생각 없이 reloadData()만 사용하던 제 자신을 반성하며 언제, 어떤 메소드를 사용해야 가장 좋은 것인지! TableView, CollectionView의 변화을 처리하는 방법에 대해서 알아보도록 하겠습니다! 제가 알아 볼 메소드들을 크게 분류하면 다음 3가지 입니다. 1. reloadData() 2. beginUpdates(), endUpdates() - table view 3. performBatchUpdates(_:completion:..

iOS 2021.05.05

Swift) 사용하면 유용한 고차함수

고차함수의 코드를 이해하려면 클로저에 대해서 먼저 알아야 합니다. 아래의 제 포스팅이나 구글링을 통해 공부해보면 좋습니다! Swift) 고차함수, 클로저 오늘은 들어도 까먹고 자꾸만 헷갈리는 고차함수, 클로저 개념에 대해서 한번 짚고 넘어가려 합니다. 자 일단 고차함수가 뭐냐..면 고차함수: '다른 함수를 전달 인자로 받거나 함수 실행의 결 snowee.tistory.com map map 함수는 컨테이너 내부의 기존 데이터를 변형하여 새로운 컨테이너를 생성합니다. 시간복잡도: O(n), n은 컨테이너의 길이 우리가 흔히 사용하는 자료구조인 Array, Set 그리고 Dictionary와 같은 자료구조들이 일종의 컨테이너라고 할 수 있습니다. - map은 이렇게 사용합니다 let numbers: [Int]..

Language/Swift 2021.04.16

Swift) Escaping Closure(@escaping)

들어가며 Swift) 고차함수, 클로저 오늘은 들어도 까먹고 자꾸만 헷갈리는 고차함수, 클로저 개념에 대해서 한번 짚고 넘어가려 합니다. 자 일단 고차함수가 뭐냐..면 고차함수: '다른 함수를 전달 인자로 받거나 함수 실행의 결 snowee.tistory.com 저번 글에 이어서..원래는 바로 자주쓰이는 고차함수의 종류에 대해서 알아보려 했는데, 그 전에 Escaping Closure에 대해서 먼저 공부하려고 합니다! 클로저의 개념에 대해 아직 모르신다면 위 링크를 먼저 방문하시고 읽는것을 추천드립니다 :) Escape는 다들 아시다시피 "탈출하다."라는 뜻입니다. 마찬가지로 Escaping Closure(@escaping) 역시 그 의미를 따라서 "함수가 끝난 뒤에 실행되는 클로저"입니다. 좀 더 직관..

Language/Swift 2021.04.16

Swift) 고차함수, 클로저

오늘은 들어도 까먹고 자꾸만 헷갈리는 고차함수, 클로저 개념에 대해서 한번 짚고 넘어가려 합니다. 자 일단 고차함수가 뭐냐..면 고차함수: '다른 함수를 전달 인자로 받거나 함수 실행의 결과를 함수로 반환하는 함수'를 뜻합니다. 자 "함수를 전달인자로 받거나, 함수 실행의 결과로 반환받는다" 라고 했죠? 음..예전에 JS 1급 객체에 대해서 포스팅 했던 이 글이 떠오르네요 반환 타입 in 실행 코드 } Swift로 프로그래밍을 하면서 자주 만들게 되는 Alert에 action을 부여하게 되는 상황에서 우리는 클로저를 자주 목격합니다. // 1. 처음 let action = UIAlertAction(title: String?, style: UIAlertActionStyle, handler ((UIAlert..

Language/Swift 2021.04.16

iOS) CALayer, UIView에서의 Layer객체

iOS에서 Graphic 요소들을 그려내기 위해 존재하는 것들 Core Graphics 에서 UIKit 으로 갈 수록 간편해지고 코드량도 줄었지만 사용할 수 있는 기능은 제한된다. 반면 저수준의 프래임워크는 보다 많은 기능을 사용할 수 있지만 UIKit, AppKit 에서 기본적으로 제공하는 기능들을 직접 구현해야하는 경우가 생긴다 가운데 보이는 OpenGL은 iOS 디바이스의 Graphics Hardware와 가장 빠르고 직접적인 접근을 지원한다. 하지만 그만큼 간단한 작업조차 굉장히 많은 양의 코드를 필요로 하기 때문에 효율성이 떨어진다. 비효율적인 OpenGL을 보완하기 위해 Core Graphics와 Core Animation이 존재한다. Core Animation이 제공하는 요소 중 오늘의 주제..

iOS 2021.04.08