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

개발

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

구글의 모바일 플랫폼인 파이어베이스(Firebase)에서 디지털 매체 미디엄(Medium)을 통해 발표한 글입니다. 작성자는 더그 스티븐슨으로 파이어베이스의 엔지니어입니다. 본문은 구글의 파이어베이스(Firebase)의 다양한 기능에 대해 설명하고 있습니다. 이번 편은 지난 상편에 이어, 파이어베이스로 어떤 앱을 만들면 좋을지에 대한 꿀팁이 가득합니다. 개발자분들 눈 크게 뜨고 따라오세요!

 

파이어베이스로 어떤 종류의 앱을 만들면 좋을까요?

 

파이어베이스의 도움을 받아 만들 수 있는 앱의 종류에는 사실상 제한이 없습니다. 파이어베이스를 사용할 수 있는 플랫폼에만 제한이 있을 뿐입니다. 파이어베이스의 SDK(Software Development Kit, 소프트웨어 개발 키트)가 주로 염두에 두고 있는 대상은 iOS와 안드로이드(Android)이며, 웹(web) 기반의 개발이나, 플러터(Flutter), 유니티(Unity), C++ 환경에 대한 지원도 점점 더 늘려가고 있습니다. 그리고 만약에 백엔드 구성요소들이 필요하다면, 그러한 환경에서 사용할 수 있도록 다양한 언어들로 이용할 수 있는 관리자용 SDK(admin SDK)가 있다는 것도 알아두셔야 합니다.

 

많은 SDK들 중에서도 파이어베이스 UI(Firebase UI)라는 라이브러리(iOS, 안드로이드, 웹 용)가 있는데, 이 SDK에서는 파이어베이스를 개발 과정에서 훨씬 더 쉽게 활용할 수 있는 다양한 유틸리티를 제공하고 있습니다. 그리고 또한 앵귤러(Angular) 플랫폼을 함께 사용하기 위해서 웹 SDK를 래핑(wrapping, 감싸기)해주는 앵귤러파이어(AngularFire)라는 프로젝트도 있습니다. 이들은 모두 오픈소스(open source)입니다. 파이어베이스는 오픈소스를 좋아합니다.

 

다음은 개발자들이 파이어베이스를 사용하는 예시들입니다. 그레타(Greta)는 유니티(Unity)를 이용해서 모바일 게임을 만듭니다.

이 사람이 그레타입니다. 인터넷에서 다른 사람의 사진을 가져온 게 아닙니다.

 

그리고 숀(Shawn)은 소셜네트워킹 앱을 만들고 있습니다.

이 사람이 숀입니다. 역시 가져온 사진이 아닙니다. 이 사람들은 모두 실제 개발자들입니다.

 

그들의 표정에 보이는 것처럼, 이들은 파이어베이스로 앱을 만들면서 아주 즐거워하고 있다는 것을 알 수 있습니다.

 

그레타는 스스로를 “앱 개발자”라고 생각하지 않습니다. 게임은 앱이 아니기 때문입니다. 게임도 앱인가요? 저는 잘 모르겠습니다. 하지만 전통적인 앱과 게임은 모두 파이어베이스를 통해서 많은 문제들을 해결할 수 있습니다. 재미 삼아 말하자면, 저는 게임이 아주 복잡한 UI를 가지고 있으며 그런 UI를 사용자들이 직접 자신에게 맞게 설정할 수 있는 앱이라고 생각합니다. 즉, 앱이긴 한데, 게임적인 요소가 아주 강하게 포함되어 있는 앱이라고 할 수 있죠. 아무튼 그레타와 숀은 서로 다른 걸 만들고 있지만, 두 사람은 비슷한 어려움을 겪고 있습니다.

 

 

파이어베이스의 제품들이 실제로 앱 안에서 무슨 일을 하는지 알아보기 위해서, 앞서 상편에서 소개한 제품군의 이미지를 다시 살펴보도록 하겠습니다. 해당 그림을 보면 우리는 각각의 제품들이 “개발하기”, “개선하기”, “키워가기”라는 카테고리 안에 분류되어 있다는 것을 알 수 있습니다. (하지만 이런 분류가 아주 엄격하게 구분되는 것은 아닙니다.) 저는 먼저 “개발하기” 카테고리에 대해서 이야기를 한 다음, 그레타와 숀이 이런 제품들을 구체적으로 각각 어떤 용도로 사용하는지를 살펴보겠습니다.

 

 

