94호. 라라벨 릴리즈 프로세스 free

2019-12-13

안녕하세요. 어제 라라벨 6.7.0이 릴리즈 됐습니다.

어느새 라라벨 새 버전 소개가 많이 밀렸네요 ㅠ

뭐 이리 업데이트가 빨라!라고 생각하시는 분들이 많으실 것 같은데요(사실 제가 그렇습니다). 오늘은 라라벨 릴리즈 프로세스에 대해 살펴보도록 하겠습니다.


라라벨은 5버전에 들어오면서 부터 릴리즈 프로세스가 바뀌었다고 합니다. 이때 처음 릴리즈 사이클을 공표했는데요. 이때 발표한 릴리즈 사이클이 지금까지 유지되고 있습니다.



  • 매 6개월 마다(6월 즈음에 한 번, 연말 즈음에 한 번) 새 버전을 릴리즈 한다.

  • 버그 패치는 6개월 간 제공한다

  • 보안 패치는 1년 간 제공한다


업데이트 주기가 정해져있고, 수년 간 잘 지켜져오고 있기 때문에 릴리즈 사이클을 알아두면 일정을 계획하는데 도움이 됩니다. 저는 지금 라라벨 5.8에 출간된 Laravel Up & Running 2판을 번역하고 있는데요, 갑자기 버전 맨 앞자리가 6으로 올라가서 상당히 당황했던 기억이 납니다. 라라벨 5 버전 까지는 버전 첫번째 자리는 패러다임이 변할 때 올라가는 것으로 정해져있었기 때문입니다. 그동안 주변에서 책을 쓰거나 번역하는 도중에 버전이 올라가서 2중 3중으로 고생한 분들을 많이 봤거든요.


다행히 이번에 5에서 6으로 버전이 올라간 것은 패러다임 변화에 따른 버전 변경이 아니라 앞으로 시맨틱 버저닝을 따른 것이었습니다.


시맨틱 버저닝이란 메이저.마이너.패치 형식으로 된 버전을 아래의 기준으로 바꾸는 것을 뜻합니다.



  • 메이저 버전은 API가 호환되지 않는 변화가 있을 때 올림

  • 마이너 버전은 하위호환성을 유지하면서 기능을 추가할 때 올림

  • 패치 버전은 하위호환성을 유지하면서 버그를 고칠 때 올림


5 버전까지 라라벨은 패러다임.메이저.마이너(혹은 패치)의 형식을 가지고 있었습니다. 그래서 6개월 마다 두 번째 자리가 바뀌고, 거의 매주 3번째 자리가 바뀌었는데요, 6 버전부터는 6개월마다 첫 번째 자리가 바뀌고, 2번째 자리가 매주 바뀝니다. 아래는 이를 잘 표현한 라라벨 뉴스의 이미지입니다.


라라벨 릴리즈 프로세스 변화


별로 중요한 건 아니지만 라라벨 5.8에서 6.0으로 버전이 올라가면서 컴포저의 버전제약이 다음과 같이 바뀌었습니다.


컴포저에서 laravel/framework 버전제약 변경


5.8.*는 * 자리에 어떤 수가 와도 허용한다는 뜻이고, ^6.0은 6.0 하위호환성이 유지되는 한 업데이트를 허용한다는 뜻입니다. 어쨋든 마이너 버전 업데이트는 하위호환성이 깨지지 않으니 안심하고(아마도?) 버전을 올리셔도 될 것 같습니다.


라라벨 6은 LTS(Long Term Support) 버전이기 때문에 버그 픽스는 2021년 9월까지, 보안 픽스는 2022년 9월까지 제공될 예정입니다. 시맨틱 버저닝을 사용하도록 바뀌었지만 기본적인 업데이트 주기는 전과 달라지지 않았기 때문에 라라벨 7은 2020년 2월에 릴리즈 될 것으로 예상하시면 될 것 같습니다.


일반화 하기엔 무리가 있을 수 있지만 제 경우에는 프레임워크 버전 업데이트를 몇 번 놓치고 나면 어느 순간 부터는 버전을 올릴 엄두가 안나더라고요. 신경써서 업데이트 하는 건 1년에 두 번, 그 외에는 안심하고 업데이트 할 수 있으니, 되도록 최신 버전에서 멀어지지 않도록 조금씩만 더 신경을 써보는 건 어떨까요? 물론 쉬운 일이 아니라는 건 압니다 ㅠ


그럼 오늘도 즐거운 개발생활 하세요~!


1일 1식 라라벨 94호

2019년 12월 13일


이현석

메쉬 코리아 개발자. 바쁜 팀장님 대신 알려주는 신입 PHP 개발자 안내서를 쓰고, 클린 아키텍처 인 PHP를 번역했습니다. 2020년에 출간될 Laravel Up & Running 2nd Edition을 번역하고 있습니다.