다른 서비스
NEW
기획
디자인
개발
프로덕트
아웃소싱
프리랜싱
비즈니스
최근 검색어
전체 삭제
최근 검색어가 없습니다.

개발

모든 개발자가 시스템 디자인을 배워야 하는 이유

 

본문은 요즘IT와 세계 최대 빅데이터 기반의 번역/현지화(Localization) 기업 Sprok DTS에서 함께 만든 해외 번역 콘텐츠입니다. 필자인 Fahim ul Haq는 ‘Educative.io’의 공동 설립자로 개발 팀을 위한 소프트웨어 엔지니어 및 엔지니어링 지원 솔루션에 대한 실습 과정을 만들고 있습니다. 이번 글은 모든 개발자가 왜 시스템 디자인을 배워야 하는지에 대해 설명하고 있습니다.

 
<출처: Medium>

 

우리는 인터넷과 항상 연결된 기기들에 의존하는 세상에 살고 있습니다. 손목시계, 조명 시스템 또는 스마트 냉장고 등 주변의 수많은 기기가 클라우드와 연결되어 있으며, 휴대폰의 앱과도 바로 연동됩니다. 이 기사를 읽는 것만 해도 와이파이 또는 데이터 기반의 인터넷이 없으면 불가능하죠. 이러한 기능들을 가능하게 해주는 서비스들은 모두 분산 시스템 덕분에 존재합니다.

 

분산 시스템이란 서로 다른 통신 기기에 위치한 요소들로 이루어진 시스템입니다. 제대로 설계된 분산 시스템의 경우 확장이 가능하며, 더 많은 사용자와 기능을 지원하면서, 안정적이고 언제나 사용할 수 있는 서비스를 제공합니다.

 

즉, 시스템 디자인은 분산 시스템을 디자인하는 기술입니다.

 

오늘날 대다수의 애플리케이션은 분산 시스템과 연결되어 있습니다. 그렇기 때문에 시스템 디자인은 능숙한 개발자에게 필수조건과 같은 기술이 되고 있습니다.

 

Educative, Microsoft, 그리고 Facebook에 근무하면서 수백 명에 달하는 지원자를 대상으로 시스템 디자인 면접을 진행한 이력이 있습니다. 요즘에는 시스템 디자인 면접을 통과하지 않고서는 시니어 개발자 직위로 올라서는 경우가 거의 없습니다. 하지만 본인의 실력과 상관없이, 개발자라면 누구나 시스템 디자인을 배워야 한다고 생각합니다. 물론 면접 준비만을 위해 시스템 디자인을 공부하는 것은 아니라고 봅니다.

 

오늘날의 모든 개발직은 분산 시스템에 의존합니다. 따라서 어느 분야의 개발자가 되었든, 시스템 디자인을 배우면 본인 작업의 품질은 향상될 수밖에 없죠. 이제 시스템 디자인 학습을 통해 어떻게 우위를 차지할 수 있는지를 알아보겠습니다.

<출처: Medium>

 

시스템 디자인이 필요한 이유

저는 마이크로소프트와 페이스북에서 8년 동안 분산 시스템을 다루는 일을 했지만, 정작 대학교에서는 분산 시스템에 대한 교육을 받지 못했습니다. 분산 시스템과 시스템 디자인에 대한 지식은 주로 일을 하면서나 백서들을 통해 습득했습니다.

 

지금의 소프트웨어 엔지니어링 관리자들이 처음 취업을 하고, 오늘날의 리더들과 강사들이 아직 관리자 직위에 있었던 2010년 이전에는 아마존이나 구글, 마이크로소프트에서 근무하지 않는 이상 분산 시스템에 대한 이야기는 들어볼 수 없었습니다. 그 당시 대다수의 애플리케이션은 클라우드와 연동이 되지 않는 데스크톱 애플리케이션이었기 때문이죠. 그러나 모두가 알다시피 기술이란 빠르게 변화합니다. 이제 사실상 모든 애플리케이션은 분산 시스템에 더욱 의존하고 있습니다. 이러한 트렌드는 앞으로도 지속되기 때문에, 분산 시스템과 상호 작용하는 더 많은 애플리케이션을 기대할 수 있을 것입니다. 이와 같은 이유로 유능한 개발자는 분산 시스템에 대한 지식을 많이 쌓아야 합니다.

 

