[UIKit] ViewController의 생명주기와 콜백 타이밍
·
Dev log/iOS
🏁 개요뷰의 라이프사이클은 앱을 생성할 때 가장 먼저 보이는 것중 하나이다. 언제 나오냐고요? 여러분이 바로 앱을 생성하자마자 나오는 코드중 ViewDidLoad()함수가 뷰 라이프사이클을 관리하는 함수 중 하나이다. 그만큼 뷰의 생명주기에 대해서 이해하는 것은 앱을 설계하는데 있어서 중요한 요소중 하나이고, 오늘은 이 ViewController의 생명주기에 대해서 스스로 다시 학습해볼겸 내용을 정리해볼까 한다.🤔 ViewController?ViewController의 생명주기를 알기 이전에 ViewController라는 친구에 대해 간단하게 알아볼 필요가 있다.   Apple Developer Document - View ControllerView Controller는 단일 Root View를 관리..
[부스트캠프 웹・모바일 9기] 챌린지 수료 후기 - iOS
·
Dev log
🤔 Who am I아마 부스트캠프에 대해 후에 찾아보는 사람들은 그 사람의 부캠 이전의 스펙? 포토폴리오가 어땠는지 궁금해할것같다. 그래서 내가 이 챌린지 과정을 시작하기 전에는 어땠는지 나 스스로도 떠올릴겸 써보려 한다. 나는 누구였나. 대학교 4학년때까지 유료 부트캠프(라이징캠프 11기 수료생) 1회와 졸업프로젝트가 끝이었다. 실상 Swift에 대한 실력은 좋진 않았고, 그렇다고 UIKit이나 SwiftUI의 개발 실력이 좋은것도 아니었다. 그렇게 학교를 수료를 한 이후에 이때까지의 경험을 나름 잘 표현하여 좋은 기회로 팀프로젝트 리팩토링 멤버로 들어가서 나름의 프로젝트 경험과 실력을 쌓고 있었다. 해당 프로젝트에서 실제 진행기간은 약 2달 정도였던것 같다. 사실 이때까지만 해도 적당히 이 상황에서..
[DevLog] 부스트캠프 챌린지 3주차 회고
·
Dev log
💬 3주차 주절주절이번주는 부스트캠프의 커리큘럼 상 팀으로 하는 것이 많았다. 팀으로 진행을 하다보니 자연스럽게 소통을 자주 하게 됐다. 평소 본인은 소통을 잘 한다 생각했는데, 이번 팀 세션을 진행하면서 조금 느꼇던 점들이 있었다. 핵심은 '소통만 잘하지 말자' 였다. 첫 팀 세션때 같이 팀이 되셨던 분이 있었는데, 이번 부스트캠프를 진행하면서 가장 베이스가 탄탄하셨던 분이라 느꼈던 분이었다. 당시 소통을 하면서 나의 부족했던 지식으로 인해 피드백을 적극적으로 해드리지 못했고, 반대로 피드백에 대한 내용에 대해서 빠르게 이해하지 못했던 순간이 정말 아쉬웠다. 이런 부족은 또 페어 프로그래밍때 볼 수 있었다. 부족했던 지식으로 인해 순조로운 드라이빙이나 네비게이팅이 어려웠었다.이러한 내 부족으로 인한 ..
[DevLog] 부스트캠프 챌린지 2주차 회고(feat. 회고는 어떻게 작성해야 되나?)
·
Dev log
포스팅의 이유금요일에 마지막으로 주어지는 미션중 하나는 바로 위클리 회고 작성하기이다. 사실 이걸 미션처럼 받아들일 필요도 없고, 정말 편하게 작성하는 세션이라 생각한다. 하지만 이런것 하나하나 부캠적 사고로 생각해보면 어떨까 싶어서 이번주 회고는 이런 제목을 시작으로 포스팅을 시작해봤다.🤔 회고는 왜 쓰는걸까?우선 회고란 무엇일까?뒤를 돌아본다 라는 의미를 가진 회고이다. 그렇다 회고는 뒤를 돌아보는거다! 그러면 우리는 왜 뒤를 돌아봐야 되는걸까? 우리는 한주간 정말 많은 일들을 하고, 다양한 문제들이 발생하며, 여러 실패들을 마주한다. 각자가 생각하는 한주의 성공적 요인과 실패적 요인들이 다수 존재할것이다. 회고 프로세스를 하게 된다면 우리의 한 주(위클리 회고 기준)를 되돌아 보면서아쉬웠던 점은 ..
[DevLog] 부스트캠프 챌린지 1주차 회고
·
Dev log
🚀 부스트캠프 왜 참여했어?변화하는 기술을 스스로 해결하고 싶은 열망 예전부터 iOS 공부를 하면서 꼭 참여하고 싶었던 부트캠프가 몇가지가 있었다. 예전에는 그 부캠이 부캠이거니 생각했지만, 점차 내가 스스로 공부를 하다보면서 느끼게 된 것이 무엇을 알려주는것은 그 당시만 유용한 것 이였다. 개발자라면 개발 과정에서 많은 순간을 부딪힌다. 그리고 문제를 해결하는 방식 또한 다양하다. 하지만 많은 개발을 시작한지 얼마 안된 개발자들이 흔히 하는 결정은 해당 구현을 어떻게 할것인지 알아보고 그걸 복붙하거나, 조금 안된다면 개조를 좀 하여 적용하는 것이란 거다. 지금 당장에는 문제를 해결할 수 있지만 만약에 조금이라도 유사하지만 틀어진 상황을 마주했을 때 또 다시 알아보고, 또 다시 복붙하고, 또 다시 개조..
[SwiftUI] SwiftUI에서 MVVM 패턴의 딜레마
·
Dev log/iOS
이어서이전 포스팅 [SwiftUI] MVVM 아키텍처 패턴 이해하기개요프로젝트를 할때면 여러 아키텍처 패턴에 대해 고민을 하게된다. 이번에 하는 프로젝트에서는 SwiftUI에 올바른 아키텍처 패턴이 무엇일지에 대해 고민하면서 SwiftUI 자체의 프레임워크 특성0hooni.tistory.com 지난 포스팅에서 MVVM 패턴을 이해하기 위한 내용들을 정리했고, 이번 편에서는 SwiftUI에서의 MVVM 패턴에 대한 딜레마에 대해 다뤄볼까 한다. 아마도 한번이라도 SwiftUI에 MVVM 패턴을 적용하기 위해 구글링을 해봤다면 아주 침이 고이는 포스팅 제목이 보인다. 그건 바로 "Stop using MVVM for SwiftUI". 해석하자면 SwiftUI에서 MVVM 패턴을 멈추라는 얘기이다. 다들 이게 ..
[SwiftUI] MVVM 아키텍처 패턴 이해하기
·
Dev log/iOS
개요프로젝트를 할 때면 여러 아키텍처 패턴에 대해 고민을 하게 된다. 이번에 하는 프로젝트에서는 SwiftUI에 올바른 아키텍처 패턴이 무엇일지에 대해 고민하면서 SwiftUI 자체의 프레임워크 특성이 MVVM을 반영하고 있었기에 No 패턴을 고민하기도 했었고, 많이 상용되고 있는 MVVM패턴, 새로 알게 된 TCA 패턴 등 여러 고민을 했지만 결국에는 많이 사용되는 MVVM패턴을 적용하게 됐다. 이번 글에서는 MVVM 패턴에 대한 올바른 이해를 가져감과 동시에 SwiftUI를 이용하여 구현중인 프로젝트에 MVVM의 적합성을 판단하며 내용을 정리해보려 한다. MVVM패턴이란?MVVM(Model - View - ViewModel) 패턴은 SW 디자인 패턴중 하나로, 특히 GUI 프로그램 개발에서 많이 사용..
[Xcode] .xcodeproj, .pbxproj의 역할과 프로젝트 충돌 이유
·
Dev log/iOS
개요이번 프로젝트를 하면서 유난히 Github에서 .xcodeproj 파일로 인해 PR Merge 이후 develop 브랜치에서 팀원마다 프로젝트 파일에 대한 문제가 지속적으로 생겼다. 분명 Merge를 할 때 conflict를 다 처리를 했는데도 지속적으로 이러한 문제가 생겼다. 그래서 이번 포스팅을 통해서 대체 왜 프로젝트 파일이 충돌되는지, 앞으로 어떻게 처리할 것인지에 대해서 다뤄볼까 한다. .xcodeproj 파일우리가 프로젝트를 만들면 친절하게 Xcode에서는 프로젝트 파일을 생성해 준다. 아마 Github로 Swift 프로젝트를 관리해보신 경험이 있으시다면 아시겠지만, 해당 프로젝트 파일을 깊게 보시면 자주 문제를 일으키는 어떤 파일을 볼 수 있다. 바로 .pbxproj 파일이다. .pbxp..
[SwiftUI] @State, @Binding 정리
·
Dev log/iOS
소개SwiftUI를 처음 시작하면 자주 보게되는 @State 와 @Binding 이라는 속성이 있다.지금까지 이 둘의 사용법은 알고 있었지만, 이번에 블로그 포스팅을 하며 공식 문서를 뜯어보며 좀 더 자세히 알아보려 한다.@State개요@State 는 View 내에서 변경 가능한 상태를 나타낸다.해당 속성에 변화가 생기면 SwiftUI가 자동으로 View를 업데이트 한다.활용주로 View 안에서 특정 상태를 추적하고 업데이트하는 데 사용된다.View가 자체적으로 상태를 관리할 수 있게 한다.코드struct ContentView: View { @State private var counter = 0 var body: some View { VStack { Text("..
[CS] 프로젝트에 어떤 라이선스를 적용해야 될까?
·
Dev log/CS
개요이번에 새롭게 프로젝트를 시작하게 되었다. 초반 프로젝트 구성을 위해서 이런저런 얘기를 하다가 라이선스에 대한 부분을 언급하게 됐는데, 사실 뭔가 라이선스 = 저작권? 이라는 정도로만 가볍게 이해하고 있었는데 조금 찾다보니 생각과는 다르게 적용이 되는것 같아 지난 학기 오픈소스 수업때 들었던 내용과, 이번에 찾아보는 내용들을 잘 정리해서 포스팅을 해보려 한다.저작권과 라이선스우리가 프로젝트에 적용할 라이선스를 정하기 위해서는 우선 헷갈리는 개념인 저작권과 라이선스에 대해 생각해볼 필요가 있다.저작권창작물을 만든 사람에게 부여되는 권리창작물이 만들어지는 순간 자동으로 발생라이선스저작권자가 자신의 저작물을 타인에게 사용할 수 있도록 허락하는 계약라이선스에는 저작권자가 허락하는 이용 범위, 조건, 기간 등..
0Hooni