-
[Git] Git merge 전략 (merge, rebase merge, squash merge)
Git을 이용할 때, 히스토리를 관리하는 방법인데요. 평소에는 보통 혼자 개발을 진행했기 때문에, merge만 이용해서 feature로부터 develop 브랜치로 병합하는 형식으로 진행했었는데요. 하지만 여기에 merge를 하는 방법에도 여러가지가 존재합니다. 대표적으로 3가지의 전략이 있는데요. merge, rebase and merge, squash and merge 이렇게 세 가지 입니다. 각각의 전략이 모두 특징을 가지는데 알고 사용하면 각 브랜치를 관리하는데 유용할 것이라 생각이 듭니다. 그렇다면 먼저 얘기하고 가야할 부분은 왜 굳이 이렇게 여러가지 방법을 알고 있어야할까요..?! 우선 커밋 히스토리 관리가 왜 중요한지를 알아야겠죠 커밋 히스토리(Commit History) 보통 개발자들이 작업..
-
[SWIFT] Swift Method Dispatch - Dynamic, Static
안녕하세요 :) 저희는 매주 월요일 주간 회의를 진행하는데, 희의를 진행할 때 리더님이 주제를 하나씩 가져와주셔서 대화의 장을 마련해주십니다. (덕분에 많은 것을 배우고 있습니다..) 그래서, 오늘 포스팅을 해 볼 주제가 바로 그 때 얘기했던 주제입니다..!! 사실 오늘 회의를 할 때, Method Dispatch에 대해서 들어본 적이 없어서 거의 얘기를 못했는데요 😭 그래서, 회의가 끝나고 혼자서 찾으면서 공부해보았답니다.. 오늘은 Swift의 Method Dispatch에 대해서 알아보도록 하겠습니다. Method Dispatch in Swift 우선 Method Dispatch란 Swift에서 여러분들이 Method를 호출할 때, 현재 메모리에서 어떻게 각 메소드를 실행시키고 어떤 메소드를 실행시킬..
-
[iOS] 화면전환 애니메이션 Custom - UIViewControllerAnimatedTransitioing, UIViewControllerTransitioningDelegate
오늘은 화면 전환 애니메이션을 커스텀하는 방법에 대해 알아볼거에요~~ 대표적으로 App Store에 CollectionViewCell의 클릭했을 때, 화면이 커지면서 전환되는 효과가 대표적일 것 같아요. 저도 이 효과를 보면서 이건 어떻게하지...? 궁금했었는데 자료를 찾아보고 한 번 커스텀을 해보았습니다. 그렇다면 우선 어떻게 사용하고 어떤 기능을 하는지 알아볼게요 🤗 우선 사용하기 위해 사용해야하는 두 가지 대표적인 객체가 있습니다. UIViewControllerAnimatedTransitioning UIViewControllerTransitioningDelegate 그렇다면 각각의 역할을 알아볼까요. UIViewControllerAnimatedTransitioning 애플 개발자 문서에 의하면 커스..
-
[GIT] Merge vs Rebase 차이
GIT을 프로젝트를 하며 다들 자주 사용하시는데, 혹시 브랜치를 병합할 때, Merge와 Rebase을 사용해본 경험이 있으신가요⁉️ 저는 주로 Rebase fork해온 프로젝트를 upstream에 맞게 동기화하고 싶을 때 사용했는데요. 정보를 fetch upstream을 통해 가져오고 rebase을 통해서 병합을 했었어요. Merge 얘는 upstream이 없고 origin만 있는 상태에서 Git을 관리할 때 사용했었던 방법이에요. 사용하면서 어떤 상황에 사용하는지 형태만 보고 사용했었지, '왜 이걸 사용하지'는 생각을 해보지 않았던 것 같아요. 그래서 이번 기회에 동작 원리를 알아보고 정리해보려고해요~~ 기회가 된다면 다음 GIT 포스팅은 오픈소스를 관리하는 방식인 fokr한 저장소를 관리하는 방법을..
-
[iOS] Core Data 이용 데이터 관리하기 (2/2)
이전 글에서 Core Data을 사용하는 방법을 직접적으로 보셨죠⁉️ 대략적인 설명은 있었지만, 주로 사용하는 방법 위주의 간단한 설명들이었어요. 그렇다면 이번 글에서는 각각의 레퍼런스들이 어떤 역할을 하는지 알아야겠죠? 한 번 같이 알아봐요 🙌 이전 글을 안 보고 오신 분들 여기서 참고해주세요. Core Data 이용 데이터 관리하기 (1/2) 이번에 최근 검색어 기능을 구현해야하는 프로젝트가 있었어요..‼️ 최근 검색어의 경우에는 서버에서 주는 값이 아니고 사용자의 검색 기록이기 때문에 iPhone에 자체적으로 저장되어야 할 것 dongminyoon.tistory.com 저번 시간에 Core Data에 접근하는 방법을 생각해볼까요? 1️⃣Core Data Model에 대한 Container을 AppD..
-
[iOS] Core Data 이용 데이터 관리하기 (1/2)
이번에 최근 검색어 기능을 구현해야하는 프로젝트가 있었어요..‼️ 최근 검색어의 경우에는 서버에서 주는 값이 아니고 사용자의 검색 기록이기 때문에 iPhone에 자체적으로 저장되어야 할 것 같더라구요 원래는 iPhone에 자체적으로 저장이 필요할 경우 UserDefualt을 사용해서 저장을 했었어요. 근데 이번의 경우에는 최근 검색어를 10개만 가져오거나 시간 순으로 가져오거나 Model의 형식으로 저장이 되어야 하기 때문에, UserDefault로는 무리가 있다고 생각이 들었어요. 그렇기 때문에 Core Data을 한번 사용해봤습니다. 아... 저장하기 위해서 또 Core Data, Realm, FMDB등의 방법이 있더라구요..‼️ 저는 우선 iOS 기본 프레임워크에 있는 것을 사용하고 싶어서 Core..
-
[iOS] Core Location 사용 위치 정보 얻기
이번에 공모전을 준비하며 개발을 하다보니 iPhone을 기반으로 위치를 얻어와서 지도에 표시해야하는 작업이 있었어요. 찾아 보니, iOS 기본 Framework에서 제공하는 기능이 있더라구요‼️ 기본으로 제공하는 Framework을 이용해서 현재 자기의 위치를 받아오는 작업을 해보겠습니다. 우선 여러분들 혹시 iOS Architecture에 대해 알고계시나요⁉️ 혹시 위와 같은 그림을 보신적 있으신가요? 우선 위치 정보를 iPhone에서 얻어오기 전에 어떤 Framework을 사용해야하는지 알아야할 것 같아요‼️ 우선 저희가 사용해야할 Core Location은 Core Service 계층에 속해있답니다. 그렇다면 각각의 계층에 대해 간단히 어떤 Framework가 있고 어떤 역할을 하는지 알아볼게요. ..
-
[2023년 회고] 3년차 iOS 개발자
2022년도 회고를 하고 넘어갔어야 하는데, 하지못했고 2023년은 여러가지로 변하고 또 신년에는 마음가짐을 새롭게하고 정비하자는 의미에서 올해를 돌아보고 2024년을 계획해보려고 3년차 개발자의 회고를 작성해보려고 합니다 👊🏻 회사원으로서 2024년 1월 25일부로 네이버제트에 입사해서 근무를 한지 만으로 3년이 흐르게 되었다. 그래도 나름 한 회사에 오래 있었고 그동안 많은 변화들이 있었는데 2023년은 가장 많은 변화가 있었던 해였던 것 같다. 조직개편 우선 가장 큰 변화는 아무래도 조직개편이었던 것 같다. 처음에 조직개편을 한다는 소문이 있을 때, iOS 개발자임은 변화가 없으니 나에게는 크게 변화가 없을 것 같다고 느꼈다. 하지만 조직개편이 1년에 2번정도 있었는데 생각과는 달랐다. 나의 업무에..
-
[Design Pattern] ReactorKit이란?
그동안 개발을 하면서 MVVM + RxSwift의 Architecture을 사용해왔었는데요. '또 새로운 것을 해봐야겠지~'하면서 ReactorKit이라는 프레임워크를 접하고 공부해보려고 합니다 ㅎㅎ 그래서 오늘은 ReactorKit을 간단하게 사용해보면서 느낀점과 어떤 Architecture인지를 포스팅해보겠습니다~ ReactorKit이란? 우선 ReactorKit은 제가 느끼기엔 어떤 Design Pattern이라 말하기는 조금 애매한 것 같구요. RxSwift + MVVM을 프레임워크화해서 앱의 Architecture를 통일화해준 프레임워크 인 것 같습니다(?) 이건 제가 생각한 느낌이구요 정확히는 단방향 앱을 위한 프레임워크라고 정의하고 있습니다. 여기서 단방향이라는 키워드가 ReactorKit의..
-
[iOS] Custom Framework 만들기
오늘은 iOS에서 Custom Framework를 만드는 방법에 대해 작성을 해보려고 합니다. 사실 예전에 피드백(?)을 받을 때, Framework 단위로 코드를 작성을 하는 연습을 하면 좋다는 얘기를 들었는데 아..(?) 느낌정도만 왜 좋은지 이해했었는데 몸으로 느끼기 위해서 직접해보겠습니다. 아마 Framewokr 단위로 작성하면 코드 자체가 모듈 단위로 작성되기 때문에, 아무래도 다른 코드와의 Coupling(결합도)가 줄어들고 Cohesion(응집성)은 높아지기 때문이겠죠~ 또한, 코드의 퀄리티 외에도 공부를 해보니 장점이 있는 것 같은데, 이건 다음 포스팅에서 작성해보겠습니다. 오늘은 먼저 어떻게 Custom Framework를 만들 수 있는지 알아보겠습니다 ㅎㅎ Custom Framework..