분산 시스템의 초창기 시절, 엔지니어들은 아무런 사전 지식 없이 분산 시스템을 개발하기 위해 노력하곤 했습니다.

 

저는 운이 좋게도 Microsoft Azure 사전 출시 팀의 일원으로 1세대 시스템 엔지니어가 될 수 있었습니다. 미지의 영역 같았던 분산 시스템 도입을 위해 노력하며, 수많은 도전과 실패, 문제에 직면했습니다. 하지만 저를 포함한 이 세대의 노력으로 시스템 디자인이라는 학문 분야를 갖게 되었습니다.

 

시스템 디자인을 통해 우리는 디자인 패턴[1]과 재사용 가능한 컴포넌트(또는 빌딩 블록)[2]를 사용하여 대규모의 확장 가능한 시스템을 구축할 수 있게 되었습니다.

 

여러분이 열정 있는 개발자라면, 본인이 기여하고 있는 시스템의 더 큰 그림을 이해하는 것이 바람직합니다.

 

시스템의 큰 그림을 이해하는 것이 왜 중요한지는 작고한 대니 소프(Danny Thorpe)의 명언에서도 볼 수 있습니다.

“전체적인 아키텍처나 디자인을 생각하지 않고 프로그래밍을 하는 것은 오로지 손전등만 가지고 동굴을 탐험하는 것과 같습니다. 지금까지 어떤 길을 걸어왔는지, 어디로 가는지, 심지어 본인이 어디에 있는지도 모르죠.” — 대니 소프

 

시스템 디자인이란 분산 시스템의 총체적인 아키텍처를 뜻합니다. 분산 시스템을 기반으로 한 세상에서 시스템 디자인을 아는 프로그래머와 모르는 프로그래머의 차이는 레스토랑의 수석 요리사와 라인 쿡의 차이와 같습니다. 수석 요리사는 시스템의 큰 그림을 이해합니다. 각각의 멤버가 어떻게 일을 진행하고, 멤버가 어떤 방식으로 서로에게 도움이 되는지 잘 숙지하고 있습니다. 각 멤버가 맡은 업무, 사용하는 도구 및 작업 방식을 잘 파악하고 있습니다. 한 명의 멤버가 맡은 업무를 다하지 못할 경우 누가 대신해서 책임을 질 건지도 잘 알고 있죠. 이러한 안목이 없는 요리사는 그저 라인 쿡에 불과합니다. 본인이 맡은 특정한 업무나 방법을 잘 알고 있을지는 몰라도, 본인이 기여하는 시스템에 대한 큰 그림을 제대로 파악하고 있지 못하니까요.

 

시니어 직책이나 리더로 승진하기 위해서 시스템 디자인이 필요한 이유는 이제 충분히 설명한 것 같습니다. 더 높은 직책으로 승진하는 것이 목표가 아니라고 해도, 시스템 디자인에 대해 더 알고 싶어 하는 마음가짐은 중요합니다. 결국에는 여러분이 분산 시스템이란 아키텍처에서 핵심적인 역할을 하기 때문입니다.

 

대다수의 리더들과 마찬가지로 제가 개발자를 채용할 때 가장 주목하는 자질은 바로 본인이 기여하고 있는 세상에 대해 더욱 배우고, 알고 싶어 하는 자세입니다.

 

훌륭한 개발자로 거듭나고 싶다면, 본인의 부족한 지식을 채워나가려 하는 의지가 있어야 합니다. 훌륭한 개발자는 지나칠 정도로 호기심이 많아야 합니다.

<출처: Medium>

 

모든 개발자가 시스템 디자인을 배워야 하는 이유

