-
[GIT] Merge vs Rebase 차이
GIT을 프로젝트를 하며 다들 자주 사용하시는데, 혹시 브랜치를 병합할 때, Merge와 Rebase을 사용해본 경험이 있으신가요⁉️ 저는 주로 Rebase fork해온 프로젝트를 upstream에 맞게 동기화하고 싶을 때 사용했는데요. 정보를 fetch upstream을 통해 가져오고 rebase을 통해서 병합을 했었어요. Merge 얘는 upstream이 없고 origin만 있는 상태에서 Git을 관리할 때 사용했었던 방법이에요. 사용하면서 어떤 상황에 사용하는지 형태만 보고 사용했었지, '왜 이걸 사용하지'는 생각을 해보지 않았던 것 같아요. 그래서 이번 기회에 동작 원리를 알아보고 정리해보려고해요~~ 기회가 된다면 다음 GIT 포스팅은 오픈소스를 관리하는 방식인 fokr한 저장소를 관리하는 방법을..
-
[Swift] Codable (2)
저번 Codable (1) 글에 이어서 이번에는 좀 더 심화된 사용법에 대해 알아보려고 합니다. [Swift] Codable (1) 블로그에 너무 소홀했는데, 오랜만에 정신을 차리고 다시 포스팅을 진행해보려고 합니다 🥲 오늘은 그동안 스터디를 진행하면서 이 부분은 꼭 따로 공부해서 써봐야지 했던 부분인 Codable에 관 dongminyoon.tistory.com 평소에는 이렇게까지 사용할 수 없을 수 있는데, 분명 알아두면 언젠가는 꼭 쓸일이 있을 것 같아요 🙃 Container란? Container는 우리가 디코딩 & 인코딩을 하기 위한 Context라고 생각하면 될 것 같습니다. 각 기능을 위한 데이터의 구조(?) 정도로 저는 크게 이해했는데, 여기서 저희가 사용할 수 있게 크게 3가지 흐름으로 ..
-
[2021년 회고] 입사 1년차 주니어 개발자
정말 많은 성장을 할 수 있었던 한 해였고 동시에 아쉬운 부분이 있었기에 이를 기록하고 내년에는 더 성장하기 위해 2021년을 돌아보며 입사 1년차 개발자의 회고를 작성해보려고 합니다 👊 회사생활 2021년 1월 25일 짧다면 짧고 길다면 길었던 취준 생화을 끝내고 개발자로서 취업을해서 회사에 입사하게 되었다. 학생이었던 그 동안의 생활과는 달리 회사에 입사하며 환경이 바뀌었기 때문에, 많은 것들이 바뀌었고 많은 일들이 있었다. 어느 회사가 안바쁠까 싶긴 하지만 신입으로서 많은 업무를 맡아서 진행하고 경험해 볼 수 있는 회사였기에 규모가 큰 프로젝트부터 많은 신규 피쳐들을 개발하는 값진 경험을 하며 많은 성장을 할 수 있었다. 1분기 (1 ~ 3월) 특히 신입으로 처음 입사를 했을 때를 돌아보면 가장 막..
-
[RxSwift] Operator란?
오늘은 간단하게 RxSwift에서 유용하게 사용되는 Operator들에 대해서 어떻게 동작하는지 알아보겠습니다~ RxSwift Operator Operator를 이용하면 Observable로 들어오는 이벤트들을 여러가지 방식으로 연산이 가능하게 됩니다. 여러가지 Operator 중 ReactiveX에 있는 범주에 따라 자주 사용하는 Operator를 알아보겠습니다..!! 크게 3가지로 나누어서 알아보겠습니다. Transforming Observables Filtering Observables Combining Observables Transforming Operators 1. map 방출된 이벤트를 특정 함수를 적용하여 새로운 이벤트로 변형하여 방출시킵니다. (Swift의 map 함수와 동일합니다.) O..
-
[SWIFT] Swift Method Dispatch - Dynamic, Static
안녕하세요 :) 저희는 매주 월요일 주간 회의를 진행하는데, 희의를 진행할 때 리더님이 주제를 하나씩 가져와주셔서 대화의 장을 마련해주십니다. (덕분에 많은 것을 배우고 있습니다..) 그래서, 오늘 포스팅을 해 볼 주제가 바로 그 때 얘기했던 주제입니다..!! 사실 오늘 회의를 할 때, Method Dispatch에 대해서 들어본 적이 없어서 거의 얘기를 못했는데요 😭 그래서, 회의가 끝나고 혼자서 찾으면서 공부해보았답니다.. 오늘은 Swift의 Method Dispatch에 대해서 알아보도록 하겠습니다. Method Dispatch in Swift 우선 Method Dispatch란 Swift에서 여러분들이 Method를 호출할 때, 현재 메모리에서 어떻게 각 메소드를 실행시키고 어떤 메소드를 실행시킬..
-
[SWIFT] URL encoding (URL nil이 될 때 - addingPercentEncoding)
URL에 한국어를 넣거나 다른 특수문자들을 넣어야 될 때가 있는데요. 이럴 때, URL(string: someStr)을 이용하면 nil 값으로 변형되는 때가 있습니다. 저도 예전에 카카오 오픈 API를 이용해서 장소를 검색할 때, 분명 request에 해당하는 모든 정보를 넣었는데도 요청이 실패해서 삽질을 했던 적이 있는데요 😂 그 때, 정확한 URL은 기억나지 않는데 아마 이런 방식이었습니다. www.naver.com/search?location=명동 이렇게 URL로 get 요청을 보내면 분명 response가 와야했는데, 오지 않는 상황이었습니다. (404 에러가 났죠 ㅠㅠ) 그래서 URL로 바꾸는 부분에서 찍어보니 nil 값이 나왔습니다. (그러니깐 404가 나올 수 밖에..) let url = U..
-
[RxSwift] Hot & Cold Observable
Reactive Extension 즉, Rx의 개념에서 대표적으로 사용되는 개념인데요. Hot & Cold 모두 느낌으로는 잘 알고 있지만 이를 한번 정리해보는 것도 좋을 것 같아서 정리해보려고 합니다. 우선 ReactiveX.io에 나와있는 Hot & Cold에 대한 설명을 보면 다음과 같습니다. “Hot” and “Cold” Observables When does an Observable begin emitting its sequence of items? It depends on the Observable. A “hot” Observable may begin emitting items as soon as it is created, and so any observer who later subscribe..
-
[iOS] 앱에서 Web 보여주기 (WKWebView, SFSafariViewController, Safari 열기)
iOS에서 앱 내에서 Web을 보여주어야 하는 경우가 있습니다. 이 때, 크게 3가지 방법이 있는데요. 이 방법에 대해 간단히 사용법을 알아보고 공부해보겠습니다. 일단 UIWebView를 사용하는 방법도 있는데, 이제는 Deprecated 된 것으로 알고있는데요. (저도 사용해본적은 없습니다..) 그래서 UIWebView를 제외하고 3가지의 방법을 알아보려고 합니다. Safari 앱을 열어서 보여주기 SFSafariViewController를 사용하여 보여주기 WKWebView를 사용하여 보여주기 Safari 앱 가장 간단한 방법인데요. 그냥 아이폰에 설치된 Safari를 열어서 웹 페이지를 로딩하는 방법입니다. 코드도 정말 간단하고 별도의 설정도 필요없는데요. 장점이라하면은 간단함...?! 단점은 커스..
-
[SWIFT] Metatype - self, Self, Type
오늘은 개발을 진행하다 그동안 무의식적으로 자주 사용했던 self, Self에 대해 알아보려고 합니다. 자주 사용하면서 어... 제대로 알고 있는 걸까 생각이 들었고 다시 한 번, 공부하면서 정리해보고 싶어서 개념에 대해서 정리해보겠습니다 :) Metatype이란? 우선 Metatype이란 타입의 타입이라고 부릅니다. 어...? 근데, 타입의 타입이라니 뭔가 이상하다고 생각이 들수도 있습니다. 근데 잘 생각해보면 Swift를 활용하면서 이렇게 Type으로 붙어서 활용했던 타입의 값들 바로 이런 값들이 Subclass의 Type입니다. 즉, 타입의 타입이 됩니다. 쉽게 말해서 값으로 활용될 수 있는 타입들입니다. 그러니깐 Subclass의 Metatype은 Subclass.Type입니다. 이제 Metaty..
-
[SWIFT] OptionSet
Swift의 Collections 타입 중에 OptionSet이라는 타입에 대해 작성해보려고 합니다. 저도 사용해본 적은 없지만, 사용해보면 좋겠다는 생각이 들어서 공부를 하고 정리를 하게되었습니다. OptionSet란 OptionSet은 비트의 집합으로 자료구조 중에서 Set의 특징을 가지고 있는 자료구조입니다. Apple 개발자 문서를 보아도 Collections > Set으로 분류가 되어 있습니다. 비트의 집합으로 구성된다는 뜻은 만약 0000의 4비트가 존재한다면 각각의 비트가 하나의 옵션을 나타낸다는 뜻입니다. 지금은 이정도만 이해를 하고 넘어가고 뒤에 실제 예시를 통해 이해하면 될 것 같습니다. (즉, 각 옵션에 대해서 1, 2, 4, 8, 16의 값을 가지게 될 것입니다..!!) 그렇다면 이..