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

개발

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

 

본문은 요즘IT와 번역가 윌리(Willy)가 함께 만든 해외 번역 콘텐츠입니다. 소프트웨어 엔지니어인 필자 Dan Neciu는 개발뿐만 아니라 각종 UX/테스트 사례 분석으로 UX를 더 잘 이해하기 위해 노력하고 있습니다. 이번 글은 리액트 네이티브 개발자들이 겪는 가장 빈번한 문제를 알아보고, 이에 대한 해결책을 모색하기 위한 방법을 예제와 함께 설명하고 있습니다.

 

리액트 네이티브로 모바일 앱을 개발할 때 자주 마주치는 문제와 그에 대한 해결책

 

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

 

지난 몇 년간 모바일 개발의 세계는 안드로이드와 스위프트[1]의 독무대였습니다. 하지만 지금은 자바스크립트를 사용하는 아이오닉(Ionic)[2]과 같은 하이브리드 프레임워크나 리액트 네이티브(React Native)[3]와 같은 네이티브 프레임워크로 그 중심축이 이동했습니다.

 

리액트 네이티브는 메타(구 페이스북)에서 만든 오픈소스 UI 소프트웨어 프레임워크입니다. 개발자는 리액트 프레임워크를 사용하여 안드로이드, 안드로이드 TV, iOS, macOS, tvOS, 웹, 윈도우즈 및 UWP용 네이티브 애플리케이션을 개발할 수 있습니다.

 

하지만 리액트 네이티브는 리액트나 뷰(Vue)와 같은 다른 자바스크립트 라이브러리와 비교하면 커뮤니티가 크지 않으며, 개발 과정에서 마주치는 문제에 대한 해결책을 찾는데 종종 어려움을 겪게 됩니다.

 

지금부터 리액트 네이티브 개발에서 가장 빈번하게 부딪히는 난관을 어떻게 해결할 수 있는지 구체적인 예제를 통해 알아보도록 하겠습니다.

 

 

1. 애플 스토어 커넥트 스크린샷

애플 스토어 커넥트
애플 스토어 검토 프로세스

 

리액트 네이티브 앱을 개발할 때 대부분 실제 장치에 배포하기 전 시뮬레이터를 사용하여 앱을 테스트하게 됩니다. Xcode 시뮬레이터를 사용해 봤다면 앱스토어서 요구하는 크기와 해상도의 스크린샷을 만드는 것이 얼마나 어려운 일인지 아실 것입니다.

 

구글 플레이(Google Play)에서는 이러한 절차가 간단하고 시뮬레이터에서 만든 스크린샷을 업로드하는 것이 쉬웠지만, 앱스토어에서는 원하는 비율의 스크린샷을 얻기가 힘들었습니다.

 

6.5인치 아이폰은 2688x1242 또는 2778x1284의 해상도가 필요합니다. 저는 다양한 옵션과 디바이스 에뮬레이터를 사용해봤지만 모두 실패했습니다. 그리고 여기서 마침내 답을 얻게 됐습니다.

 

다음과 같은 방식으로 원하는 해상도를 얻을 수 있습니다.

  • 시뮬레이터를 물리적 크기(physical size)로 설정: Window > Physical Size (단축키: command + 1)
  • 고품질 그래픽 설정: Debug > Graphics Quality Override > High Quality
  • 6.5인치 아이폰의 경우 아이폰 프로를 사용할 것. (저는 아이폰 11 프로를 사용했습니다.)
  • 5.5인치 아이폰은 아이폰 8 이상의 시뮬레이터를 사용할 것.
  • 아이패드 프로(3세대 혹은 2세대)는 아이패드 프로 시뮬레이터(12.9인치, 3세대)를 사용할 것.

 

 

2. 폰트 문제 해결하기

폰트 문제 해결
(출처: Brett Jordan - Unsplash)

 

리액트 네이티브는 안드로이드에서 'Roboto', iOS에서 'San Francisco'를 각 플랫폼의 기본 글꼴로 사용하고 있습니다. 그러나 디자이너는 대부분 앱의 전반적인 디자인에 어울리는 다른 글꼴을 사용하는 것을 선호합니다.

 

만약 구글 폰트를 사용하기 원한다면 크게 고민할 것이 없습니다. 간단하게 expo-google-fonts 패키지를 사용하면 됩니다.

 

expo install expo-google-fonts로 패키지를 설치한 후 다음과 같이 사용하면 됩니다.

 