개발자에게는 언젠간 분산 시스템을 구축해야 하는 때가 옵니다. 그렇지 않다고 해도, 원하는 경험을 쌓기 위해서는 분산 시스템을 기반으로 상호 작용하는 애플리케이션을 다루게 될 것입니다.

 

예를 들어, 모바일 앱 개발자의 경우, 개발 중인 애플리케이션은 시작부터 여러 개의 분산 시스템을 기반으로 작동할 것입니다.

 

우버와 같은 승차 공유 서비스를 개발한다고 생각해 보세요. 오늘날 우버와 같은 서비스를 개발할 경우, 적어도 다음과 같은 여러 개의 서비스를 사용해야 할 것입니다.

  • 문자 메시지를 보내기 위한 Trillio
  • 결제 처리를 위한 Stripe
  • 길 안내를 위한 구글 지도
  • 근처에 있는 사용자의 위치를 찾기 위한 Yelp

 

이러한 과정에서 타 시스템을 이용할 뿐만 아니라, 본인이 개발하고자 하는 모바일 애플리케이션을 통해 본인만의 분산 시스템을 구축하게 됩니다. 이러한 승차 공유 서비스 앱은 다음과 같은 시스템 디자인의 여러 구성 요소 또한 응용하게 될 것입니다.

  • 앱이 제공하는 서비스 간 읽기/쓰기 요청을 분배하기 위한 로드 밸런서
  • 메타데이터[3] 저장을 위한 데이터베이스
  • 흔히 요청되는 데이터를 저장하기 위한 캐시

 

분산 시스템은 게임 개발에도 매우 핵심적인 역할을 합니다. 오늘날 가장 인기 있는 게임들 중 상당수가 클라우드를 기반으로 한 게임이고, 수천 명의 사용자들을 동시에 지원할 수 있는 것도 확장 가능성 덕분에 가능하죠. 이런 분류에 해당하는 게임은 Fate Grand Order와 같은 모바일 퍼스트 가챠(gacha)[4] 게임과 Pokémon Go와 같이 사회성을 가진 게임부터 League of Legends와 Halo Multiplayer과 같은 AAA 게임까지 있습니다.

 

분산 시스템은 게이밍에 필요한 속도와 안정성을 유지하는 데 있어서 매우 핵심적인 역할을 하지만, 멀티플레이어 게임을 구축하는 것이란 분산 시스템이 겪는 가장 어려운 문제 중 하나입니다. 여기서 가장 핵심적인 요소는 레이턴시(또는 속도)이며, 50ms/100ms를 초과하는 레이턴시나 지연은 사용자가 게임에 몰입을 할 수 없게 만듭니다. 게다가 서버는 속도에 큰 지장 없이 어마어마한 수의 사용자들을 동시에 지원해야 합니다.

<출처: Medium>

프론트엔드 개발자의 작업은 격리된 것 마냥 분리된 공간에서 진행되지 않습니다. 웹 페이지를 렌더링하는 과정조차도 API를 통해 여러 개의 서로 다른 분산 시스템과 상호 작용합니다.

 

구글의 홈 화면을 생각해봅시다. 구축하기 이렇게 쉬운 홈페이지는 없죠. 로고 아래에다 검색창 하나를 띄운 셈이니까요. 그러나 검색창에 글자를 치기 시작할 때부터 엔터키를 누를 때까지 브라우저는 분산 시스템을 통해 무려 수십만 개의 서버와 상호 작용을 합니다. 불과 몇 초 만에 다음과 같은 과정이 이루어집니다.

  • 사용자가 검색창에 검색어를 입력하고, 각 문자는 API를 통해 Typeahead 시스템[5]에 보내집니다. 문자가 추가로 입력될 때마다 Typeahead는 출력을 변경하여 몇 밀리 초(milliseconds) 만에 사용자의 의도를 파악합니다.
  • 사용자가 엔터키를 누른 후 수많은 시스템이 작동하기 시작합니다. 관련 웹 페이지를 찾기 위해 인덱스로 검색 쿼리가 보내집니다. 또 다른 검색 쿼리는 관련 비디오를 찾아내기 위해 유튜브로 보내집니다. 검색어가 영화 또는 레스토랑, 서적의 제목과 동일할 경우, 더욱 특화된 시스템을 거쳐 완전히 다른 경험을 제공하죠. 여기에 더해, 검색어에 따라서 결과 위에 몇 개의 링크를 추가적으로 표시하는 광고 서비스까지 존재합니다.

 

