e비즈*솔루션

"발주처의 완벽한 SW설계는 없다"…변경 수요 가능한 SW설계방법이 중요

오병훈 기자

김재민 토스페이먼츠 서버 개발자가 2일 코엑스에서 개최된 '인프콘2024'에서 ‘지속 성장 가능한 설계를 만들어가는 방법’을 주제로 발표 중이다.

[디지털데일리 오병훈 기자] “소프트웨어(SW) 개발자는 하드웨어를 만드는 사람이 아닙니다. 소프트웨어 특성에 맞게 계속 ‘소프트’할 수 있게(유연하게) 만들어야된다는 것을 인정하고 실천해야 합니다.”

김재민 토스페이먼츠 서버 개발자는 인프랩에서 개최한 ‘인프콘2024’에서 ‘지속 성장 가능한 설계를 만들어가는 방법’을 주제로 발표하면서 이같이 강조했다.

SW개발자 입장에서 가장 난감한 것 중 하나가 지속적으로 변하는 클라이언트의 요구사항이다. 대부분 프로젝트가 그렇듯 SW 개발 또한 설계 단계부터 배포 단계까지 일정한 계획 속에서 움직이기 마련이다. 하지만, 클라이언트 요구사항 변화로 개발에 차질이 발생하는 일을 방지하기 위해서는 클라이언트 요구사항 변화를 전제로 한 유연한 설계가 필요하다는 것이다.

김재민 서버 개발자는 “클라이언트로부터 ‘완벽한 요구사항’을 전달받은 이후에나 설계를 할 수 있다고 말하는 사람들이 있는데, 그런 말은 하지 말아햐 한다고 생각한다”며 “완벽한 설계는 없고, 요구 사항은 계속 변하기 때문에 우리는 SW 장점을 살려서 변경된 요구사항으로 수용할 수 있는 설계를 구현해야 한다”고 말했다.

김 개발자는 ‘개념’과 ‘격벽’ 두 가지 방법을 통해 수용성 넓은 SW 설계 방법을 제안했다. 여기서 ‘개념’이란 개발자가 SW를 설계하기 위해 머릿속에 떠올리는 요소 및 그룹을 의미한다. 예컨대 웹툰 서비스를 개발한다고 가정을 했을 때 개발자는 ‘작가’ ‘작품’ ‘결제’ ‘리뷰’ 등 개념을 떠올릴 수 있다.

이어 이 개념들을 그룹화하게 되는 데 다양한 개념 그룹이 늘어날수록 전체적인 설계가 지저분해지기 마련이다. 이때 필요한 것이 바로 ‘격벽’이다. 격벽은 각 개념 그룹 사이 선을 그어 개념 그룹이 서로 뒤섞이지 않도록 통제하는 역할을 하게 된다. 이러한 개념과 격벽을 코드 내에서 구현하고 관리한다면 클라이언트 요구사항에 따라 유연하게 대처하는 데 이점이 있다는 것이 그의 설명이다.

그는 “우리가 만들어가는 SW도 개념들 사이 방화벽과 같은 격벽을 세우고 개념 간 접근을 제어하고 통제해야 한다”며 “이런 통제가 없다면 개념 간 무분별한 참조가 있을 것이고 SW는 점점 더 개념이 없어질 것”이라고 제언했다.

마지막으로 그는 “(개념과 격벽으로 설계된) SW에서는 더 중요한 영역과 덜 중요한 영역이 분명히 있기 때문에 자연스럽게 계층이 나눠지게 된다”며 “핵심 비즈니스가 아닌 것들을 분리하고 격리해서 개념 영역이 더 명확할 수 있도록 관리해야 한다”고 전했다.

오병훈 기자
digimon@ddaily.co.kr
기자의 전체기사 보기 기자의 전체기사 보기
디지털데일리가 직접 편집한 뉴스 채널