프론트엔드와 사용성(Usability)

Seoyong Lee·2022년 1월 9일
1

개발 관련 생각들

목록 보기
2/9

프론트엔드 엔지니어로 일하기 시작한 지도 이제 5개월 정도 되었다. 지금까지 디자이너 출신 스타트업 개발자로서 새로운 기능 개발과 리팩토링, 마이그레이션 등 다양한 경험을 해오면서 문득 이러한 생각이 들었다. 과연 프론트엔드에서 중요한 능력이란 무엇일까? 새로운 컴포넌트를 빠르게 만드는 것일까? 아니면 성능 최적화일까? 이러한 고민에 대한 나름의 정리를 적어보았다.

프론트엔드 vs 백엔드

먼저 프론트엔드는 백엔드와는 조금 다른 특징을 가지는 것 같다. 백엔드 개발자가 설계한 서버에서 보낸 요청은 보통 유저가 아닌 또 다른 개발자가 받아서 이용한다. 이러한 경우는 UX 적인 고민보다는 DX(Developer Experience) 적으로 개발자들 간의(혹은 코드 간의) 스트레스를 얼마나 줄이는지가 관건이라고 생각된다. 우리가 생각하는 개발자의 스테레오타입(사람보다는 기계와의 대화를 선호하며 모든 것을 논리적으로 생각하려 하는 내향형 천재 같은…) 또한 백엔드 개발자의 모습과 더욱 닮아있다.

그렇다면 프론트엔드는 어떨까? 프론트엔드는 유저와 직접적인 접점을 가지고 있다. 즉, 업무 과정에서 사람과의 교류를 고려하기에 cognitive empathy가 백엔드에 비해서 더욱 중요해질 수밖에 없고, 우리가 어떤 부분을 고쳐주느냐에 따라서 유저들은 서비스를 떠나갈 수도, 빠져들 수도 있게 된다. 마치 실제 고객들과 직접 교류하지는 않지만 어딘가에 숨어서 지켜보다가 영업 외 시간에 나와서 판매상황을 점검하는 매장 관리자의 모습과 비슷하다고 할 수 있을까? 아무튼 프론트엔드 업무는 백엔드와는 확실히 다르다는 느낌을 받았다.

프론트엔드의 특징

개인적으로 프론트엔드의 특징은 조금 더 서비스의 관점에서 기술을 바라보는 것이라고 생각한다. 물론 백엔드 개발자도 서비스의 운영에 포함되어 있고, 기획자도 서비스 전반에 대한 틀을 짜지만 결국 구체적으로 각각의 기능이 어떻게 동작할지는 UX 디자이너와 프론트엔드 개발자의 협업을 통해서 결정된다. 그러나 이러한 세부 작업은 보통 독자적으로 진행되지는 않고, 서비스라는 큰 틀과 목적 안에서 일관성 있게 진행될 수 있도록 주 단위의 스프린트 회의를 통해서 지속적으로 align 된다.

여기서 중요한 것은 프론트엔드 개발자가 얼마나 자신의 서비스를 이해하고 있는지의 여부라고 생각한다. 만약 서비스에 대한 구체적인 이해 없이 디자이너나 기획자가 넘겨주는 작업물을 구현하기만 한다면 결국 프론트엔드 개발자는 서버도 제대로 다루지 못하는 코더에 불과해진다. 그러나 우리가 자신의 서비스에 대해서 충분히 이해하고 있고, 현재 서비스 목표 달성을 위한 사용성 개선의 중요성을 알고 있다면 우리는 나름의 개선 방안을 스스로 고민하고 끊임없이 선제안을 할 수 있다.

지금 내가 작업 중인 NextJS 마이그레이션도 그러한 맥락과 연결되어 있다. 서비스를 통째로 새로운 레포로 옮기는 이 거대한 작업은 그 필요성에 대해 공감하지 못한다면 끔찍한 작업이 될 수도 있다. 그러나 이러한 수고를 통해 더 쉽게 유저들이 우리 서비스를 검색하고 빠르게 이용할 수 있다면, 그리고 그러한 니즈가 우리 스스로에게 있다면 한 번 시도해 볼 수 있는 작업이 될 것이다.