import {
 useFonts,
 Lato_400Regular,
 Lato_900Black,
 Lato_700Bold,
} from '@expo-google-fonts/lato';
export default function App() {
 const isLoadingComplete = useCachedResources();
 const colorScheme = useColorScheme();
 let [fontsLoaded] = useFonts({
   Lato_400Regular,
   Lato_900Black,
   Lato_700Bold,
 });
 if (!isLoadingComplete || !fontsLoaded) {
   return <AppLoading />;
 } else {
   return (
     <SafeAreaProvider>
       <Navigation colorScheme={colorScheme} />
       <StatusBar />
     </SafeAreaProvider>
   );
 }
}

 

위의 코드는 글꼴을 불러오고 앱을 시작하기 전에 로드되었는지 확인합니다. 이제 여러분의 스타일시트에서 아래와 같이 간단하게 사용할 수 있습니다.

 

fontFamily: 'Lato_400Regular'

 

expo-google-fonts와 관련해서 제가 겪었던 한 가지 문제는, 아래와 같이 실수로 전체 프로젝트를 가져와 Lato 글꼴뿐만 아니라 모든 글꼴을 로드할 때였습니다.

 

import { Lato_400Regular } from '@expo-google-fonts/dev';

 

이것은 web-view나 안드로이드 시뮬레이터에서 문제없이 동작하지만, 아이폰에서는 모든 글꼴을 한 번에 로드하려고 시도하며 메모리 제한으로 앱에 오류가 발생합니다. 따라서 다음과 같이 필요한 글꼴만 가져오는지 확인하는 것이 중요합니다.

 

import { Lato_400Regular } from '@expo-google-fonts/lato';

 

 

3. 모바일 장치의 로컬 스토리지와 쿠키

로컬 스토리지
(출처: Christina Branco - Unsplash)

 

처음에 저는 프론트엔드 개발 경험을 떠올리며 거의 모든 작업에 쿠키와 로컬 스토리지를 무분별하게 사용하려 했습니다.

 

사용자 정보를 어디엔가 저장해놓고 나중에 꺼내써야 한다면? 쿠키(Cookie)를 사용하면 되죠! 거의 변경되지 않는 요청은 어디에 저장해놔야 할까요? 로컬 스토리지(Local Storage)!

 

프론트엔드에서는 당연한 일이었기에, 저는 모바일 앱에서도 인증에 사용되는 베어러 토큰(Bearer Token)[4]과 사용자 정보 객체를 로컬 스토리지에 저장했습니다. 하지만 같은 방식으로 에뮬레이터에서 테스트해보니, 토큰이 유지되지 않고 모든 요청에 포함되는 베어러 문자열이 비어있다는 사실을 알게 됐습니다.

 

조사해보니, 이러한 문제를 해결해 줄 수 있는 패키지인 react-native-async-storage/async-storage를 찾았습니다.

 

패키지를 설치한 후 expo install react-native-async-storage/async-storage를 사용하면 우리가 일반적으로 사용하는 로컬 스트로지처럼 쉽게 사용할 수 있습니다.

 

try {
   await AsyncStorage.setItem('@token', result.data.token);
   const jsonValue = JSON.stringify(result.data);
   await AsyncStorage.setItem('@user_Object', jsonValue);
 } catch (e) {
   console.log(e);
 }
try {
 const value = await AsyncStorage.getItem('@user_Object');
 if (value !== null) {
    const userObjectParsed = JSON.parse(value);
 }
} catch (e) {
 // error reading value
}
 

 

JSON.stringify()JSON.parse() 함수가 사용되는 방식에 주목하세요. AsyncStorage.setItem() 함수에 문자열 대신 JSON을 전달하면 웹과 시뮬레이터에서는 정상 동작하지만, 실제 장치에 배포하면 앱이 오류를 내뱉으며 종료됩니다.

 

이러한 문제를 디버깅하는 것은 매우 번거로운 일입니다. stringify와 parse를 통해 값을 확인하는 습관을 들인다면 나중에 문제가 발생해도 빠르게 해결할 수 있습니다.

 

 

4. HTML 렌더링

html 렌더링
HTML 예제

 

애플리케이션에 보여주는 텍스트를 하드코딩 한다면 텍스트를 변경할 때마다 앱에 새롭게 빌드하고 앱 스토어에 다시 제출하는 과정을 거쳐야 합니다.

 

자동 업데이트를 꺼놓은 사용자는 새로운 텍스트를 영영 보지 못할 수도 있습니다. 이를 해결하려면, 절대 변하지 않는 텍스트를 제외하고는 API를 통해 전송해야 합니다.

 

