안녕하세요 : )
SSAFYicial 9기 신산하입니다.
아무래도 안드로이드를 배우긴 어렵다보니
React Native로 프로젝트 하셨던 프론트엔드 분들이 많았을 것 같습니다.
그래서 10월의 기획기사는 React가 아닌,
React Native 면접 질문 모음으로 준비했습니다!!!
모두들 면접 화이팅 입니다 : )
1. React와 React Native는 무엇이 다른가요?
차이점 3가지를 설명드리겠습니다.
첫째, 화면 출력 방식이 다릅니다.
React의 경우 화면 출력 시 React Dom을 사용합니다. 하지만 리액트 네이티브는 AppRegistry를 사용합니다.
둘째, HTML 사용 여부가 다릅니다.
React의 경우 div, p와 같은 HTML 태그를 사용합니다. 하지만 React Native는 HTML 태그를 사용하지 않고, <View> <Text> <ScrollView> 등의 리액트네이티브 Component를 사용합니다.
셋째, CSS 사용 방식이 다릅니다.
React Native는 React처럼 CSS를 지원하지 않고, StyleSheet이라는 것을 사용합니다.
[대표 코드]
import React from 'react';
import {StyleSheet, Text, View} from 'react-native';
const LotsOfStyles = () => {
return (
<View style={styles.container}>
<Text style={styles.red}>just red</Text>
<Text style={styles.bigBlue}>just bigBlue</Text>
<Text style={[styles.bigBlue, styles.red]}>bigBlue, then red</Text>
<Text style={[styles.red, styles.bigBlue]}>red, then bigBlue</Text>
</View>
);
};
const styles = StyleSheet.create({
container: {
marginTop: 50,
},
bigBlue: {
color: 'blue',
fontWeight: 'bold',
fontSize: 30,
},
red: {
color: 'red',
},
});
export default LotsOfStyles;
2. 프레임워크와 라이브러리의 차이점은 무엇인가요?
프레임워크란 소프트웨어 개발에서 프레임워크는 미리 만들어진 구조나 도구의 집합으로, 애플리케이션을 빠르고 효율적으로 개발할 수 있도록 지원합니다. 기본적으로 정해져있는 요소와 메뉴얼이 있고, 그 틀에 개발자가 코드를 더함으로 프로그램을 완성시킵니다.
라이브러리란 특정 기능에 대한 도구나 함수들을 모아놓은 집합체입니다.
3. 네이티브 앱이란 무엇인가요?
‘네이티브 앱(Native APP)’이란 모바일 기기에 최적화된 네이티브 언어로 개발된 앱을 뜻합니다. 안드로이드 운영체제의 대표적인 네이티브 언어는 코틀린(Kotlin) 또는 자바(Java)이며, iOS는 스위프트(Swift) 또는 오브젝티브 C(Objective C)입니다.
장점의 경우 네이티브 앱은 특정 플랫폼에 맞춰 개발됩니다. 때문에 스마트폰에서 기본적으로 제공되는 기능을 쉽게 활용할 수 있습니다. 또한 운영체제에 최적화된 방식으로 만들어지므로 앱의 구동 속도가 빠르고 안정적입니다.
단점의 경우 네이티브 앱은 자유도가 높은 반면, 개발하는데 시간과 비용이 많이 듭니다. 운영체제에 따라 다른 개발 언어를 다룰 줄 알아야하기 때문입니다. (안드로이드, iOS 등)
4. 웹앱이란 무엇일까요?
네이티브 앱처럼 보이고, 기능 또한 앱과 동일하게 구현되지만, 웹 기술을 활용하여 만들어진 앱을 ‘웹 앱(Wed APP)’이라고 합니다. 네이티브 앱과 달리 웹 앱은 웹 기반의 HTML, CSS, Javascript 등을 활용하며, 별도의 앱 파일을 설치하지 않고 인터넷 브라우저를 기반으로 작동됩니다.
장점의 경우 표준 웹 언어로 만들 수 있기 때문에 상대적으로 제작 비용이 저렴하고 개발 기간도 짧은 편입니다. 또한 인터넷 브라우저를 기반으로 작동하기 때문에 별도의 앱을 설치하지 않아도 됩니다.
단점의 경우 디바이스에 접근 권한이 없기 때문에 카메라나 음성 인식 등의 기능을 활용할 수 없습니다. 또한 네이티브 앱에 비해 상대적으로 구동 속도가 느리고 안정성도 떨어집니다.
5. 하이브리드 앱이란 무엇인가요?
‘하이브리드 앱(Hybrid APP)’은 네이티브 앱과 웹 앱의 개발 방식을 모두 사용합니다. 앱의 화면이나 기능 등 콘텐츠 영역은 웹 기반으로 제작하고 겉모습은 앱 마켓 등록과 설치를 위해 네이티브 앱으로 포장해 둔 것과 같습니다. javascript 기반 react-native, dart, flutter, C#기반 Xamarin이 대표적이고, 웹뷰 형태도 hybrid app 개발 방식의 일종입니다.
장점의 경우 하이브리드 앱은 웹 기술을 기반으로 제작되지만, 모바일 API도 사용할 수 있으므로 디바이스의 자체 기능을 활용할 수 있다는 것 입니다.
단점의 경우 네이티브 앱 개발 지식이 필요하다는 것과 네이티브 앱에 비해 디자인의 자유도가 떨어진다는 점이 있습니다.
리액트 네이티브 기술면접 내용이 많지 않은 것 같습니다 ㅠ ㅠ
그래도 RN과 관련된 자그만한 이해도를 높여 면접에 가보자구요 !
'대외활동 > SSAFYicial' 카테고리의 다른 글
[CS 정리는 내가 할게, 면접은 누가볼래? - 포트폴리오 기술편] 프론트엔드 개발자가 썼던 2가지 기술에 대하여... (0) | 2023.11.28 |
---|---|
[회고] 내가 만약 자율프로젝트 1일차로 돌아간다면? 징크스를 뚫고 수상까지... (6) | 2023.11.28 |
[회고] 내가 만약 특화프로젝트 1일차로 돌아간다면? 하반기 취준과의 전쟁 (0) | 2023.10.22 |
[CS 정리는 내가 할게, 면접은 누가볼래? - 알고리즘편] 자주쓰는 알고리즘 10가지 정리! (0) | 2023.09.26 |
[TMI] 신한 해커톤 with SSAFY 현장 속으로! (0) | 2023.09.26 |