본문 바로가기

분류 전체보기141

[Github] 우리는 왜 Squash & Merge와 No Fast-forward Merge 방식을 채택했을까? 서론 DDD 개발 동아리에서 진행 중인 프로젝트에서, 브랜치 전략과 함께 어떻게하면 커밋기록을 깔끔하게 관리할 수 있을까 라는 고민으로 Merge 방식에 대해 생각해보게 되었습니다. Commit History 관리를 잘해야 한다. 라는 얘기는 들어봤지만, 막상 프로젝트를 하면 잘 확인하지도 않는 Commit History가 왜 중요하지 라는 의문을 갖고 있었습니다. 이번 글에서는 프로젝트에서 Squash & Merge와 No Fast-Forward Merge를 사용하기까지 공부했던 내용들과 사용하면서 느낀 바를 정리하고자 합니다. 단순하게 Merge를 해왔다면 지금까지 저는 단순히 Conflict만을 피하기 위해 Rebase 후, Default Merge 방식만을 채택해왔습니다. 그에 따른 결과는 아래의.. 2024. 2. 4.
개발 외주, 이런 건 하면 안 된다! 서론 아주 잠깐이지만 첫 iOS개발 외주를 진행했던 내용입니다. 회사명과 관련 인물들에 대한 구체적인 언급은 하지 않고, 그 과정에서 발생한 사건들만 작성하였습니다. 만약 개인적으로 질문하시더라도 회사명과 누구인지 등에 대한 것은 답변하지 않을 것이기 때문에, 관련 질문은 안 해주시면 감사하겠습니다. 이래저래 불만이 적힌 글이지만, 제게는 좀 재밌는 경험이었습니다. 목차 1. 외주 직접 계약, 어떻게 하게 됐을까? 2. 계약서 작성, 어떤 걸 주의해야 할까? 3. 계약 이후 알게 된 사실들 4. 중도 하차 결정 1. 외주 직접 계약, 어떻게 하게 됐을까? 1-1. 오픈카톡방을 통한 외주 계약 iOS 개발자분들은 워낙 풀이 좁다보니 최대한 정보를 끌어오기 위해 여러 오픈카톡방에 발을 담그고 있는 경우가 많.. 2024. 1. 21.
[SwiftUI] @State, @Binding 오랜만에 SwiftUI로 프로젝트를 진행하게 되면서 간단하게 개념을 정리해둘 기회가 생겼다. State와 Binding을 알아보기에 앞서, 선행되어야 할 개념인 Source of Truth와 Property wrapper에 대해 짚고 넘어가자. Source of Truth 개요 Source of Truth는 데이터 원본이라 생각하면 되는데, State로 선언된 Property는 모두 Source of Truth를 생성하고 참조할 수 있게 된다. Source of Truth와 State, Binding의 흐름 SwiftUI에서는 property의 Storage를 관리하고, 데이터가 변경되면 이에 의존하는 View 계층의 일부를 업데이트한다. property를 SoT 개념을 활용해 한 곳에서 통합 관리함을써.. 2024. 1. 7.
[프로그래머스] Swift - k진수에서 소수 개수 구하기 (LV.2) 문제 설명 양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다. `0P0`처럼 소수 양쪽에 0이 있는 경우 `P0`처럼 소수 오른쪽에만 0이 있고 왼쪽에는 아무것도 없는 경우 `0P`처럼 소수 왼쪽에만 0이 있고 오른쪽에는 아무것도 없는 경우 `P`처럼 소수 양쪽에 아무것도 없는 경우 단, P는 각 자릿수에 0을 포함하지 않는 소수입니다. 예를 들어, 101은 `P`가 될 수 없습니다. 예를 들어, 437674을 3진수로 바꾸면 211020101011입니다. 여기서 찾을 수 있는 조건에 맞는 소수는 왼쪽부터 순서대로 211, 2, 11이 있으며, 총 3개입니다. (211, 2, 11을 k진법으로 보았을 .. 2023. 12. 11.