프로젝트 구축 시, 반드시 체크해야 될 체크리스트 - 하드스킬편

프로젝트 구축 시, 반드시 체크해야 될 체크리스트 - 하드스킬편

10분 소요
Tech PM Thinking
공유하기:
AI가 알려주지 않는 하드스킬 체크리스트에 대해서 정리합니다.

IT기획자는 코딩을 할 줄 알아야 될까

하스스킬 체크리스트란?

하드스킬 체크리스트의 중요성

이전 포스팅에서 살펴 본 프로젝트 체크리스트는 소프트스킬 중심이었습니다.

소프트스킬 체크리스트가 프로젝트의 '체계'를 수립하는 과정이었다면, 이번에 살펴볼 하드스킬 체크리스트는 프로젝트의 '시스템적 안정성'을 위한 것입니다.

하드스킬 체크리스트가 제대로 확인되지 않은 채 프로젝트 수행된다면 언제든 기술적인 이슈로 인해서 프로젝트가 지연될 리스크가 있습니다. 심각한 경우에는 초기 예산을 초과하는 추가 비용이 발생하고, 프로젝트가 무기한 연기 될 수도 있죠.

그래서 프로젝트를 수행하기 전에는 반드시 하드스킬 체크리스트를 확인하고 일정을 잡고 진행하는 것이 좋습니다.

하드스킬 체크리스트

1. 환경 호환성 점검

"호환성이 안 맞으면 프로젝트를 시작도 못 한다"

환경 호환성 점검은 우리가 정한 기술/인프라 스택이 정상적으로 작동하는지 확인하는 단계입니다. 의외로 초기 환경 세팅 시에, 이 부분을 간과하는 경우가 많습니다.

예전에 진행했던 프로젝트에서 front-end를 Next.js로 수행하려고 했습니다. 예산 문제로 서버는 기존에 남아있는 서버를 사용하기로 했구요.

문제는 이 서버의 OS가 AIX였다는 점입니다. Next.js를 쓰려면 Node.js의 버전은 최소 18버전 이상이어야 합니다. 근데 AIX에선 정식지원을 Node.js의 16버전까지만 지원을 합니다. 그런고로, AIX에선 Next.js를 사용할 수 없습니다.

이 문제의 확인이 늦어진 관계로, 이 프로젝트는 부랴부랴 서버를 하나 구축하느라 일정은 2달, 비용은 2천이 더 발생했습니다.

이런 종류의 호환성 확인 포인트는 여러가지가 있습니다. 예시로 다음과 같은 것들이죠.

호환성 체크리스트

점검 요소점검 내용
OS서버 간(개발/스테이징/운영) 환경 차이 존재 여부
DB,언어,프레임워크,라이브러리 지원 여부
보안준수 여부
DBJDBC 드라이버 버전 호환성 검토
접근 권한 및 계정 정책 확인
개발언어런타임 버전 충돌 여부
로컬/서버 환경 간 빌드 결과물 일치 여부
프레임워크사용 중인 모듈, 플러그인 호환성 검증
프레임워크 설정(yml 등) 환경별 분리 여부
외부 라이브러리서브파티 라이브러리 최신 안정버전 사용 여부
Deprecation 예정 여부
패키지 관리도구 버전 고정 여부
네트워크SSL 인증서 유효기간 및 자동갱신 여부
방화벽 정책 사전점검
내부망 ↔ 외부망 통신 경로 및 vpn/proxy 정책 확인

2. 시스템 간 연동 정책

"API 명세만 정의한다고 끝이 아니다"

조금 규모가 있다면 시스템 간 연동이 포함된 프로젝트를 수행하는 것은 흔한 일입니다. 이때 주로 API 명세를 정하는 것에만 집중하다가 정작 구현 단계에서 막혀서 시간을 허비하는 경우가 많죠. (API 통신이 안 된다던가, 통신은 되는데 에러가 난다던가)