프론트엔드 엔지니어로서 마치 마술처럼 진행되는 이런 과정에 대해 호기심이 있어야 하며, 구축하고 싶은 경험을 만들기 위해 시스템과 상호 작용하는 여러 요소에 대한 지식을 갖추고 있어야 합니다.

 

어느 분야에서 일하든 시스템 디자인에 대한 지식은 더욱 다재다능한 엔지니어로 거듭나게 해주며, 경력에도 큰 도움이 될 것입니다. 시스템 내부적으로 무슨 일이 일어나고 있는지 알게 되면, 개발하고 있는 시스템의 필요사항이나 한계점에 맞는 솔루션을 더욱 잘 구축할 수 있을 것입니다.

 

하지만, 시스템 디자인 학습의 중요성은 개발자에게만 해당하는 교훈이 아닙니다.

 

최신 기술 제품을 다루는 직종의 종사자라면 시스템 디자인의 원리를 제대로 숙지함으로써 기술 담당자들과 문제없이 의사소통해야 합니다. 이러한 직종에는 기술 지원 엔지니어 및 기술 제품 관리자, 그리고 엔지니어링 관리자가 포함됩니다.

<출처: Medium>

 

면접을 위해 공부하지 마세요

면접관이 봤을 때 지원자의 가장 치명적인 단점은 바로 지식의 부족함입니다. 많은 개발자가 면접을 위해 시스템 디자인을 공부하기 시작한다는 점을 고려하면, 당연히 지식이 부족할 수밖에 없습니다. 이것이 틀렸다는 것은 아닙니다. 하지만 면접을 통과하기 위해 시스템 디자인을 공부해도 실제 상황에서 응용할 수 있을 만큼의 풍부한 지식을 습득하기는 어렵습니다. 이러한 이유로 시스템 디자인 면접을 보기 훨씬 전부터 미리 공부를 시작하는 것이 좋습니다.

 

시스템 디자인 면접만을 위해 공부하지 마세요. 시스템 디자인 자체를 위해 공부하세요!

 

시스템 디자인 공부는 최대한 일찍, 첫 직장에 근무하기 전부터 시작하는 것이 좋습니다. 초급 개발자든, 현재 프로그래밍을 배우고 있는 학생이든, 시스템 디자인에 대한 지식은 큰 이점이 됩니다.

 

중급 엔지니어인 경우, 시스템 디자인 공부를 미루지 마세요. 시스템 디자인에 대한 지식 없이 시니어 직책을 목표로 면접에 응시할 경우, 부족한 견해로 인해 지원했던 것보다 낮은 위치의 직책을 제안받을 수도 있기 때문입니다.


[1] 소프트웨어 디자인 패턴은 소프트웨어 공학의 소프트웨어 디자인에서 특정 문맥에서 공통적으로 발생하는 문제에 대해 재사용 가능한 해결책이다. 소스나 기계 코드로 바로 전환할 수 있는 완성된 디자인은 아니며, 다른 상황에 맞게 사용할 수 있는 문제들을 해결하는 데 쓰이는 서술이나 템플릿이다.
[2] 프로그래밍에서 컴포넌트란 재사용이 가능한 각각의 독립된 모듈을 뜻한다.
[3] 메타데이터는 데이터에 대한 데이터이다. 캐런 코일(Karen Coyle)에 의하면 ‘어떤 목적을 가지고 만들어진 데이터(Constructed data with a purpose)’라고도 정의한다.
[4] 가챠(gacha)란, 확률적으로 아이템을 뽑는 시스템이 들어간 게임을 말한다.
[5]  ‘자동 완성’이라고도 하며, 시스템이 사용자가 입력하는 것을 토대로 나머지 단어를 추측하는 기능을 말한다.

 

