오늘은 잠깐 현업의 개발 환경에 대하여 이야기 하도록 하겠습니다.

아래는 A사에서의 개발 ~ 배포까지의 환경을 나타낸 그림입니다 .

보면 여러분들이 많이 보던 아이콘이 있을 겁니다. JIRA및 GitLab은 현업에서도 활발히 사용되고 있습니다. 이 도구들의 활용이 귀찮을 지 모르겠지만 이 도구들의 사용을 몸에 익히는 게 중요합니다.

간단히 설명을 하면 백로그 아이템의 개발이 끝나면 GitLab으로 올리게 될 겁니다. GitLab에 올라오는 것을 Jenkins에서는 감지를 하여 올라온 코드에 대해 정적 테스트를 하고 배포 버전으로는 동적 테스트를 하게 됩니다.

이 기업에서 개발에 사용되는 언어는 1종류가 아닙니다. GO, JavaScript, Java 3가지가 사용되고 있습니다. Unit Test를 언어별로 수행하고 있습니다. 상황에 따라 유리한 언어를 골라 개발하는 현업의 특성을 잘 생각해 보시기 바랍니다.

그 외에 취약점 분석(Vulnerability Analysis)을 여기에서는 같이 정적 테스트 레벨에서 진행합니다. 개발 레벨에서 린팅을 하고 있지만, 통합 레벨에서의 이런 취약점 분석도 필요합니다. 개발자들이 100% 린팅을 했다고 자부할 수 없기 때문입니다.

동적 테스트 레벨에서는 UI 테스트 및 API테스트를 수행하고 있습니다. 동적 테스트는 테스터가 하는게 아니라 Selenium 및 Postman과 같은 도구들을 사용하고 있습니다. 그 외에 성능 테스트를 한다고 되어 있기는 한데 매번 수행은 하지 않고 특별한 이슈(예 : 신규 릴리즈시, 또는 성능의 이슈로 인한 수정 발생시)가 있을 때에만 하는 것 같습니다.

이 회사의 경우는 자체 클라우드 시스템을 운영하고 있어 이 개발 릴리즈 이후에는 프로덕션 단계에서 QA검증(테스터 검증) 및 모니터링을 수행한다고 합니다.

여러분들에게 GitLab에 1일 1통합을 강조하고 정적 테스트를 강조하는 이유를 아시겠죠..?