-
[GIT] Merge vs Rebase 차이
GIT을 프로젝트를 하며 다들 자주 사용하시는데, 혹시 브랜치를 병합할 때, Merge와 Rebase을 사용해본 경험이 있으신가요⁉️ 저는 주로 Rebase fork해온 프로젝트를 upstream에 맞게 동기화하고 싶을 때 사용했는데요. 정보를 fetch upstream을 통해 가져오고 rebase을 통해서 병합을 했었어요. Merge 얘는 upstream이 없고 origin만 있는 상태에서 Git을 관리할 때 사용했었던 방법이에요. 사용하면서 어떤 상황에 사용하는지 형태만 보고 사용했었지, '왜 이걸 사용하지'는 생각을 해보지 않았던 것 같아요. 그래서 이번 기회에 동작 원리를 알아보고 정리해보려고해요~~ 기회가 된다면 다음 GIT 포스팅은 오픈소스를 관리하는 방식인 fokr한 저장소를 관리하는 방법을..
-
[2023년 회고] 3년차 iOS 개발자
2022년도 회고를 하고 넘어갔어야 하는데, 하지못했고 2023년은 여러가지로 변하고 또 신년에는 마음가짐을 새롭게하고 정비하자는 의미에서 올해를 돌아보고 2024년을 계획해보려고 3년차 개발자의 회고를 작성해보려고 합니다 👊🏻 회사원으로서 2024년 1월 25일부로 네이버제트에 입사해서 근무를 한지 만으로 3년이 흐르게 되었다. 그래도 나름 한 회사에 오래 있었고 그동안 많은 변화들이 있었는데 2023년은 가장 많은 변화가 있었던 해였던 것 같다. 조직개편 우선 가장 큰 변화는 아무래도 조직개편이었던 것 같다. 처음에 조직개편을 한다는 소문이 있을 때, iOS 개발자임은 변화가 없으니 나에게는 크게 변화가 없을 것 같다고 느꼈다. 하지만 조직개편이 1년에 2번정도 있었는데 생각과는 달랐다. 나의 업무에..
-
[SWIFT] Swift SOLID 원칙
안녕하세요 오늘은 SOLID 원칙에 대해 정리를 해보려고 합니다. 근데, 이것을 Swift 언어에 접목시켜서 이해해보고 작성해보겠습니다 🙌 SOLID란? SOLID 원칙이란 객체지향 설계에 더 좋은 아키텍쳐를 설계하기 위해 지켜야하는 원칙들의 5가지를 앞의 약어만 따서 정리한 단어입니다. 그렇다면 이런 원칙을 왜 알아야할까요? 🧐 아무래도 개발자가 좋은 제품을 생성하기 위해서는 기능을 구현하는 것도 중요하겠지만, 새롭게 어떤 기능이 추가되거나 유지 보수가 되어야 할 때 더욱 생산성 있고 유연하게 대처가 가능해야한다고 생각합니다. 이를 위해서 코드를 어떻게 설계하고 개발해나가는지가 중요하다고 생각합니다. SOLID 원칙은 이러한 좋은 설계를 위한 최소한의 원칙들을 정리해주기 떄문에, 중요하게 됩니다. 디저..
-
[iOS] Xcode Target이란?
이번에 새로운 프로젝트를 보고 "어..? 이 프로젝트는 왜 이렇게 타겟이 많이 분리되어 있지..?"라고 느낌이 들었고, 지금까지 iOS 개발을 해오면서 Xcode 프로젝트에 대한 원론적인 이해(?)가 부족했다고 느끼면서 새롭게 공부를 해보았어요.. Target이라고 하면 여러분들이 알게모르게 다들 이런 화면 보셨죠..? 저는 지금 하나의 Target만 있는데, 프로젝트를 생성할 때 UI Test, Unit Test를 포함하셨으면 이 또한 Target이 될 수 있고 또한 빌드를 할 때 각자가 빌드하는 Target이 설정이 되어 있었을거에요.. 근데 그렇다면 Target이란 무엇일까요? 한번 지금부터 제가 공부한 내용을 바탕으로 설명을 해보겠습니다‼️ Xcode Target Target이란 빌드할 프로덕트를..
-
[프로그래머스] 단어 변환 - BFS
BFS을 통해 쉽게 풀 수 있는 문제였습니다. 프로그래머스 단어 변환 문제 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr 문제는 두 개의 단어 begin, target과 단어의 집합 words가 주어지고 규칙들을 활용해서 begin -> target으로 변환시키는 과정입니다. 여기서 규칙들을 지키면서 변환했을때, 가장 짧게 변환 시킬 수 있는 경로를 구하는 문제입니다. 우선 문제를 보고 가장 짧은 과정을 구하는 문제라고 하였기 때문에, BFS로 접근하여야겠다고 생각..
-
[Git] Git merge 전략 (merge, rebase merge, squash merge)
Git을 이용할 때, 히스토리를 관리하는 방법인데요. 평소에는 보통 혼자 개발을 진행했기 때문에, merge만 이용해서 feature로부터 develop 브랜치로 병합하는 형식으로 진행했었는데요. 하지만 여기에 merge를 하는 방법에도 여러가지가 존재합니다. 대표적으로 3가지의 전략이 있는데요. merge, rebase and merge, squash and merge 이렇게 세 가지 입니다. 각각의 전략이 모두 특징을 가지는데 알고 사용하면 각 브랜치를 관리하는데 유용할 것이라 생각이 듭니다. 그렇다면 먼저 얘기하고 가야할 부분은 왜 굳이 이렇게 여러가지 방법을 알고 있어야할까요..?! 우선 커밋 히스토리 관리가 왜 중요한지를 알아야겠죠 커밋 히스토리(Commit History) 보통 개발자들이 작업..
-
[iOS] UICollectionViewLayout 설정
UICollectionView을 자주 사용하실 것 같은데 UITableView와 가장 크게 다른 점은 커스텀하게 Layout을 설정할 수 있는 프로퍼티가 있다는 것 같아요. 기본적으로 2가지 방법으로 Layout을 설정할 수 있는데, 상황에 따라 다르게 사용할 수 있어요. 2가지 방법으로는 ✔️ UICollectionViewFlowLayoutDelegate 활용 ✔️ UICollectionViewFlowLayout 객체 활용 이렇게 2가지 방법으로 설정할 수 있다. UICollectionViewFlowLayout 객체를 활용하는 경우는 엄청 복잡한 레이아웃을 커스텀해야하는 경우나 간단하게 초기 값을 설정하기 위해 사용했어요. UICollectionViewFlowLayoutDelegate 같은 경우는 마찬..
-
[프로그래머스] 더 맵게 - Priority Queue(우선순위 큐)
우선 순위 큐(Priority Queue) 자료구조를 기억하고 있으면 쉽게 풀 수 있는 문제였다. 프로그래머스 더 맵게 문제 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr 문제는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶어한다. 모든 음식의 스코빌 지수를 K이상으로 만들기 위해서는 스코빌 지수가 가장 낮은 두 개의 음식을 특별한 방법으로 섞어서 새롭게 만들 수 있다. 섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2) 이..
-
[iOS] PhotoKit 활용 - 갤러리 사진 가져오기 (2/2)
저번 iOS 포스팅에서는 PhotoKit을 활용하는 직접적인 방법보다는 어떤 레퍼런스가 있고 어떤 역할을 하는지 다뤘었죠. 이번에는 제가 사용했던 코드를 보고 사용하는 방법을 간단히 알아볼게요. 저번 포스팅을 보시지 않으신 분은 이전 글을 참고해주세요. [iOS] PhotoKit 활용 - 갤러리 사진 가져오기 (1/2) 이번에 SKT 공모전 앱을 개발하면서 커스텀 된 카메라를 만들고 촬영한 사진을 iPhone의 사진에 저장하여야하는 기능이 있었습니다. 보통 카메라를 사용하거나 iPhone의 사진에 접근할 때, 다들 UIPic dongminyoon.tistory.com 우선 PhotoKit을 사용하기 전에 최초로 설정하여야하는 것은 무엇일까요..⁉️ 한 번, 예전 포스팅에서 했던 Core Location을..
-
[iOS] PhotoKit 활용 - 갤러리 사진 가져오기 (1/2)
이번에 SKT 공모전 앱을 개발하면서 커스텀 된 카메라를 만들고 촬영한 사진을 iPhone의 사진에 저장하여야하는 기능이 있었습니다. 보통 카메라를 사용하거나 iPhone의 사진에 접근할 때, 다들 UIPickerController을 사용해서 하였던 경험이 있으신가요⁉️ 저는 주로 UIPickerController을 사용했었는데요... 이번에는 커스텀이 필요하고 사진 역시 갤러리에서 마지막의 사진만 가져와서 표시하여야했기 때문에 어떤 기능을 사용하여야 하는지 찾아보았습니다. PhotoKit 프레임워크를 활용하면 이를 활용할 수 있다고 해서 한 번 같이 공부해보도록 할게요~~ PhotoKit 란? 우선 애플 공식 개발자 문서를 보게 되면 다음과 같이 설명이 되어 있습니다. In iOS and macOS, ..