<원문>

Why every developer should learn System Design

 

위 번역글의 원 저작권은 Fahim ul Haq에게 있으며, 요즘IT는 해당 글로 수익을 창출하지 않습니다.

댓글 0

요즘IT의 번역글들

요즘 해외 개발자들은 어떻게 일할까요? 기획자나 디자이너는요? 그래서 준비했습니다. 읽어볼만한 해외 소식들을 번역해 전합니다. We are the world.

제품 관리의 제0법칙

기획

CTO는 어떤 일을 하나요?

개발

제품 디자인으로 5초 테스트하기

디자인

신입 개발자를 위한 완벽한 온보딩 가이드

개발

설문지 양식 UX: 더 나은 설문조사를 위한 언어

기획

영리한 개발자와 현명한 개발자의 차이점

개발

프리랜서 업무 로드맵 작성의 5단계

프리랜싱

주니어 개발자에서 미드레벨 개발자로 도약하기 위한 7단계

개발

최소 기능 제품 MVP, 이제 구시대적 발상인가요?

기획

스크럼이 개발자를 괴롭히는 9가지 이유

개발

북극성 지표(North Star Metric) 선택하기

비즈니스

피그마는 여러분을 나쁜 디자이너로 만들고 있습니다

디자인

인터랙션 디자인 vs 시각 디자인

디자인

좋은 디자인 포트폴리오를 만드는 팁

디자인

나에게 맞는 웹 기술 스택을 고르는 방법

개발

윈도우11은 실패작이다

프로덕트

“파이썬은 느리다”에 대한 반론

개발

파이썬 초보자가 저지르는 10가지 실수

개발

우리가 주목할 UI/UX 디자인 트렌드

디자인

2022년 프론트엔드 개발 동향

개발

코드 리뷰 문화

개발

데이터 분석가는 무슨 일을 할까요?

개발

최고의 오픈 소스 개발 도구 Top 8

개발

데이터 분석이란 무엇일까?

개발

Flutter로 UI를 구현하는 방법

개발

자바 언어의 장단점과 2022년 트렌드

개발

데브옵스(DevOps) vs 데브섹옵스(DevSecOps)

개발

엑셀을 사용한 아름다운 데이터 시각화

디자인

여러분을 더 나은 플러터 개발자로 만들어줄 7가지 프로젝트

개발

모든 디자이너가 숙지해야 할 피그마 팁과 노하우

디자인

디자인 원칙과 디자인 가치, 그리고 디자이너

디자인

디자인, 산출물 그 이상을 넘어

디자인

이 회사는 디자인에 투자하고 있는 회사일까요?

디자인

애자일은 정말 디자인을 배제하나요?

디자인

평판 관리가 프리랜서 경력에 미치는 영향

프리랜싱

리액트 네이티브 개발자들이 겪는 가장 빈번한 5가지 문제와 해결책

개발

“솔직히 우리가 하는 것은 스크럼이 아닙니다!”

기획

데이터 시각화가 인류를 위기에서 구한 세 가지 역사적 사건

디자인

NFT의 장밋빛 미래는 사실일까?

기획

피그마 토큰으로 디자인 시스템 만들기

디자인

디자이너+개발자 = 슈퍼팀 만들기

기획

1인 개발자로서 테크 스타트업을 운영하며

기획

웹 디자이너가 PX대신 REM을 사용해야 하는 이유

디자인

100개의 스타트업을 멘토링하며 깨달은 성공의 비밀

기획

중화권 앱 UI가 영미권 앱 UI와 다른 점 알아보기

프로덕트

내가 테크 리더로 일하면서 얻은 8가지 교훈

기획

모두가 즐길 수 있는 디자인 검토 회의 만들기

디자인

프로덕트 매니저에서 프로덕트 마스터로

기획

10배 이상 뛰어난 개발자가 되는 법

개발

제품 디자인 관점에서 바라보는 NFT 아바타 열풍

디자인

