말문을 트이게 만드는 IT지식
“요즘은 디자이너도 개발 언어를 배워야한대!”
“나 이제 개발 스터디 시작해!”
“개발 알면 좋지, 근데 프로그래밍까지 할 필요는 없어!”
다음 대화는 제가 학생 때부터 꾸준히 들어왔고, 요즘도 종종 듣는 이야기입니다. 실제로 입사 몇 달 차에는 막연한 불안감으로 HTML, CSS 개발 스터디에 참여하기도 했습니다. 하지만 2년 차에 들어선 지금, 이 모든 것은 결국 개발자와 원활한 대화를 통해 일을 수월하게 하기 위함이었다는 사실을 깨달았어요. 이런 비슷한 고민을 가진 분들이 모여, 회의 때 아는 척이라도 할 수 있는 ‘말문을 트이게 만드는 IT지식’ 을 기획하게 되었습니다.
이번 글은 총 8개 중 1번째 글입니다. 원활한 이해를 위해 차례로 읽어보시는 것을 추천드려요. 글 하단에 모든 시리즈를 확인하실 수 있습니다.
이번 글에서는 운영체제에 대한 개념과 플랫폼 종류에 대해서 알아보고자 합니다. 해당 글을 읽고 나면, 운영 체제가 무엇인지, 반응형 웹과 하이브리드 앱, 네이티브 앱을 구분할 수 있게 돼요!
본격적으로 들어가기 앞서 우리가 가장 많이 사용하고 있는 ‘플랫폼’이라는 단어에 대해서 먼저 알아보고자 합니다.
‘플랫폼’이라는 단어는 매우 다양하고 여러 분야에 걸쳐 개념이 확장적으로 사용되고 있지만, IT 분야에서 사용되고 있는 개념으로 단어를 정의해 보고자 합니다.
처음에는 컴퓨터의 운영 제체를 의미하던 개념이었습니다. 이후 스마트 혁명이 시작되면서 애플, 구글, 아마존, 트위터, 페이스북 등의 기업이 모두 ‘플랫폼’을 기반으로 성장하게 되면서 ‘소셜 미디어’를 지칭하기도 합니다. 그중 애플과 구글은 플랫폼 공급자로서의 역할도 하고 있는데요, 이 부분은 ‘운영체제’에서 좀 더 디테일하게 다뤄보고자 합니다.
※출처 : [네이버 지식백과] 플랫폼 (인간과컴퓨터의어울림, 2014. 4. 15., 신동희)
먼저 우리가 들고 다니는 태플릿, 노트북, 애플워치 등을 하드웨어라고 했을 때, 하드웨어에서 사용자가 프로그램을 잘 사용할 수 있도록 작동 환경을 제공하는 Operating System (OS)을 올려서 사용하게 됩니다.
많이 사용되고 있는 운영체제(OS)의 종류에는 Windows, Linux, Mac OS 등이 있고 스마트폰에서는 안드로이드, iOS 등이 있습니다. 각 운영체제 따라 프로그래밍 언어를 다르게 사용하고 있는데 대표적인 예시는 다음과 같아요.
ios 개발 : 스위프트(Swift), Objective-C
Android : 자바, 코틀린
→ 이런 언어로 개발한 앱이 흔히 말하는 ‘네이티브 앱’이라고 말합니다.
(※네이티브: 원주민이라는 것에서 차용)
이러한 운영체제 위에 각 앱이 올려지게 되고 운영이 됩니다. 흔히 앱이라고 말하는 모바일 어플 이외에도 서버에서 다운받아야하는 데스크톱 프로그램들도 응용 프로그램입니다.
웹은 보통 HTML, CSS, JavaScript 언어로 개발되어 인터넷만 있다면 언제 어디서든 웹 플랫폼에 접근할 수 있습니다. 따라서 웹은 네이티브와 하이브리드와 달리 운영체제와 디바이스에 구애를 받지 않는 것이 가장 큰 특징이라고 볼 수 있어요.
최근 다양한 디스플레이에서 웹 사이트를 소비하게 되면서 서비스를 제공하는 플랫폼에서는 어떠한 디바이스에서 보더라도 최적화된 상태로 제공하기 위해 반응형 웹으로 제작하기도 합니다. 반응형 웹은 브라우저의 가로 넓이에 ‘반응’하여 구성 요소가 변하는 것을 의미해요. 즉, 넓이에 따라서 변동되는 것들을 추가로 코딩을 해야 합니다.
※ 반응형 웹에 대해서는 시리즈 7번째 글에서 조금 더 디테일하게 알아볼 예정이예요!
웹과 동일하게 개발이 되어있지만 겉모습과 구동되는 방식이 앱처럼 보이게끔 만들어진 앱입니다. 대표적으로 소규모 인터넷 쇼핑몰 앱에서 많이 볼 수 있어요.
상단 운영체제(OS)에 대한 개념을 잠깐 설명하면서 ‘네이티브’에 대해 언급이 되었었는데요, 네이티브는 말 그대로 ‘Native’ 원주민이라는 것에서 차용한 개념으로 각 OS에서 제공하는 언어로만 개발된 앱을 지칭하는 말입니다. 각 OS에서 제공되는 최적화된 언어로 개발되지 때문에 하이브리드 앱과 웹 앱에 비해 속도가 빠른 편입니다.
네이티브 앱과 웹이 결합되어 있는 앱으로 일부 페이지는 네이티브로 개발되고 필요한 부분들은 웹으로 개발이 되는 것이 특징입니다.
앱은 최신 버전을 사용하기 위해서는 앱 스토어에 들어가 업데이트를 해야 하지만, 웹은 접속할 때마다 별다른 설치 없이 최근 업데이트된 버전을 볼 수 있습니다. 따라서 웹에서는 나갔다 들어오는 것도 새로 고침으로 페이지를 불러오기 때문에 인터넷이 느릴 경우에 영향을 많이 받게 됩니다.
크로스 플랫폼은 하나의 프로그램 언어, 한 번의 개발로 iOS와 안드로이드 모두를 동작할 수 있는 개발 방식입니다. 이런 크로스 플랫폼을 구현하기 위해 사용되는 대표적인 프레임 워크로 ‘리액트 네이티브(Reactive native)’ 가 있어요.
한 번의 개발로 iOS와 안드로이드를 모두 동작할 수 있으면, 모든 앱을 크로스 플랫폼으로 개발하면 되지 않나? 하는 생각이 들 수 있지만, 크로스 플랫폼의 경우 네이티브보다 성능이 떨어진다는 특징이 있어 퍼포먼스를 하는 데 있어서 제약이 있습니다.
※ 리액트 네이티브에 대해서는 시리즈 3번째 글에서 조금 더 디테일하게 알아볼 예정이에요!
이렇게 OS의 개념과 각 플랫폼 형태의 특징을 알아봤습니다. 담당하고 있는 혹은 앞으로 구축해야 하는 플랫폼은 어떤 형태로 개발할 것인지 결정할 때 앞서 배운 각 특징들을 고려해서 앱을 만들어나갈 수 있어요.
잘못된 표현이나 추가적으로 덧붙이고 싶은 내용이 있다면 언제든 댓글 달아주세요 :)
글쓴이: Jin (Jieun)
User Experience가 무엇인지 알아가고 있는 2년차 UX 기획자 입니다. 얇고 넓은 호기심을 가지고 있어 궁금한 것이 많고 해보고 싶은 것도 많아요. 아직 어떻게, 어디까지 성장할지 모르는 게 가장 큰 장점입니다 :)
※참고 자료
https://book.naver.com/bookdb/book_detail.nhn?bid=16415934
https://brunch.co.kr/@ogaa2143/31
https://brunch.co.kr/@plusx/39
✔︎ 다른 시리즈 보러 가기
1. 운영체제(OS)와 웹, 네이티브, 하이브리드 → 현재글
3. 밤샘 개발을 줄여주는 도구들 : 라이브러리, 프레임워크, SDK
4. 한 번 보면 더 볼 일 없는 네트워크 관련 용어들
7. 화면 크기에 반응하는 웹 UI : 반응형 웹, dp, dpi, em, rem