하지만 API를 통해 텍스트를 보내더라도 콘텐츠가 동적으로 변한다면 어떻게 해야 할까요? 또한, 풍부한 사용자 인터랙션이 포함된 기사나 콘텐츠라면 어떻게 해야 할까요? 백엔드에서는 서식 지정이 가능한 텍스트 편집기로 원하는 제목을 입력하고 텍스트 형식을 지정할 수 있지만, 실제 앱에서는 해당 HTML을 네이티브 뷰에 렌더링하는 방법이 필요합니다.

 

이를 위해 HTML을 100% 네이티브 뷰로 렌더링하는 순수 자바스크립트로 구현된 iOS/Android용 리액트 네이티브 컴포넌트인 react-native-render-html을 사용할 수 있습니다.

 

const { width } = useWindowDimensions();
const systemFonts = ['Lato_400Regular'];
return (
 <SafeAreaView style={styles.container}>
   <ScrollView style={styles.scrollView}>
     <RenderHtml
       source={{ html: props.html }}
       systemFonts={systemFonts}
       tagsStyles={tagsStyles}
       contentWidth={width}
     />
   </ScrollView>
 </SafeAreaView>
);

사용 방법은 매우 간단합니다. 또한, 위에서처럼 systemFonts라는 폰트를 삽입할 수 있는 속성이 제공됩니다. tagStyles 속성은 HTML 콘텐츠의 스타일을 지정하는 데 사용할 수 있습니다. 이곳에서 실제로 동작하는 데모를 확인해보세요.

 

 

5. 간단한 조건식 (&&)

제가 리액트를 처음 사용할 무렵 자주 저질렀던 실수 중 하나는 컴포넌트를 렌더링할 때 && 연산자를 과도하게 사용했던 것입니다.

 

{isFetching && <Loading />}

 

그리고 아래와 같이 부울(Boolean)이 아닌 값을 첫 번째 피연산자로 사용하기 전까지는 문제없이 동작했습니다.

 

{users.length && <User />}

 

일반적인 리액트에서 훌륭하게 작동했고 프로젝트의 웹 뷰에서 아무 문제를 일으키지 않았습니다. 심지어 안드로이드와 iOS용 에뮬레이터에서도 정상 동작했습니다. 그러나 실제 기기에 배포하면 이와 같은 로직을 가진 코드 때문에 앱에서 오류가 발생했습니다.

 

Error: Text strings must be rendered within a <Text> component.

 

users 배열이 0보다 크다면 리액트 네이티브는 숫자 형식으로 렌더링하려 시도하지만 실제로는 <Text>컴포넌트이기 때문에 앱이 중단되게 됩니다. 따라서, 논리 연산자 &&를 사용하여 조건식 구문을 간소화하고자 할 때 문자열이 아닌 값이라면 신중하게 사용해야 합니다.

 

리액트 네이티브 커뮤니티는 꾸준히 성장하고 있으며 여러분의 개발을 도와줄 좋은 패키지가 많이 있습니다. 그러나 아직 자바스크립트의 명성을 따라잡기에는 갈 길이 먼 것도 사실입니다. 여기에 공유한 팁을 리액트 네이티브 개발자들이 직접 사용해보고 그동안 겪어왔던 어려움을 극복하는 데 조금이나마 도움이 되기를 바랍니다.


[1] 애플이 iOS, Mac, Apple TV 그리고 Apple Watch 앱 개발용으로 만든 강력하고 직관적인 프로그래밍 언어.
[2] 2013년 드리프티의 맥스 린치, 벤 스페리가 개발한 하이브리드 모바일 앱 제작을 위한 오픈소스 SDK.
[3] 페이스북이 개발한 오픈 소스 모바일 애플리케이션 프레임워크. 자바스크립트로 하나로 주요 모바일 플랫폼에서 동작하는 네이티브 앱을 개발할 수 있다.
[4] OAuth 2.0에서 인증에 사용하는 보안 토큰으로서 API를 통한 자원 요청시 요구된다.

 

<원문>

5 Tips to Solve Common Pitfalls With React Native

 

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

댓글 0

요즘IT의 번역글들

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

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

비즈니스

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

디자인

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

디자인

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

디자인

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

개발

윈도우11은 실패작이다

프로덕트

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

개발

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

개발

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

디자인

2022년 프론트엔드 개발 동향

개발

코드 리뷰 문화

개발

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

개발

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

개발

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

개발

Flutter로 UI를 구현하는 방법

개발

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

개발

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

개발

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

디자인

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

개발

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

디자인

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

디자인

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

디자인

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

디자인

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

디자인

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

프리랜싱

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

기획

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

디자인

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 이야기를 전달해드려요.

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