-
[GIT] Merge vs Rebase 차이
GIT을 프로젝트를 하며 다들 자주 사용하시는데, 혹시 브랜치를 병합할 때, Merge와 Rebase을 사용해본 경험이 있으신가요⁉️ 저는 주로 Rebase fork해온 프로젝트를 upstream에 맞게 동기화하고 싶을 때 사용했는데요. 정보를 fetch upstream을 통해 가져오고 rebase을 통해서 병합을 했었어요. Merge 얘는 upstream이 없고 origin만 있는 상태에서 Git을 관리할 때 사용했었던 방법이에요. 사용하면서 어떤 상황에 사용하는지 형태만 보고 사용했었지, '왜 이걸 사용하지'는 생각을 해보지 않았던 것 같아요. 그래서 이번 기회에 동작 원리를 알아보고 정리해보려고해요~~ 기회가 된다면 다음 GIT 포스팅은 오픈소스를 관리하는 방식인 fokr한 저장소를 관리하는 방법을..
-
[iOS] Core Location 사용 위치 정보 얻기
이번에 공모전을 준비하며 개발을 하다보니 iPhone을 기반으로 위치를 얻어와서 지도에 표시해야하는 작업이 있었어요. 찾아 보니, iOS 기본 Framework에서 제공하는 기능이 있더라구요‼️ 기본으로 제공하는 Framework을 이용해서 현재 자기의 위치를 받아오는 작업을 해보겠습니다. 우선 여러분들 혹시 iOS Architecture에 대해 알고계시나요⁉️ 혹시 위와 같은 그림을 보신적 있으신가요? 우선 위치 정보를 iPhone에서 얻어오기 전에 어떤 Framework을 사용해야하는지 알아야할 것 같아요‼️ 우선 저희가 사용해야할 Core Location은 Core Service 계층에 속해있답니다. 그렇다면 각각의 계층에 대해 간단히 어떤 Framework가 있고 어떤 역할을 하는지 알아볼게요. ..
-
[iOS] Dynamic Framework & Static Framework
요즘 회사 프로젝트의 크기가 커지다보니 각 모듈간의 의존도도 커지고 빌드 시간도 오래 걸리게 되면서, Framework 단위로 분리해서 관리하는 방법에 관심을 가지게 되었습니다. 그러다보니 모르는 부분들도 있어서 이전에는 가볍게 알고 있던 Static Framework & Dynamic Framework에 대해 좀 더 깊게 알아보려고 합니다 🙃 Dynamic Framework 우선 Dynamic Framework는 Xcode에서 Framework를 생성하게 되면 기본적으로 Dynamic Framework로 생성됩니다. Dynamic Framework는 그림에서처럼 Static Linker를 통해 Dynamic Library Reference가 Application Code로 들어가고 사용시에는 해당 참조..
-
[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..
-
[iOS] Xcode Target이란?
이번에 새로운 프로젝트를 보고 "어..? 이 프로젝트는 왜 이렇게 타겟이 많이 분리되어 있지..?"라고 느낌이 들었고, 지금까지 iOS 개발을 해오면서 Xcode 프로젝트에 대한 원론적인 이해(?)가 부족했다고 느끼면서 새롭게 공부를 해보았어요.. Target이라고 하면 여러분들이 알게모르게 다들 이런 화면 보셨죠..? 저는 지금 하나의 Target만 있는데, 프로젝트를 생성할 때 UI Test, Unit Test를 포함하셨으면 이 또한 Target이 될 수 있고 또한 빌드를 할 때 각자가 빌드하는 Target이 설정이 되어 있었을거에요.. 근데 그렇다면 Target이란 무엇일까요? 한번 지금부터 제가 공부한 내용을 바탕으로 설명을 해보겠습니다‼️ Xcode Target Target이란 빌드할 프로덕트를..
-
[프로그래머스] 점프와 순간 이동 - DP문제
효율성 테스트까지 있는 문제로 처음 DP로 풀어야겠다고 생각하고 풀이를 시작하였다. 프로그래머스 점프와 순간 이동 코딩테스트 연습 - 점프와 순간 이동 OO 연구소는 한 번에 K 칸을 앞으로 점프하거나, (현재까지 온 거리) x 2 에 해당하는 위치로 순간이동을 할 수 있는 특수한 기능을 가진 아이언 슈트를 개발하여 판매하고 있습니다. 이 아이언 슈 programmers.co.kr 문제는 N칸을 이동해야한다. 그러나 조건이 있다. (현재까지 온 거리) * 2에 해당하는 위치로 순간이동이 가능하고 이 경우에는 건전지의 소비량이 들지 않는다. 그러나 K칸을 이동하게 되면 이 경우에는 K 만큼의 건전지가 소비된다. 그러므로 순간이동을 하는 것이 효율적이다. 여기서 N칸을 이동하려고 할 때, 가장 건전지의 사용..
-
[프로그래머스] 단어 변환 - BFS
BFS을 통해 쉽게 풀 수 있는 문제였습니다. 프로그래머스 단어 변환 문제 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr 문제는 두 개의 단어 begin, target과 단어의 집합 words가 주어지고 규칙들을 활용해서 begin -> target으로 변환시키는 과정입니다. 여기서 규칙들을 지키면서 변환했을때, 가장 짧게 변환 시킬 수 있는 경로를 구하는 문제입니다. 우선 문제를 보고 가장 짧은 과정을 구하는 문제라고 하였기 때문에, BFS로 접근하여야겠다고 생각..
-
[iOS] WKWebView (1) - 웹 뷰 사용하기
이번에 프로젝트를 진행하면서 이번에 웹 뷰를 사용해서 해야하는 간단한 작업을 받았습니다 :) 그래서 이 참에 WKWebView는 자주 사용하는 컴포넌트이기도 해서 확실하게 공부해놓으면 도움이 되겠다 싶어서 포스팅을 해보려고 합니다. 뭔가 혼자서 정리를 하는데 내용이 너무 많은 것 같아서 좀 여러 개로 포스팅을 작성해볼게요..!! 이전에 iOS에서 WebView를 사용하는 방법 3가지에 대해서 간단히 포스팅을 했었는데 연관되진 않지만 보고와도 괜찮을 것 같네요 :) [iOS] 앱에서 Web 보여주기 (WKWebView, SFSafariViewController, Safari 열기) iOS에서 앱 내에서 Web을 보여주어야 하는 경우가 있습니다. 이 때, 크게 3가지 방법이 있는데요. 이 방법에 대해 간단히..
-
[SWIFT] OptionSet
Swift의 Collections 타입 중에 OptionSet이라는 타입에 대해 작성해보려고 합니다. 저도 사용해본 적은 없지만, 사용해보면 좋겠다는 생각이 들어서 공부를 하고 정리를 하게되었습니다. OptionSet란 OptionSet은 비트의 집합으로 자료구조 중에서 Set의 특징을 가지고 있는 자료구조입니다. Apple 개발자 문서를 보아도 Collections > Set으로 분류가 되어 있습니다. 비트의 집합으로 구성된다는 뜻은 만약 0000의 4비트가 존재한다면 각각의 비트가 하나의 옵션을 나타낸다는 뜻입니다. 지금은 이정도만 이해를 하고 넘어가고 뒤에 실제 예시를 통해 이해하면 될 것 같습니다. (즉, 각 옵션에 대해서 1, 2, 4, 8, 16의 값을 가지게 될 것입니다..!!) 그렇다면 이..
-
[iOS] 커스텀 UIView - xib이용하기 (2가지 방법)
iOS 개발을 하다보면 UIView를 커스텀으로 제작해야하는 상황이 많이 생기죠? 그때 다들 어떻게 개발하셨나요. 오늘은 다른 방법들도 존재하겠지만 재사용을 하기 좋고 더욱 직관적으로 뷰를 알아볼 수 있는 방법인 xib를 이용해서 커스텀 뷰를 제작하는 방법을 알아보려고 합니다. 그리고 xib를 이용하는 방법에는 2가지의 방법이 있는데 간단하게 차이도 보도록 하겠습니다 🙃 File Owner에 Custom Class를 적용하는 방법 UIView에 Custom Class를 적용하는 방법 우선 두 가지를 적용하기 전에 동일한 작업을 먼저하겠습니다!! 여기까지는 두 방법 모두 같이 해야하기 때문에, 따라해주세요. 먼저 UIView를 상속받은 sub class를 하나 생성해주세요. 그리고 xib 파일을 하나 선택..