취업을 준비할 때도 마찬가지로 가장 많이 들었던 질문은 왜 그 스택을 사용하셨나요? 류의 질문이었다. 보통 엔트리 개발자들은 성능 등 기술적인 측면을 중심으로 공부해왔고, 그렇게 대답해왔던 것 같다. 그런데 과연 그렇게 대단한 성능으로 우리는 무엇을 하려는 것일까? 좋은 성능으로 좋은 사용성을 제공해서 유저들이 서비스를 떠나가지 않도록 하는 것이 프론트엔드의 가장 중요한 목표가 아닌가?

프론트엔드와 사용성

그렇다면 과연 사용성(Usability)이란 무엇일까? UX는 다음과 같이 크게 Look(외형), Feel(느낌), Usability(사용성) 세 부분으로 나눌 수 있다.

출처: Interaction Design Foundation

이 중에서 Usability(사용성)는 UX에서 큰 비중을 차지하는 부분으로 사용자가 특정 목적을 달성할 수 있도록 돕는 매우 중요한 요소이다.

그런데 이 사용성이라는 것은 재미있게도 디자인 자체에는 존재하지 않는다. 다만, 사용자가 서비스와 상호작용하면서 측정할 수 있을 뿐이다. 만약 UX 디자이너가 모바일 앱을 디자인하면서 아무리 사용성을 고려한 설계를 했다 하더라도 실제로 그것이 동작하고 이용되는 것을 보기 전까지는 실제로 사용성이 좋은지는 알 수가 없는 것이다.

여기서 중요한 점은 이러한 상호작용은 바로 프론트엔드 개발자의 담당 영역에서 일어난다는 것이다. 결국 우리가 어떤 점을 중요하게 생각하고 구현하느냐에 따라서 UX 디자이너의 결과물은 완벽한 사용성을 갖출 수도, 완전 사용성이 나쁜 서비스가 될 수도 있다.

이를 통해서 생각해보면 UX 디자이너가 아무리 유저-센트릭 마인드를 가지고 있고, 사용성 높은 디자인을 제안하더라도 이를 우리 프론트엔드 개발자들이 충분히 공감하지 못한다면 사용성은 개선될 수 없을 것이다.

결론

코딩은 기술이지만 디자인은 문제 해결을 위한 사고방식이다. 이 둘을 적절히 섞어서 만들어진 분야가 바로 프론트엔드라고 생각한다.

아쉽게도 우리는 아직 유저를 중심에 두고 사고한다는 것에 익숙하지 않은 것 같다. 심지어 사용성 개선의 가장 중요한 위치에 있는 우리 프론트엔드 개발자들조차도 가끔 자신들을 서버에서 받은 데이터를 뿌려주는 사람 정도로 인식하는 것 같아 아쉬움이 남는다.

그러나 개인적으로 프론트엔드의 미래는 밝다고 생각한다. 매체는 더욱 다양해지고 직업은 더욱 세분화 되고 있다. 언젠가는 메타버스 속의 가상 기기에 대한 뷰를 설계할 날이 올 수도 있다…. 앞으로도 프론트엔드 개발자들이 유저와의 인터랙션 분야에 대한 대체 불가능한 전문가로 자리잡을 수 있기를 기대한다.

References

Interaction Design Foundation
The Smashing Editorial (2012). “Usability and User Experience”.

2개의 댓글

comment-user-thumbnail
2022년 9월 4일

딱 제가 최근에 고민하던 내용들과 생각하던 부분이였는데 글로 잘 정리되어 있어서 잘 읽고갑니다 ㅎㅎ!!
글 작성이후로 8개월이 지났는데 지금은 이 부분에 대해서 어떻게 생각하고 계신지 궁금하네요 ㅎㅎ!
시간이 되신다면 답변 달아주시면 감사하겠습니다 😁

1개의 답글