에어비앤비: 대규모 iOS 앱 개발 생산성을 위해 바꾼 것들

개발

스포티파이: 맞춤형 플레이리스트 개발 비하인드 스토리

개발

프리랜서가 일하게 될 15가지 유형의 프로젝트

프리랜싱

슬랙: 제품 원칙을 통해 다시 태어난 알림 기능

프로덕트

페이팔: 실시간 그래프 데이터베이스 분석을 통해 사기를 방지하는 방법

개발

트위터: 수십억 개의 이벤트를 실시간 처리하기

개발

슬랙: 4가지 애자일 가치와 방법

기획

스퀘어: 모바일 우선을 넘어 웹에서 누리는 모바일앱 경험

디자인

스포티파이: 카피를 언어로 만드는 UX 라이팅

기획

마이크로소프트: 디자인의 미래를 위한 4가지 원칙

디자인

메타: AR/VR 경험까지 고려한 디자인 청사진

프로덕트

슬랙: 훌륭한 마케팅 카피를 위한 5가지 원칙

기획

2022년 UX/UI 디자인 트렌드

디자인

구글: 가변 폰트의 놀라운 활용법

디자인

에어비앤비: 위기 상황에서의 디자인 원칙 5가지

디자인

어떻게 두 명의 인턴이 수백만 개의 코드들을 보호할 수 있었나

개발

Lattice로 마이크로 프론트엔드를 구축하는 법

개발

Cool Cats NFT를 구축하면서 배운 것

개발

웹 컴포넌트가 프론트엔드 프레임워크를 대신할까?

개발

당신이 NFT에 대해 알아야 할 모든 것

개발

우리에겐 이상하지만 개발자들에겐 일상인 일들

개발

Next.js 12에서 주목해야 할 5가지 변화

개발

스벨트 vs 리액트, 누가 더 뛰어날까?

개발

개발자를 위한 iOS 15의 새로운 기능

개발

내가 오픈소스를 싫어하는 이유

개발

프로덕트 매니지먼트 고객 여정 5단계

기획

클럽하우스의 인기는 모두 거품이었다?

프로덕트

데이터 기반 의사결정의 장점

기획

시각 디자인의 폐쇄성 법칙이란?

디자인

사용자 경험(UX) vs 서비스 디자인

기획

프로덕트 매니저는 하루 종일 무슨 일을 할까?

기획

제품 주도 성장은 어떻게 이루어지는가?

기획

UX를 망치지 않는 설득력 있는 배너 디자인

디자인

팝업(Pop-up)으로 불리는 것들에 대하여

디자인

드롭다운(Drop-down)으로 불리는 것들에 대하여

디자인

당신의 생각을 표현하는 새로운 이모지

디자인

가장 똑똑한 소프트웨어 엔지니어에게 배운 10가지 교훈

개발

성공적인 UX 프로젝트를 위한 가장 중요한 질문

디자인

2021년, UI 디자이너가 모바일 앱에서 흔히 저지르는 실수

디자인

IT 매니저가 되는 방법과 성공하기 위한 요소

기획

슬랙(Slack) 같은 앱을 만들려면 비용이 얼마나 들까?

개발

아웃소싱이 이토록 인기를 얻게 된 이유는?

아웃소싱

마케터가 UX 관련 역량을 키워야 하는 이유

기획

미니멀리즘 디자인의 핵심적인 요소들

디자인

새로운 소프트웨어 개발사가 필요하다는 7가지 신호

아웃소싱

2021년을 이끌어가는 프론트엔드 개발 트렌드 5가지

개발

PM을 성장시키는 학습 프레임워크

기획

UI 카피라이팅, 어떻게 써야 하나요?

기획

트렌드 예측: 경쟁에서 앞서는 방법

기획

제품 사고(product thinking)의 힘

기획

인하우스 vs 아웃소싱, 소프트웨어 개발 어떻게 하나요?

개발

그림을 못 그리는 사람도 쉽게 와이어프레임 그리는 방법

기획

스타트업 기업들에게 아웃소싱이 중요한 이유