앱 개발하기: “내장 기관”을 만드는 것

 

“개발하기” 그룹에 속하는 제품들은 다음과 같습니다.

 

  1. 인증(Authentication): 사용자 로그인 및 ID 관리
  2. 클라우드 함수(Cloud Functions): 서버 없이 이벤트 위주로 동작하는 백엔드
  3. 클라우드 파이어스토어(Cloud Firestore): 클라우드에 호스팅 된 실시간의 비관계형(NoSQL) 데이터베이스
  4. 클라우드 스토리지(Cloud Storage): 거대하게 확장할 수 있는 파일 스토리지
  5. 파이어베이스 호스팅(Firebase Hosting): 전 세계를 대상으로 한 웹 호스팅
  6. 머신러닝 키트(ML Kit): 일반적인 머신러닝(ML) 작업을 위한 SDK
  7. 실시간 데이터베이스(Realtime Database): 클라우드에 호스팅 된 실시간의 비관계형(NoSQL) 데이터베이스

 

파이어베이스 인증(Firebase Authentication)은 사용자의 로그인과 ID 관리를 담당합니다. 이 제품은 파이어베이스의 다른 제품들을 적절하게 설정하기 위해서 필수적인데, 특히 사용자들의 데이터에 대한 액세스(access)를 제한하고 싶을 때 중요합니다. (거의 모든 앱들이 이런 기능을 원하고 있습니다.)

 

파이어베이스 인증의 특별한 점은 보안 로그인을 쉽게 구현할 수 있다는 것인데, 이것은 개발자가 아무런 도움 없이 혼자서 직접 만들기가 엄청나게 어려운 기능입니다. 그래서 이것은 인증을 위한 일종의 “연방(Federation)”이라고 할 수 있는데, 말하자면 <스타트렉>의 ‘행성 연방(United Federation of Planets)’이 이걸 사용하라고 독려하는 것과 같습니다. 행성 연방의 피카드(Picard) 함장이 스스로 인증 시스템을 구축해야 한다고 생각하면, 아마 이런 표정을 지을 것입니다.

 

“ID 인증의 연방”이라는 것은 (페이스북, 트위터, 구글, 깃허브 등) 다양한 서비스의 ID를 파이어베이스 인증 한 군데에서 관리할 수 있다는 것입니다. 누군가는 이런 방식은 ‘연방’이 아니라 ‘연동(integration)’이 더욱 정확한 표현이라고 말할 수도 있겠지만, 어쨌든 저는 연방이라는 표현도 마음에 듭니다.

 

어떤 경우든 간에, 저는 사람들이 파이어베이스 인증을 배워서 각자의 앱에 가장 먼저 그것을 연동시키라고 말합니다. 그러면 “개발하기” 그룹에 속하는 다른 제품들을 활용해서 사용자의 데이터를 저장할 때에도, 보안의 중요성을 항상 염두에 둘 수 있기 때문입니다.

 

파이어베이스의 실시간 데이터베이스(Realtime Database)와 클라우드 파이어스토어(Cloud Firestore)는 데이터베이스 서비스를 제공합니다. 저는 두 개의 제품 모두를 ‘클라우드에 호스팅 된 실시간의 비관계형(NoSQL) 데이터베이스’라고 적어 놓았습니다. 이들 제품에는 각자의 강점과 약점들이 있습니다. 그렇기 때문에 여러분에게 어느 것이 더 적합한지를 알아내려면 약간의 조사를 하는 것이 좋습니다. 힌트를 드리자면, 클라우드 파이어스토어를 먼저 살펴보시기 바랍니다. 왜냐하면 여러분이 원하는 걸 더 많이 해결해 줄 가능성이 크고, 또한 확장성도 아주 좋습니다. 여러분의 앱이 어떠한가에 따라서 둘 중 하나를 사용할 수도 있고, 두 개를 함께 사용할 수도 있습니다.

 

그리고 파이어스토어는 기술적으로 보자면 파이어베이스의 제품이 아닌 구글 클라우드(Google Cloud)의 제품이라는 점에 주목할 필요가 있습니다. 그런데 왜 파이어베이스와 함께 묶어서 설명을 하고 있을까요? 파이어베이스가 모바일 앱에서 파이어스토어를 사용할 수 있는 SDK를 제공하고 있기 때문입니다. 그래서 우리는 (파이어스토어의) 데이터를 직접 액세스 할 수 있게 해주고, 미들웨어라는 성가신 구성요소를 없앨 수 있습니다. 여기에서 설명하는 다른 제품들도 구글 클라우드와 비슷한 관계인 것들이 있는데, 해당하는 경우에 대해서는 앞으로 설명하면서 언급하도록 하겠습니다.

 

