brunch

You can make anything
by writing

C.S.Lewis

by Kim Sjoon George Nov 15. 2019

현업에서의 개발 환경..

A사의 환경 예시

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


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



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


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

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

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


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


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


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




작가의 이전글 스타트업의 CTO가 생존하는 방법
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari