ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [프로그래머] 그 코드를 만져선 안 돼!
    97가지 시리즈/프로그래머 2018.10.31 19:32

    #프로그래머가_알아야_할_97가지 vol.30

    그 코드를 만져선 안 돼! by. Cal Evans


    시스템을 스테이징 서버에 올려 테스트를 돌린 후, 자신이 쓴 코드에 문제가 생겨 테스트 매니저로부터 연락을 받은 경험은 프로그래머라면 누구나가 갖고 있을 거라 생각이 듭니다. 그런 연락을 받았을 때 프로그래머가 맨 처음 하는 생각은 "지금 당장 가서 고치게 해줘. 어디가 문제인지 알고 있으니까"가 아닐까요?


    "프로그래머가 스테이징 서버를 만져도 되지 않을까?"라는 생각은 한편으론 잘못된 생각은 아닌 것 같지만, 대승적으로 보면 잘못된 것입니다. 왜 그럴까요?


    Web 시스템 개발 프로젝트의 환경은, 일반적으로 다음과 같이 아키텍쳐가 나누어져 있습니다.


    1. 개발자 컴퓨터 상의 로컬 개발/유닛 테스트 환경

    2. 통합 테스트를 수동 또는 자동으로 실행하는 개발 서버

    3. 품질보증(QA)팀이나 고객이 수용 테스트를 하는 스테이징 서버

    4. 라이브 서버


    물론 이외에도 소스 코드 관리(SCM)나 이슈 추적 시스템(ITS)등, 서버나 서비스가 여러 가지 있을 수 있겠지만, 대략적으로는 위의 네 가지로 분류할 수 있습니다. 위와 같이 역할이 나누어져 있는 경우 개발자는 (비록 상급 개발자라 하더라도) 절대 개발 서버보다 뒤에 있는 환경을 만져서는 안 됩니다. 개발 대부분은 개발자의 로컬 환경에서 이루어져야 합니다. 개발자는 로컬 환경에서 자신에게 맞는 IDE나 가상 머신을 활용하고 독자적인 툴을 사용하는 등 개별적으로 연구하여 좋은 코드를 쓰기 위해서 최선을 다해야 합니다.


    SCM에 체크인 후에는 (자동이든 수동이든) 개발 서버에 배치해 그곳에서 필요에 따라 테스트, 수정을 시행하게 됩니다. 그 테스트로 전체가 문제없이 잘 돌아가는지 확인하는 것입니다. 여기서 주의해야 할 점은 체크인 이후개발자는 프로젝트 진행에서 철저히 "방관자"가 되어야 한다는 것입니다.


    코드를 패키징 하여 QA팀 전용 스테이징 서버에 배치하는 것은 스테이징 매니저의 일입니다. 개발자가 개발 서버보다 뒤에 있는 환경에 접근해서는 안 되는 것처럼 QA팀 및 고객은 개발 서버상의 자원에는 손을 대서는 안 됩니다. 스테이징 매니저는 어디까지나 수용 테스트를 할 수 있는 상태가 된 시스템을 디플로이 할 뿐입니다.


    예를 들어 "개발 서버에서 동작을 좀 봐주시겠어요?"라며 고객에게 부탁해서는 안 됩니다. 한 명의 개발자가 모든 코드를 작성한 프로젝트라면 이야기는 달라질 수 있겠지만, 일반적으로 여러 명이 코딩을 했을 겁니다. 참여한 개발자 전원이 '언제든지 유저에게 보여줘도 괜찮아'라는 상태로 코딩을 해줬을지 알 도리가 없기 때문입니다.


    개발 서버와 스테이징 서버의 양쪽에 접근할 수 있는 건 릴리스 매니저로 한정해야 합니다.


    그리고 무슨 일이 있더라도 개발자가 라이브 환경을 만져서는 안 됩니다. 문제가 일어났더라도 문제를 해결하는 것은 운용팀의 일이며 만일 개발자가 문제 해결에 착수할 때는 운용 팀으로부터의 의뢰에 의한 것이어야 합니다. 그리고 문제 해결 후에 SCM에 수정을 체크인하고 운용팀이 직접 SCM으로부터 패치를 작성하여 적용하는 방식으로 진행해야 합니다. 제가 프로그래머로서 겪은 경험 중에서 "최악"이라고 말할 수 있는 사건이 바로 누군가가(뭐... 그건 저... 이지만...)가 이 "반드시 SCM에 체크인하고 SCM으로부터 패치를 만든다"라는 규칙을 지키지 않았기 때문에 일어난 사건이었습니다. 아무리 시스템의 어딘가가 고장이 났더라도 라이브 환경에서 코드를 수정한다는 발상은 절대로 해서는 안 됩니다.



    저자: Cal Evans

    Ibuildings의 PCE 담당 디렉터.

    프로그래머로서 이미 25년 정도의 경험을 쌓았고 사용해 온 언어도 다양하다.

    특정한 언어 몇 가지의 다양한 토픽에 대해서 잡지에 기고하고 있고 서적의 집필도 하고 있다.

    국적은 미국이지만 지금은 네덜란드의 위트레흐트에 살며, 강연, 집필하는 한편 글로벌한 PHP 커뮤니티의 활동에도 참가하고 있다.


    [프로그래머] 그 코드를 만져선 안 돼!


    [출처] プログラマが知るべき97のこと (O'Reilly Japan)

    이 글은 [CC-by-3.0-US]에 의해 라이센스 되었습니다.




    댓글 0

Designed by Tistory.