SI 프로젝트의 현실과 개발자의 경험
처음 블로그를 시작할 때는, ‘업무 관련 글을 많이 써야지~’라고 다짐했습니다.
하지만 현실은... 점심식단 포스팅보다 낮은 빅데이터 글의 조회수...

결국 주식 관련 글에 더 많은 관심이 쏠리는 걸 보고, 투자 관련 콘텐츠에 집중하게 되었는데요.
이번에는 초심으로 돌아가, SI/SM/Data Engineering 프로젝트 경험을 시리즈로 정리해보려고 합니다.
SI 프로젝트를 시작하기 전에 꼭 알아야 할 현실들!
개발자라면 누구나 한 번쯤 겪게 될 SI의 세계를 프로젝트 경험과 함께 풀어봅니다.
아래 프로세스만 봐도 머리 아프지 않나요?
최대한 경험을 살려서 현실적이고 재미있게 풀어봤습니다.
"SI 프로젝트는 전쟁이다. 하지만 끝나면 다시 또 한다. 왜냐면… 개발자는 망각의 동물이라서."
1. SI(시스템 통합) 프로젝트 개요
SI(System Integration) 프로젝트는 기업 또는 기관에서 새로운 IT 시스템을 구축하거나 기존 시스템을 통합하는 작업을 의미한다. 프로젝트의 규모에 따라 수십 명에서 수백 명의 인원이 투입되며, 빅데이터 프로젝트의 경우 플랫폼 구축, 데이터 연동, 분석, 시각화 등의 역할이 필요하다.
일반적으로 프로젝트는 PM(프로젝트 매니저), PL(프로젝트 리더), 개발팀, 인프라 팀, QA 팀 등으로 구성되며, 프로젝트의 특성과 규모에 따라 다양한 역할이 추가된다.
2. SI 프로젝트에서의 팀별 역할
2.1 플랫폼 설치 및 인프라 팀
- Hadoop, Spark, Kafka, ZooKeeper, Oozie, Airflow... 등의 인프라를 구성하고 클러스터를 구축한다.
- 운영 환경을 최적화하고, 장애 대응 및 모니터링을 수행한다.
2.2 데이터 아키텍처 및 컨설팅 팀
- 프로젝트의 데이터 모델을 설계하고, 데이터 저장소(HDFS, Iceberg, Hive 등) 및 기술 스택을 결정한다.
- 성능 최적화를 고려한 데이터 파티셔닝 및 인덱싱 전략을 수립한다.
2.3 ETL 및 데이터 연동 팀
- 다양한 원천 데이터를 빅데이터 플랫폼으로 가져오기 위해 Sqoop, Kafka, Spark Streaming 등을 활용하여 ETL(Extract, Transform, Load) 파이프라인을 구축한다.
- 배치 및 스트리밍 데이터 처리 방식을 결정하고, 데이터 정제 로직을 구현한다.
2.4 쿼리 및 데이터 분석 팀
- Hive, Trino, Spark SQL 등을 활용하여 분석용 데이터셋을 구축하고, 비즈니스 요구사항을 반영한 쿼리를 작성한다.
- 대용량 데이터의 빠른 분석을 위해 최적화된 SQL 작성 및 성능 튜닝을 수행한다.
2.5 BI 및 시각화 팀
- 데이터 분석 결과를 시각적으로 표현하기 위해 Power BI, Tableau, Superset 등의 도구를 활용한다.
- 고객이 원하는 형태의 대시보드를 설계하고, 주요 지표를 정의하여 보고 체계를 구축한다.
2.6 웹 및 API 개발 팀
- 데이터를 조회하고 가공할 수 있도록 웹 애플리케이션 및 API를 개발한다.
- BI 시스템과 연동하거나, 외부 시스템과 데이터를 주고받을 수 있도록 API 설계를 수행한다.
2.7 프로젝트 관리(PM) 및 리더(PL)
- 일정 조율, 리스크 관리, 고객과의 커뮤니케이션을 담당하며, 각 팀 간 협업을 원활하게 조정한다.
- 개발 일정이 지연되지 않도록 진행 상황을 지속적으로 모니터링하고, 문제 발생 시 해결책을 조율한다.
3. SI 프로젝트의 진행 과정과 현실
3.1 초기 기획 및 요구사항 정의 (컨센서스 맞추기)
- 프로젝트 초반에는 고객사와의 인터뷰 및 미팅이 집중적으로 이루어지며, 개발팀 간 눈높이를 맞추기 위한 논의가 반복된다.
- 데이터 연동 방식, 분석 모델, 배포 일정 등을 구체화하기 위해 각 팀 간 조율이 필요하다.
- 여러 이해관계자(PM, 개발자, 데이터 분석가, 고객사) 간 “어떤 방향으로 가야 하는가”에 대한 합의가 중요하다.
3.2 개발 착수 및 본격적인 회의 폭탄
- 개발이 시작되면 각 팀 간 조율을 위한 회의가 빈번하게 발생한다.
- 개발자들은 “개발할 시간이 부족한데 회의만 하고 있다”는 불만을 가지기도 한다.
- 일정이 촉박한 경우, 개발팀은 회의보다 개발 시간을 보장해달라고 요구하며 일정 조정이 필요해진다.
3.3 중간 점검 및 고객 피드백 (PM과의 전쟁)
- 일정이 어느 정도 진행되면 현재 개발된 부분을 PM과 고객에게 공유하는 리뷰 단계가 진행된다.
- 이때 고객은 기획과 다르거나 예상과 다른 부분을 지적하며, “이건 다르게 만들어야 할 것 같은데요?”라고 요구하는 경우가 많다.
- PM과 개발팀 간 “이건 처음에 합의했던 내용인데요?” vs “고객이 바뀌었으니 맞춰야 합니다”라는 의견 충돌이 발생할 수 있다.
- 개발팀은 일정이 부족한 상황에서 변경 요구가 추가되면 “언제 개발하고 언제 분석하냐”는 불만이 커진다.
3.4 테스트 단계 (예민함 극대화)
- 단위 테스트(Unit Test) 및 통합 테스트(Integration Test)가 진행되면서, 사소한 오류도 큰 이슈로 번질 수 있다.
- 개발팀과 QA 팀 간 갈등이 발생할 수 있으며, 일정이 촉박할 경우 테스트가 충분히 이루어지지 않을 가능성이 있다.
- 이 단계에서 팀원들의 예민함이 극대화되며, 서로 간 긴장감이 최고조에 달하는 시기다.
3.5 배포 및 프로젝트 마무리
- 최종 검수가 완료되면 프로젝트를 운영 환경에 배포한다.
- 배포 후에도 예상치 못한 오류가 발생할 가능성이 있어 초기 운영 기간 동안 지속적인 모니터링이 필요하다.
- 프로젝트가 끝나면, 개발자들은 “이번 프로젝트는 다시는 안 하고 싶다”고 말하지만, 결국 다음 프로젝트에서 다시 만나게 된다.
4. SI 프로젝트의 문화와 개발자 경험
4.1 SI 프로젝트 특유의 긴장감과 유대감
- 일정이 빡빡하고, 개발보다 회의 시간이 많아질 때 개발팀의 스트레스가 극대화된다.
- 그러나 마지막에는 함께 힘을 합쳐 프로젝트를 마무리하는 성취감이 크다.
- 중간중간 술자리나 저녁 회식에서 “이번 프로젝트 끝나면 좀 쉬어야겠다”라고 말하면서도 결국 또 다음 프로젝트에서 함께한다.
4.2 고객과의 관계
- 고객(PM, 발주사) 입장에서는 프로젝트가 잘 진행되고 있는지 지속적으로 확인해야 하므로 개발팀과의 긴장 관계가 형성될 수밖에 없다.
- 일정이 촉박할 때마다 “이건 처음부터 계획된 건데 왜 안 됩니까?”라는 피드백이 들어오면 개발팀은 더욱 예민해진다.
- 하지만 최종 배포가 끝나고 프로젝트가 성공적으로 마무리되면 서로 고생했다고 격려하며 마무리된다.
5. 결론
SI 프로젝트는 빠듯한 일정과 빈번한 변경 사항으로 인해 개발자들에게 부담이 크지만, 동시에 실무 경험을 쌓고, 다양한 기술을 익히며, 협업을 배울 수 있는 중요한 기회다. 특히 빅데이터 프로젝트에서는 플랫폼 구축, 데이터 연동, 분석, 시각화까지 전 과정이 포함되므로, 다양한 기술을 익힐 수 있는 장점이 있다.
비록 SI 프로젝트가 쉽지는 않지만, 완료 후의 성취감과 동료들과의 유대감은 개발자로서의 성장에 큰 도움이 될 수 있다.