‘스위프트 서비스 라이프사이클(Swift Service Lifecycle)’가 공개됐다. 이는 스위프트 서버 에코시스템을 지원하기 위한 오픈소스 프로젝트다.
애플의 프로그래밍 언어 스위프트(Swift) 개발자들이 스위프트 서버 에코시스템을 위한 오픈소스 프로젝트, ‘스위프트 서비스 라이프사이클’을 선보였다. 서버 애플리케이션으로 시작과 종료 시퀀스를 관리할 수 있도록 지원하는 것이 이번 프로젝트의 골자다.
현재 기트허브에서 다운로드 받을 수 있는 ‘스위프트 서비스 라이프사이클’은 애플리케이션을 완전히 시작하고 종료해 리소스를 확보해주는 스위프트 패키지다. TERM 또는 INT 시그널을 종료하기 위한 시그널 기반 셧다운 후크도 제공된다.
공식 사이트에 따르면 대부분의 애플리케이션은 시작 및 종료 워크플로우 로직을 가지고 있는데, 이 로직은 오류에 민감하고 정확하게 실행하기가 어렵다. 시작 시퀀스에는 스레드풀 초기화, 캐시 워밍업, 데이터 마이그레이션 실행, 이벤트 승인 또는 트래픽 처리 전 다른 유형의 상태 초기화 등의 작업이 포함된다. 종료 시퀀스는 파일 디스크립터에 할당된 리소스 또는 올바르게 삭제되지 않으면 누출될 수 있는 기타 리소스 등을 확보한다.
‘스위프트 서비스 라이프사이클’은 시작 및 종료 로직에 대한 니즈를 안전하고, 재사용 가능하며, 프레임워크에 구애받지 않는 방식으로 코드화했다.
이 라이브러리를 사용하는 권장 방법은 서버 애플리케이션 메인 메소드에서 ServiceLifecycle 인스턴스를 생성하고, LifecycleTasks를 등록하는 것이다. 시작 기능을 호출하면 ServiceLifecycle이 등록된 순서대로 작업을 시작한다. ServiceLifecycle은 TERM 또는 INT를 트랩하는 시그널 핸들러를 등록한다. ciokr@idg.co.kr