TCA에 대한 공부를 시작하기 전에 MVVM에 대해 살펴보다가 아래의 아티클을 발견했다.https://medium.com/@esung/mvc-정말제대로알고계신가요-875f1323f6c0 MVC, 정말제대로알고계신가요?저는 꽤 최근까지 MVC라고 하면 모든 개발자가 같은 개념을 떠올린다고 생각했습니다. 애시당초 디자인패턴이나 아키텍처를 배우는 이유가 다른 개발자, 특히 다른 도메인의 개발자들과의 의사medium.com내가 알고있던 애플에서 사용하는 MVC는 사실은 전형적인 MVC와는 다른 구조라는 내용이였다. 또잉…? 이게 무슨 소리야?? 라고 생각하면서 글을 좀 살펴봤는데, 맞는 말을 던지고 있는 것 같았다.ㅤ그래서 요 충격을 받은 기회에, MVC를 간략하게 짚고 넘어가려고 찾아봤고, 이를 간단히 여기에..
이번에 TCA를 공부하려고 자료를 열심히 보고 있었는데, 아카데미 멘토였던 young의 반가운 글이 보였다!https://gist.github.com/unnnyong/439555659aa04bbbf78b2fcae9de7661 swiftui_mvvm.mdGitHub Gist: instantly share code, notes, and snippets.gist.github.com SwiftUI와 MVVM의 궁합이 썩 좋지만은 않다는 일본 글을 영이 번역을 해둔 글이였는데, 요 번역글이 꽤나 임팩트가 있었는지, 여러 블로그에서 위 아티클을 인용해서 요약해두거나, 저마다의 생각을 덧붙여둔 것을 볼 수 있었다. 이때까지 Presentation 계층의 아키텍처에 대해서 나도 특별한 생각없이 왼손에는 MVC, 오른손..
iOS 취업 공고의 자격요건과 우대요건들을 간략하게 정리해봤다! 다른 취준생들의 시간을 아껴주는 포스트가 되기를 바란다 :) 올해 안에 졸업을 하기 위해서는 나는 올해 하반기에 인턴을 진행해야 한다 ㅜㅜ 막상 iOS 인턴을 지원해보려고 하니, 나에게 프로젝트에 대한 경험은 몇 개 있지만 기술력에 있어서는 경쟁력이 있다고 생각이 들지 않았다. 기획이나 디자인 과정에 참여하고 협업을 할 줄은 알지만, 막상 비동기를 활용한 개발을 능숙하게 처리한다거나 Restful api를 활용한 개발을 진행하지는 않았기에 취준에 어려움이 있을 것 같다는 생각이 들었다. iOS 분야는 인턴이나 신입 포지션도 잘 없는데, 몇 없는 좋은 기회들을 날려버리기는 너무 아쉽다는 생각에 남은 기간동안 내가 준비할 수 있는 부분들을 최대..
이번에 야곰 리펙토링 강의를 들으면서 Swift의 “프로토콜” 이 다른 언어에 비해 굉장히 특이한 컨셉을 가지고 있다는 걸 알았다. 어떻게 보면 abstract class나 interface를 통해 구현하는 OOP의 개념들이 프로토콜에 담겨있는데, 이게 구조체나 enum 타입에 모두 적용되게 한다는게 꽤나 놀라운 일이라고 생각된다. 구조체는 값 타입이라며!!! enum도 값 타입이라며!!! 내용이 나왔던 김에 강의에서 소개해준 관련된 WWDC 영상들을 보면서 어떤 컨셉으로 설계되었고, 어떻게 동작하는 건지 공부하면서 한 번 정리해보려고 한다. What I Learned 이번에 본 [ WWDC 15 의 Protocol-Oriented Programming in Swift ] 는 이미 많은 사람들이 블로그에..
이번에 최적화 과제를 수행하며 여러 글들을 찾아헤매다가 DateFormatter를 사용할 때 마다 생성해서 사용하는게 시간이 많이 잡아먹는 비싼 행위이기 때문에, 그렇게 하는 대신에 DateFormatter를 하나 생성해두고 재활용을 해야한다는 글을 봤다. 생각보다 다양한 글에서 해당 이슈에 대해 다루고 있었고, 직접 실행 시간을 측정하면서 성능을 비교하는 글들도 많았다. ㅤ 해당 글 들에서 다룬 방법을 나도 한 번 적용해보면서 함수의 성능을 측정하는 방법도 배우고 내가 개선한 방법이 유의미한 개선을 가져왔는지도 한 번 테스트해보려고 한다! ㅤ 테스트는 요 사이트에서 사용한 방법을 참고해 시도해봤다. https://sarunw.com/posts/how-expensive-is-dateformatter/ ㅤ..
이번에 야곰 iOS 강의를 들으면서 Array와 ContiguousArray 의 차이에 대해 설명을 들었다. 결론만 요약을 하면 Array는 obj-c 의 NSArray 와 브릿징될 수 있기 때문에, 이에 대비해 준비를 해둔다. ContiguousArray는 브릿징 X → 이를 준비하지 않기에 성능상으로 유리하다. 따라서, 가능한 경우에 ContiguousArray를 사용하는게 좋다! ㅤ 여기 내용을 들으면서 ContiguousArray 라는 것도 처음 알게되었고, objc와 swift 간의 브릿징(형변환)을 염두에 두고 내부적으로 관리를 하고 있다는 것도 처음 알게되었다. 그래서 요런 부분에 대해 조금 더 살펴보고 기록으로 남겨두려고 한다! ㅤ The Swift Array Design 라는 스위프트의 ..
최근에 개발을 공부하면서 ValueObject라는 녀석을 배웠다. 잘만 활용하면 코드를 무척이나 깔끔하게 다듬을 수 있을 것 같아서, 기록으로 남겨두려고 한다. ㅤ Identifier 라는 String을 담는 객체가 있다고 해보자. 여기에서 Idnetifier에는 한글, 영어, 띄어쓰기만 들어갈 수 있다는 규칙이 있다고 가정하자. 만약에 뷰모델에서 가진 함수 중에서 뷰에서 input을 받아와 Identifier 객체를 만들어주는 함수가 있다고 해보자. 그러면 뷰모델은 아래처럼 input 값이 유효한지 검사하고, 유효한 경우에 Identifier 객체를 생성해주어야 한다. ViewModel { func saveIdentifier(input: String) { let pattern = "^[가-힣a-zA-Z..
UIButton의 타이틀은 기본적으로 가운데 정렬이지만, 2줄 이상인 경우에는 아래 이미지처럼 좌측정렬로 변환된다. 2줄 이상인 경우에도 가운데 정렬을 하기 위한 방법을 찾아보았다. 처음 cell을 생성해주는 TableView DataSource 함수내에 titleLabel.textAlignment에 접근해 .center로 설정을 변경해주면 된다. 그러면, 원하는 대로 버튼 내에서도 2줄 이상의 텍스트가 가운데에 정렬된 것을 확인할 수 있다.
(23.11.15.) 예전에 요걸 공개해뒀다가, 약간 부끄럽고 이런걸 외부에 올리는게 좀 그런가..? 라는 생각도 들었어서 글을 숨겨놨었습니다. 그런데, 2기 아카데미 분들을 만나면서 이렇게 작성한 포트폴리오를 보고 도움이 많이 되었다고 해주신 분들을 몇 분 만나뵙고 나서, "아 이게 다른 사람들을 만날 수 있는 도구가 될 수 있겠구나!" 라는 생각이 들어서 다시 올려둡니다 :) 포트폴리오에 수정하고 싶은 것도 많고 부끄러운 것도 있지만 나름 일주일동안 고생하면서 신경써서 내가 했던 것들을 정리한 것도 있고, 원본 그대로를 보존해두고 보여드리는게 좀 더 도움이 될 수 있지 않을까 싶어서 수정 없이 그대로 두고 있어요! 이런 방식의 포트폴리오 말고도 정말 다양한 포트폴리오로 사람들이 아카데미 1기에 합격했..
이번에 공부한 내용은, 스크롤뷰에 대한 내용입니다. 요건 ImagePicker 같은 곳에서 이미지를 Crop 할 때 자주 사용될 법한 기능이라고 생각이 되네요! 이번 강의의 챕터에서는 사진 앨범 앱을 만드는데, 이런 공부를 통해 이미지를 확대하는 기능을 추가하는 방법에 대한 공부를 할 수 있을 거라 생각이 됩니다! 혹시 강의에 관심이 있으신 분이라면, 아래 링크를 눌러주세요. 모든 강의와 강의자료가 높은 수준임에도 무료로 개방되어 있고, 네이버 아이디로도 이용할 수 있을 만큼 진입장벽이 낮은게 장점이라고 생각됩니다. 매 챕터마다 프로젝트로 작은 앱을 만들며 공부를 할 수 있기 때문에, 결과물을 내면서 공부하는데 성취감도 느낄 수 있어서 개인적으로 되게 좋은 것 같아요! https://www.edwith...