뉴요커, UI/UX 디자이너, 대학원 학생 - 이곳은 나의 삶의 작은 수첩

UI UX 디자인

UX디자이너가 개발 디펜던시, Dependency를 이해하는 과정. + Bottleneck

라리라리라리 2024. 4. 22. 11:13
728x90

요즘 시스템 디자인에 관여를 많이 하게 되면서 개발자들과 디펜던시에 관하여 많이 듣고 있었습니다.

1. Dependency란 무엇이죠? 

 

흔히들 의존성이라고 하는데요, 개발자에게 물어보면, "서로 다른 코드 조각들이 어떻게 의존적으로 작동하는지" 라고 설명했습니다.

예를 들면, 레고로 집을 지을때, 우리는 벽을 세우지 않고 지붕을 얹을수 없습니다. 

소프트웨어에서도, A 프로덕트의 개발자의 코드는 어떤 특정한 처리를 하기위하여, 특정한 B 라이브러리에 의존하고 있을수 있습니다, 혹은 디펜던시를 가지고 있을수 있습니다. 만약 그 특정한 B 라이브러리가 사용가능하지 않거나, 업데이트가 정상적으로 되지 않는다면, 그 A 프로덕트또한 정상적으로 작동하지 않을것입니다. 이때 우리는 A 프로덕트가 B에 의존하고 있다고 할수 있겠습니다.

개발자가 저에게 이렇게 말했습니다.
"헤이 라리! 앞으로 B 라이브러리는 A 컴포넌트에서 사용될 C의 Anaylytics dependency에 추가될것야." 

응? 그게 무슨 의미야? 

디펜던시, 라이브러리, 그 들의 프로세스에 익숙하지 않은 저는 생각의 회로를 풀어헤쳐나가고 있었고, A 프로턱트에서 사용되는 C의 데이터를 수집하고 처리하는 데 필요한 Analytics library에 B라이브러리가 추가 될것이다로 조금더 긴 문장으로 풀어서야 이해를 하게 되었습니다. 간단히 말해서, dependency는 두 작업이나 과정의 관계이며, dependency의 처리가 끝나야지만 dependent task가 시작되고 완료될수 있습니다.

레고로 집을 지을때, 우리는 벽을 세우지 않고 지붕을 얹을수 없습니다. 
코드를 짤때, 우리는 dependency를 세우지 않고 dependent task를 얹을수 없습니다.

 

2. 그럼 바틀넥 (bottleneck)은 뭔가요?

개발과 dependency에 관해 회의를 하다보면 종종 bottleneck이라는 단어도 들립니다.

Bottleneck은 병의 목 부분을 말하는 건데요. 병의 몸통은 크지만, 목부분은 좁아서 물이 밖으로 한번에 쏟아지지 않고 천천히 나오도록 하는 역할을 하잖아요. 업무상에서는 일의 흐름을 늦게 하는 원인, 즉 어떤 huddles, limitations, constraints, 등 이슈를 의미합니다. 

dependency는 bottleneck을 만드는 주 원인이기도 한데요. 어떤 시퀀스에서 dependency task가 늦어지면 dependent task또한 지연되게 됩니다. 예를 들면 개발 인력의 부족등과 같은 리소스 제한 이슈라던가, 승인을 기다리는 커뮤니케이션 이슈 등등이 바틀넥이 될수 있습니다. 

 

3. dependency를 다룰때

그리하여, PM과 디자인, 개발이 함께 일을할때 매니지먼트에서 가장 중요한 것은
- 디펜던시가 있는지 없는지
- 디펜던시가 있다면 어디에 있는지
- 예상되는 바틀넥은 있는지 없는지
- 바틀넥이 있다면 그것이 무엇이고, 어떻게 해결해야하는지
를 정확히 알아야 합니다. 

 

모쪼록 개발자와 원할한 대화 나누시길 바랍니다!

 

728x90