API 명세 정의는 정의대로 하되, 반드시 사전에 기술적인 관점에서의 확인절차가 필요합니다.

망분리 환경이라면 내부망과 외부망 사이의 통신 경로가 확립되었는지부터 확인해야 합니다.

프록시를 통한 통신, VPN을 통한 통신, 게이트웨이를 통한 통신 이건 네트워크와 서버 환경마다 다르므로, 회사의 환경에 따라 어떤 식으로 외부와 통신하는지를 사전확인하고 API 호출 정책을 수립해야 합니다.

또한, API 인증 방식에 대한 체계도 확립해야 합니다. OAuth2, JWT 등 주로 사용하는 범용적인 방법이 있지만, 회사별로 별도의 인증체계를 구축하는 경우도 있습니다.

이에 대해서 연동시스템 담당자 간의 협의를 사전에 완료해야 합니다. 왜냐면 그래야 연동하는 시스템 당당자가 사전에 이에 대한 작업을 완료할 수 있고, 그래야 프로젝트의 일정대로 흘러갈 수가 있기 때문입니다.

3. 데이터 연동 구조

"데이터 구조를 정해놓지 않으면 정해놓은 일정은 의미가 없다."

각 시스템 별로 데이터를 관리하는 형식이나 형태를 제각각일 수 있습니다. 예를 들어 시스템 A, B가 있을 때 A는 API를 JSON으로 쏘는데 받는 쪽은 레거시의 XML로 수신받는걸로 처리가 되어있다던지, 똑같은 객체에 대한 데이터를 송수신하는데 서로 나머지 데이터set이 달라서 관리되는 key가 다르다던지 하는 케이스가 있죠.

이런 경우에는 아무리 정책적 일관성을 잘 정해놨더라도 매우 심각한 사고를 초래할 수 있습니다.

최악의 경우엔 기존 데이터들이 틀어지는 결과가 나올 수 있죠.

4. 배포 운영 환경 검증

개발을 다 해도 배포가 제대로 안 되면 일정은 터진다

프로젝트 후반에 가장 고생하는 것 중에 하나가 운영환경 미확정입니다.

개발이 일정대로 다 끝났는데 막상 배포하려고 하면

"운영서버 접근 권한이 아직 안나왔는데요?" "배포 하려니 에러가 발생하네요"

이런 말들이 하나 둘 나오는 순간 프로젝트 일정은 밀리기 시작합니다. 그래서 배포 환경 점검은 프로젝트 초기에 반드시 확인이 되어야 합니다.

예를 들어 서버 접근 정책, 개발OS와 버전 및 호환성 일치 여부 등이죠.

대표적인 것 몇 가지만 키워들 드리면

  1. 개발 , 스테이징 서버와 OS버전 및 호환성 일치 여부 확인
  2. 운영서버 접근 정책
  3. 운영서버 네트워크 및 보안 정책 확인(대외 연동 시)
  4. 배포 파이프라인 및 배포 승인 절차 확인
  5. 롤백 시나리오(매우 중요)

이 키워드들을 중심으로 프로젝트 초기, 최소한 프로젝트 개발이 진행되는 동안 모든 것들이 완료가 되어야 합니다.

개발이 완료되는 시점에서 바로 배포가 가능하도록요.

결론

일전에 본 소프트스킬 체크리스트가 프로젝트가 원활하게 돌아가기 위한 '체계'를 만드는 일련의 작업이었다면, 오늘 살펴 본 하드스킬 체크리스트는 '체계'에 따라서 프로젝트가 정상적으로 수행될 수 있도록 '안정적 환경'을 만드는 작업입니다.

좋은 PM(혹은 IT기획자)는 단순히 일정관리를 하는데서 그치는게 아니라 프로젝트라는 작은 생태계를 정상적으로 돌아가게 만들어주는 설계자입니다.

읽어주셔서 감사합니다.

공유하기:

댓글

0 / 2000
아직 댓글이 없습니다. 첫 댓글을 작성해보세요!

관련 글