이들 데이터베이스에서 정말로 특별한 점은 데이터베이스가 변경이 되었을 때 그 데이터들을 “실시간”으로 업데이트해준다는 것입니다. 우리는 클라이언트(단말) SDK를 사용해서 앱에서 사용하고자 하는 데이터가 있는 위치에 “리스너(listener, 요청을 받는 부분)”를 설정할 수 있습니다. 그러면 변경 사실이 감지될 때마다 리스너가 그 사실을 자동으로 알 수 있습니다. 따라서 관심을 두고 있는 데이터를 폴링(poll, 주기적으로 확인하는 것)할 필요 없이, 앱을 언제나 최신 상태로 보여줄 수 있습니다.

 

제가 “실시간 데이터”에 대해 말하는 자리에서 보여주는 GIF 이미지인데, 저는 이 그림 덕분에 돈을 좀 벌었답니다.

 

이와 같은 실시간 데이터를 이용해서, 우리의 친구인 그레타는 자신이 만드는 게임의 사용자 순위표를 모든 사람들이 실시간으로 확인할 수 있게 만들고 있습니다. 숀은 이걸 활용해서 자신의 소셜 네트워크에 있는 친구들이 서로 메시지를 주고받을 수 있게 해줍니다. 채팅 앱은 언제나 부족하기 때문입니다.

 

재미있는 사실을 말씀드리면, 이 실시간 데이터베이스는 구글이 2014년에 파이어베이스를 인수하기 이전에도 원래 “파이어베이스”였다는 것입니다. 그래서 지금도 여전히 많은 사람들이 (정확한 것은 아니지만) 실시간 데이터베이스를 그냥 “파이어베이스”라고 부르기도 합니다. 여러분은 그러지 마세요. 정확하진 않으니까요.

 

인터넷에서는 언제나 정확한 내용의 이야기를 해야 합니다. 여러분, 파이어베이스는 데이터베이스가 아니라 플랫폼입니다!

 

클라우드 스토리지(Cloud Storage)는 대규모로 확장할 수 있는 파일 스토리지를 제공합니다. 이것 역시 기술적으로는 파이어베이스가 아니라 구글 클라우드의 제품입니다. 파이어베이스용 클라우드 스토리지를 이용하면, 여러분의 앱에서 클라이언트 SDK를 사용해서 클라우드 스토리지의 “버킷(bucket)”에 파일을 직접 업로드하고 다운로드도 할 수 있습니다.

 

 

그레타의 게임에서는 클라우드 스토리지를 활용해서 사람들이 게임 속에 자신들의 아바타를 만들어서 올릴 수 있습니다. 숀의 소셜 네트워크에서는 사람들이 각자의 사진을 서로 공유할 수 있게 해줍니다. 두 사람 모두 저장 공간이 모자랄 것을 걱정하지 않아도 됩니다. 왜냐하면 클라우드 스토리지는 용량을 엑사바이트(exabyte, 1060바이트)까지 확장할 수 있기 때문입니다. 여러분은 혹시 엑사바이트에 해당하는 데이터를 저장해 본 적이 있나요? 저는 없습니다. 그런데 잠깐 계산을 해보니, 그 정도의 용량이면 지구 상의 모든 사람들이 고화질 사진을 각자 1000장씩 저장할 수 있는 정도라고 할 수 있습니다. 혹시 여러분이 이런 기능을 가진 앱을 출시하신다면, 저에게 알려 주시기 바랍니다.

 

