본문 바로가기

이야기/SI

개발환경은 반드시 알아둬야 한다

개발을 하다보면 반드시 개발환경 단계에 대해서 알아야만 한다.

그래야 남이 무슨 말을 하는지 이해를 할 수 있다...

 

"김 개발자님. 개발 서버에서 개발자님이 담당하신 서비스가 정상적으로 작동하지 않아요!"

"제 컴퓨터에서는 잘 되는데요?"

 

==> 여기서 동일한 코드를 가지고 한쪽은 잘되고, 한쪽은 안된다고 한다.

둘 다 옳은 말을 하고 있다. 단지, 개발자는 개발환경이 로컬일 뿐이고, 검수자는 개발서버, 혹은 테스팅 환경에서 검수한 것이다.

 

여기서 "나는 되는데 왜 안된다고 하는 거야!?" 라고 화를 내면 자신의 부족함을 내세우는 것 외에는 아무것도 아니다...

확실하게 알아두고 가자.

 

 

1. Local

작동환경을 개인 컴퓨터에 설치해서 고정된 환경 내에서 프로그램을 개발하는 경우다. 일단 하나의 프로그램을 작성하는 도중에는 업데이트를 하지 않는 편이다.

 

개발자가 개인 컴퓨터에서 설치한 프로그램은 지속적인 업데이트가 안 됐을 가능성이 높다. 개발 환경에서는 시도 때도 없이 수많은 관계자들이 다양한 업데이트를 진행하는데, 당연히 개발자가 매번 그런 업데이트 요소를 받는 게 아니기 때문이다. 보통 출근 후 받거나, 긴급한 업데이트가 있다고 통보 받았을 때만 받는다.

 

(귀차니즘 외에도, 개발 단계에서 수많은 업데이트를 그냥 받았다가 오류가 나서 되돌리는 작업을 두세 번 겪다보면 자연스럽게 바로 받는 게 아니라 시간이 지나고 문제가 있다는 말이 안 나오면 받게 된다.)

 

2. Develop (Dev)

앞서 말한 이유로 로컬 환경과 개발서버 환경은 미묘하더라도 분명히 차이가 존재하며, 그 차이로 프로그램이 정상적으로 작동하지 않을 수도 있다. 따라서 반드시 로컬에서 작동하는 프로그램은 개발서버 환경에서도 정상적으로 작동하는지 확인해야 한다. 이 환경은 모든 개발자가 공통적으로 사용하는 환경이므로, 형상관리, CI & CD가 이뤄진다.

 

3. QA (Test)

실제로 사용자가 사용하는 것과 매우 유사한 환경을 구성한 검수자가 실제 프로그램을 작동한다. 로컬, 개발서버에서 잡지 못했던 오류나, 비기능적인 요소도 이 곳에서 잡아낸다.

 

4. Production

실제로 운영하는 환경과 동일하다. 프로덕션 레벨이라고 칭한다면, 사실상 소비자가 사용하는 프로그램을 뜻한다고 보면 된다.

 

 

개발자가 담당하는 영역은 보통 Local ~ Dev 영역이다. 만약 개발 파트장 급, 혹은 관리자 급으로 넘어간다면 3번 테스팅 환경까지 고려해야 하며, QA 담당자와 많은 회의를 가지고 의견이 부딪히는 곳에서 조율을 담당해야 하는 경우가 많다.

 

QA는 담당자가 별도로 있는 경우가 많고, 개발 지식은 부족하더라도 해당 프로그램에 대한 이해도가 있는 사람이 맡는 경우가 많다. 따라서 개발자가 잡아내지 못한 비기능적인 요구가 이 단계에서 많이 지적되고 결함으로 등록된다.

 

프로덕션 레벨은 보통 개발보다는 유지보수의 영역이라고 보면 된다. 인수 테스트를 거친 이후 이미 개발된 프로그램을 입맛에 맡게 자잘하게 수정하는 과정이라고 보면 된다.