아웃소싱

제품과 기능, 성공적으로 종료하는 방법 (下)

기획

제품과 기능, 성공적으로 종료하는 방법 (中)

기획

제품과 기능, 성공적으로 종료하는 방법 (上)

기획

UX 디자이너에게 반드시 필요한 12가지 스킬

디자인

패스워드 없는 세상이 오고 있다

개발

디자이너를 쉽게 잃는 방법 10가지

디자인

프론트엔드 코딩 작업에 영감을 줄 8가지 아이디어

개발

구글이 아웃소싱을 하는 이유: 아웃소싱 성공사례 5가지

아웃소싱

일 잘하는 PM이 되기 위한 로드맵 도구 5가지

기획

이제는 말할 수 있다! 아웃소싱에 대한 오해 11가지

아웃소싱

디자인 트렌드, 모던 미니멀 스타일의 UI 가이드

디자인

MVP 개발을 아웃소싱으로 해도 될까요?

개발

온보딩 효과를 높이는 '좋은' 귀차니즘 3가지

기획

게임처럼 즐겨라, 게임화 기법 TOP3

기획

시니어 소프트웨어 엔지니어는 어떻게 일할까?

개발

프로덕트 매니저가 글을 잘 써야 하는 이유

기획

2030년엔 사라질 수도 있는 프로그래밍 언어 5가지

개발

고객들이 언제나 옳은 것은 아니다

기획

유저 스토리는 무엇인가?

기획

고객 성공을 위한 14계명

기획

8px 그리드 시대가 끝나고, 4px 그리드의 시대가 열릴까?

디자인

모바일 앱은 더 이상 스타트업에게 좋은 아이디어가 아니다

기획

과연 구글의 UX 강좌는 도움이 될까요?

디자인

프로덕트 매니저 여러분, ‘소비자의 요구사항 수집’을 그만두십시오

기획

고객 여정과 경험 지도의 차이점

기획

내가 AI 업계를 떠난 이유 5가지

기획

모달윈도우(팝업)를 디자인할 때 생각할 9가지 원칙

디자인

대기업 vs 중소기업, B2B SaaS 스타트업을 위한 시장은?

기획

내가 개발 인터뷰에서 면접자에게 감동한 이유

개발

HTTP의 새로운 메서드, 서치(SEARCH)에 대하여

개발

세상의 모든 프로덕트 디자이너를 위한 5가지 심리학 원칙

디자인

2021년 테스트 자동화 트렌드 리포트 (下)

개발

2021년 테스트 자동화 트렌드 리포트 (上)

개발

아마존과 스포티파이는 어떻게 사용자를 유지하고 측정할까?

기획

UX 디자이너라면 필수적으로 알아야 할 5가지 법칙

디자인

앵귤러 vs 리액트, 2021년의 승자는?

개발

2021년, SaaS 스타트업 시작을 위한 놀라운 아이디어 10가지

기획

디지털 제품 관리에서 B2B와 B2C 사이의 차이점은?

기획

빠르게 실행할 수 있는 ‘제품 요구사항 문서(PRD)’ 만들기

기획

더 나은 제품을 위한 프로덕트 메트릭스 가이드

기획

노 코드(No Code) 트렌드로 프로그래머들은 일자리를 빼앗길까?

개발

넷플릭스의 플랫폼: 코스모스(Cosmos)에 대하여

프로덕트

비즈니스와 애자일 조직은 어떻게 친해질 수 있을까요?

기획

효과적인 제품 전략 세우기: 다수의 전략적 트랙(MuST) 활용

기획

1년 만에 이메일 마케팅 효과를 극대화했던 방법

기획

솔루션 아키텍트를 위한 팁: 아키텍처 다이어그램의 5가지 유형

개발

새로운 맥 OS ‘빅서’에 대한 UX 디자이너의 생각

디자인

디자인 트렌드, 뉴모피즘의 정석

디자인

스스로 학습하는 UI/UX 디자이너가 되기 위한 2021년 로드맵, 3편

디자인