인증(Authentication) 제품은 철저한 보안 규정을 활용해서 원본 데이터에 대한 액세스를 제어하고 있으며, 이들 세 가지 제품(실시간 데이터베이스, 파이어스토어, 클라우드 스토리지)과도 원활하게 작동합니다. 이를 통해서 클라이언트(단말)는 여러분이 허용하는 방식으로만 데이터에 액세스 할 수 있으며, 위 그림에 있는 물범과 같은 비극적인 상황을 피할 수 있습니다. 인증을 이용해서 앱에 로그인 한 사용자들은 자동적으로 인증 토큰(token, 식별자)을 여러분에게 제공하게 되며, 여러분은 누가 어떤 데이터를 읽고 쓸 수 있는지를 정해놓은 규칙 안에서 토큰을 사용할 수 있습니다. 따라서 여러분의 앱에서 사용자의 개인 데이터를 저장하는 경우라면, 파이어베이스 인증을 활용해서 보안 규칙들을 만들고 액세스를 적절하게 제한하는 것이 좋습니다. 그리고 그렇게 만든 규칙들이 다소 느슨하게 보인다면, 파이어베이스가 친절히 알려주기도 합니다.

 

“개인 정보”에 대해서 잘 몰라서는 안 됩니다. 여러분은 그게 무엇인지 충분히 파악할 수 있고, 잘 모르는 걸 자랑처럼 말해서도 안 됩니다. 파이어베이스의 보안 규칙들을 활용하세요.

 

클라우드 함수(Cloud Functions)도 또 하나의 구글 클라우드 제품으로, 다른 파이어베이스 제품은 물론이고, 클라우드 제품들과도 원활하게 작동합니다. 클라우드 함수를 위한 파이어베이스의 SDK를 활용하면, 여러분은 구글의 “서버리스(serverless, 서버가 필요 없는 환경)” 인프라 위에서 실행되는 코드를 작성하고 배포할 수 있습니다. 구글의 서버리스 인프라는 파이어베이스의 다른 제품들로부터 발생하는 이벤트에 대해서 자동으로 응답합니다. 맞습니다, 그래서 서버리스입니다!

 

 

사람들이 “서버리스”라고 말한다고 해서, 서버가 없다는 걸 뜻하지는 않습니다. 서버리스 백엔드 아키텍처(architecture, 시스템 구성)에서도 여전히 서버들은 존재하지만, 우리가 그것을 알지 못할 뿐입니다. 우리는 전통적인 (서버로 가득 찬)아키텍처에서 요구되는 프로비저닝(provisioning, 리소스를 할당하고 계획하는 것), 유지보수, 규모 확장, 또는 데브옵스(DevOps, 소프트웨어 개발과 운영을 통합하는 것) 등을 할 필요가 없습니다. 우리는 그저 코드를 작성하고 배포하기만 하면 되고, 그러면 나머지 일들은 구글이 알아서 해줍니다.

 

클라우드 함수는 파이어베이스 전체 제품군 중에서도 우리가 실제로 백엔드 코드를 작성할 수 있게 해주는 제품입니다. 제 생각에 특정한 유형의 코드는 프론트엔드가 아니라 백엔드의 잘 통제된 환경에서 실행되는 것이 좋습니다. 그리고 우리는 백엔드에서 일하는 개발자들에게도 일자리를 주어야 합니다. 제가 앞서 말했던 것처럼 말입니다.

 

클라우드 함수로 할 수 있는 일들은 엄청나게 많습니다. 저는 이걸 한 가지 개념으로 요약해보려 합니다. 즉 데이터베이스, 스토리지, 인증 등 파이어베이스는 제품들 내에서 데이터가 변경될 때 이벤트를 발생시키며, 여러분이 클라우드 함수에 배포한 코드가 이런 이벤트에 대응해서 실행됩니다.

 

숀은 클라우드 함수를 활용해서 사용자들이 자신의 계정을 삭제했을 때 데이터베이스와 스토리지가 자동적으로 지워지도록 하고 있습니다. 이는 어떠한 상황에서도 사용자의 프라이버시는 보호되어야 하기 때문이고, 사용하지도 않는 데이터를 저장하고 있다가 끔찍한 낭패를 볼 수도 있기 때문입니다. 그레타는 클라우드 함수를 이용해서 게임의 로직(logic, 소프트웨어의 연산 논리)을 실행시키는 것과 점수를 계산하는 일을 안전한 백엔드에서 실행하고 있습니다. 왜냐하면 그런 중요한 작업을 전부 프론트엔드에서 구현했다가는 해커들이 그녀가 만든 게임을 리버스 엔지니어링(reverse engineering, 완성된 제품의 개발 과정을 역으로 추적하여 작동 원리나 데이터 등을 파악하는 일)해서 부정행위를 시도할 수 있다는 걸 알고 있기 때문입니다.

 

