ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Feature flags in Swift
    Swift 2021. 12. 22. 13:27

    Feature flags 란?

    말 그대로 기능 flag 를 뜻한다.

     

    서버로 실시간으로 변경해서 ->  보이는 화면을 다르게 만들어 주는 개념 

    : 사용자가 보이는 화면을 바로 다르게 해줄 수 있기 때문에

     

    아래와 같은 장점이 아주아주 좋다고 느껴졌다(공감 100)


    1. 빌드 시간을 줄일 수 있고

    2. 여러가지로 빠르게 테스트 할 수 있도록 제공해줄 수 있습니다. (서로 윈윈 )

     

    + 기능을 제한적으로 오픈하거나 

    + 서비스가 안정적으로 오픈되기 전까지 해둘 수 있다.

    (예를 들어, 서버에서 1로주면 기능을 보여주고, 0으로 주면 보여주지 않는다고 가정할 경우 기능에 문제가 있을때 서버를 수정해 빠르게 대응할 수 도 있는 등 장점이 있다.)

    + 서비스 부하나 조금씩 오류 등을 확인해 부정적인 반응을 낮춰 점진적으로 배포할 수도 있다.

    + 급하게 hotfix할 일이 없다...!!


    서버 주도 UI 조작이라고 해서, 더 많이 활용하는데 그 중에 작은 단계라고 보면 될거 같다.

     

     

    * Feature Branch 

    : 기능 개발 branch

    (현재도 현업에서 큰 기능단위로 feature 를 따고, main에 한번에 머지시키는 형태)

     

    오래 걸리는 feature 의 경우 + 또는 feature가 여러개인 경우 Merge Confilcts 를 매우 조심해야한다. (우리는 정말 오래 걸렸다... 한번에 올라가지 않음)

     

    => Trunk Based Development with Feature Flags 를 제안한다고 한다.

    https://trunkbaseddevelopment.com/

    위 그림으로 이해가 가지 않는 다면 다음과 같다.

    1. Jira 에서 이슈 백로그 확인 -> 진행

    2. 개발자는 feature 생성 (생성하는 경우) ------------------> develop으로 머지되는것과 다르게 운영인 master에 기반

    3. 원하는 지점에서 커밋 + push

    4. 코드 push 될때마다 Jenkins 코드 빌드

    5. PR

    6. 마지막 PR이 끝나면 master에 merge ---------------------> 잦은 간격의 release

     

    ==> 와 닿는 글이 없어 어렵다ㅠㅠ

    일단 매 커밋마다 자동화 빌드를 하고 있기 때문에 + 피쳐에 올리는 PR도 모두 코드리뷰를 하기때문에 조금 다르지만 일단 feature flags가 없다는 점이 큰거 같다. + 덤으로 늘 작은 단위로 피쳐 위로 PR을 올리기 위해 노력하고 있다.

    728x90

    'Swift' 카테고리의 다른 글

    Xcode Cloud란  (0) 2021.12.28
    Swift AsyncSequence (비동기 시퀀스에 대한 지원)  (0) 2021.12.22
    Swift nil, 왜 null이 아닐까?  (0) 2021.12.19
    Property Wrapper  (0) 2021.12.13
    swift Pecker란  (0) 2021.11.15

    댓글

Designed by Tistory.