스스로 학습하는 UI/UX 디자이너가 되기 위한 2021년 로드맵, 2편

디자인

2021년 모바일 UX 트렌드 10가지

디자인

스스로 학습하는 UI/UX 디자이너가 되기 위한 2021년 로드맵, 1편

디자인

앱 설정 기능의 UX를 개선하는 효과적인 방법

디자인

다크모드 UI 디자인의 원칙

디자인

온라인 고객 경험을 개선하기 위한 5가지 방법

기획

신생 스타트업에서 일하는 프로덕트 매니저를 위한 현실적인 조언

기획

웹 개발자와 소프트웨어 개발자의 차이는 무엇인가요?

개발

랜딩 페이지 디자인을 개선하는 13가지 꿀팁

디자인

오프라인 비즈니스가 온라인에서 존재감을 가져야 하는 이유 5가지

기획

상향식 가격 책정 및 패키징 정책: 사용자 여정을 가이드로 활용하기

기획

B2B 제품의 UX, 그것은 숨겨진 영역인가요?

기획

상단 내비게이션 vs 사이드 내비게이션, 어느 것이 더 나을까?

디자인

자동완성 검색 기능 UX 설계를 위한 8가지 팁

디자인

프로덕트 매니저는 전문적인 IT 기술을 갖춰야 하나요?

기획

실리콘밸리 51개 기업들이 말하는 프로덕트 매니저의 역할 9가지

기획

아웃소싱에 대한 모든 것

아웃소싱

앱 디자인 가이드, 사람들이 즐겁게 사용할 수 있는 앱을 만드는 법

디자인

처음부터 완제품이 아니라 ‘MVP’를 만들어야 한다

기획

플러터 vs 리액트 네이티브 vs 네이티브, 성능이 더 우수한 것은?

개발

스타트업 프로덕트 매니저로 성장하는 법, 30-60-90일 플랜

기획

당신의 두뇌는 진보하고 있다: 성취감을 위한 3가지 전략

기획

디자이너들을 편하게 해주는 HTML/CSS 마법 10가지

디자인

코딩의 미래는 ‘노 코드(No Code)’이다

개발

내가 엔지니어링 매니저로 일하면서 저지른 실수들

개발

내가 롬 리서치(Roam Research)를 좋아하는 이유와 실제 사용법 (下)

기획

내가 롬 리서치(Roam Research)를 좋아하는 이유와 실제 사용법 (上)

기획

프로그레시브 웹 앱(PWA)이란 무엇이며, 왜 필요한가?

개발

PWA vs 네이티브 앱, 어떤 것을 선택해야 할까?

개발

UI 디자인에 여백을 활용하는 8가지 팁

디자인

마이크로소프트와 링크드인의 새로운 시도, 프리랜서 마켓에 도전장을 던지다

기획

토마스넷은 왜 가입자 수를 폭발적으로 늘려준 테스트 결과를 거부했을까?

기획

잘 팔리는 기업용 소프트웨어 디자인하기

디자인

파이어베이스(Firebase)란 무엇인가? 파이어베이스 심층 탐구 : 하편

개발

파이어베이스(Firebase)란 무엇인가? 파이어베이스 심층 탐구 : 중편

개발

파이어베이스(Firebase)란 무엇인가? 파이어베이스 심층 탐구 : 상편

개발

업워크(Upwork)가 조사한 요즘 가장 인기 좋은 개발 기술 15가지

개발

일자리 산업이 휴먼 클라우드(human cloud)에 적응하는 방법

기획

팬데믹 이후 세계에서의 디지털 가속화는 어떤 모습일까?

기획

같은 분야를 다룬 글들을 권해드려요.

요즘 인기있는 이야기들을 권해드려요.

일주일에 한 번!
전문가들의 IT 이야기를 전달해드려요.

[구독하기] 버튼을 누르면 개인정보 처리방침에 동의됩니다.

일주일에 한 번! 전문가들의 요즘IT 이야기를 전달해드려요.

[구독하기] 버튼을 누르면 개인정보 처리방침에 동의됩니다.