누군가 여러분의 앱을 해킹하는 장면은 실제로 이런 모습과 비슷합니다. 헐리우드가 맞았습니다. 헐리우드를 너무 미워하지 마세요!

 

파이어베이스 호스팅(Firebase Hosting)은 안전한 콘텐츠 전송 네트워크(CDN)이며, 전 세계에 서비스할 수 있는 웹 호스팅을 기반으로 하고 있습니다. 이 서비스는 사용자들에게 가까운 곳에 있는 서버를 활용해서 (HTML, CSS, 자바스크립트, 이미지 등의) 정적인 콘텐츠를 빠르게 전송하는데 아주 좋습니다. 또한 도메인 여부와는 관계없이, 프로비저닝 된 SSL 인증서로 빠르게 설정 작업을 수행할 수 있습니다. 아무런 비용 없이 말입니다.

 

파이어베이스 호스팅은 파이어베이스의 나머지 제품들과 통합될 수 있는 중요한 지점이 하나 있는데, 그것이 바로 클라우드 함수입니다. 파이어베이스 호스팅을 활용하면, HTTP 기반의 요청이나 응답을 대신 수행하게 할 수 있습니다. 그리고 더 좋은 것은 이걸 적절하게 설정해놓기만 하면 그런 함수들을 통해서 나오는 응답들을 캐싱(caching, 요청이 많은 정보를 사용자와 가까운 곳에 보관해 놓고, 이후에도 동일한 요청이 있을 경우에 빠르게 결과를 제공하는 것)할 수 있다는 것입니다. 레스트풀(RESTful, 정보를 간단하게 전송하기 위한 기법) API를 만들 수 있는 아주 훌륭한 방법입니다.

 

 

파이어베이스의 머신러닝 키트(ML Kit)는, 여러분이 ML에 대해서 전혀 모른다고 하더라도 구글이 갖고 있는 머신러닝에 대한 풍부한 지식들을 활용할 수 있게 해줍니다. 이게 저에게는 너무나도 좋은 점인데, 제가 ML에 대해서 아무것도 모르기 때문입니다. 그런데도 저는 ML 키트와 제가 가진 기기의 카메라를 활용함으로써 텍스트를 인식하고, 얼굴을 인식하고, 랜드마크(주요 지형지물)도 인식할 수 있는 능력을 갖게 되었습니다. 아무리 성능이 좋은 휴대기기라고 해도, 전화기만으로는 처리할 수 없는 이런 어마어마한 일들을 해낼 수 있는 것입니다. 그러니 ML에 대해서 훨씬 더 잘 알고 있는 분들이라면 텐서플로(TensorFlow, 머신러닝을 위한 오픈소스 플랫폼)로 만든 더욱 복잡한 모델도 업로드 할 수 있습니다. 파이어베이스는 머신러닝 제품들을 위한 완전한 “연방”이 될 것입니다.

 

 

숀은 ML 키트를 활용해서 자신이 만든 소셜 네트워크의 사용자들이 업로드 한 사진과 동영상에서 얼굴을 찾아낸 다음, 그걸 바탕으로 이미지를 합성하는 작업을 하고 있습니다. 그레타는 아직은 ML 키트를 사용하지 않고 있는데, 그녀가 사용하는 유니티(Unity) 환경에서는 ML 키트를 아직까지 이용할 수 없기 때문입니다. 이런! 만약 그런 게 있었다면 그녀는 게임 안의 무료 아이템들을 쿠폰으로 만들어서 사람들이 QR 코드로 스캔할 수 있게 만들었을 겁니다.

 

지금까지는 “개발하기” 카테고리를 살펴봤습니다. 유용한 도구들이 너무 많죠? 하지만 파이어베이스에 대해서 논의해야 할 내용들은 아직도 많이 남아 있습니다. 다음 편에서는 앱을 키워가는 방법에 대해 함께 알아보겠습니다. (조금만 더 가면 됩니다. 파이팅!)

 

이 글은 'What is Firebase? The complete story, abridged.'을 각색하여 작성되었습니다.

댓글 0

요즘IT의 번역글들

이 프로필을 만든 저만 해도 영어가 서툴러 영어로 된 기사는 읽는 게 더딥니다. 그래서 준비했습니다. 읽어볼만한 해외 소식들을 번역해 전합니다. We are the world.

북극성 지표(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)란 무엇인가? 파이어베이스 심층 탐구 : 상편

개발

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

개발

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

기획

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

기획

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

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

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

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

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

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