Cross Platform

2021. 9. 17. 09:39IT로 돈벌기/앱 개발

반응형


안녕하세요


제가 글을 올리는 배경은
Cross Platform을 소개해드리기 위함이며, 혹시나 저와 같은 언어로 저와 비슷한 생각을 하는 분을 찾을까 해서 글을 작성하게 되었습니다.

시간적 여유는 없지만 개인 프로젝트로 조금씩 진행하다 보면 좋은 결과물이 나오지 않을까 생각합니다.

본격적으로 제가 지난 2년간 틈나는 시간마다 수행한 Sample APP을 소개해 드릴려고 합니다.
(2년이라는 오랜 시간이 걸린 이유는….기본 업무를 하는중에 정말 짬을 내여 만든 부분이라 2년 정도 걸린 것 같습니다)

개발 언어는 C#을 사용하였고, Xaml, asp.net core3.0, Xamarin, Azure Cloud, signalR을 이용한 Cross Platform입니다.

보통 APP개발을 하기 위해서는 IOS개발과 Android개발로 나눠 개발이 진행되고 각각 다른 Project, 개발 언어로 구성이 됩니다.
하지만 크로스 플렛폼인 Xamarin 을 사용할 경우 C# 단일 언어로 개발이 가능합니다.(그리고 약간의 Xaml..)
크로스 플렛폼의 장점은 유지보수 비용 절감과 관리 비용이 줄어든다는 부분이며
단점은 Native개발에 비해 개발의 한계가 항상 존재 하고 있으며 한계를 극복하기 위해서 IOS, Android에 맞는 Native 부분을 어느정도 손을 대야 하는 부분입니다.

크로스플렛폼은 정말 그 종류가 다양합니다.
현재 대세는 React Native 인데 주변에 제가 Xamarin을 한다고 하니 다른 사람들은 React Native를 왜 사용하지 않냐고 물어봤었습니다.
사실.. C#을 주 개발 언어로 삼고 있기에 해당 언어가 눈에 너무 편하기 때문에 선택한 것일 뿐입니다.
React Native도 관심은 있으나 모로가도 결과물이 나오면 된다라는 마음 때문인지 Xamarin으로 만들든 React Native로 만들든 큰 차이도 없을 것 같았고
구현이 어려운 부분에 대해서도 두개 언어 모두 똑 같은 시행착오를 겪을 것 같았습니다.
그리고 C#을 하면서 MS의 기술 Trend를 살펴 보고 있는데, 정말 급변이란 단어가 맞을 것 같습니다.
최근(‘21년 8월) 발표한 MAUI도 Cross Platform을 위한 UI로 MS에서 Xamarin에 대한 지원을 많이 한다는 것을 느끼고 있습니다.

혹, 저와 함께 Cross Platform Xamarin 위주의 Study를 하고자 하시는 분이 있으시면 연락 부탁 드립니다.
진행하다가 막히는 부분이 있으면 서로 토론하면서 문제를 해결했으면 합니다.
국내 커뮤니티는 확실히 덜 활성화 되어 있어 정보 교류가 쉽지 않은 부분이 있습니다.

Xamarin 이라는 생소한 구조를 사용하다 보니
너무 외로운 길이고 험난한 길이라 많은 토론이 있었으면 하고,
C#에 어느 정도 실력이 되시는 분이 있다면 같이 Study를 할 목적으로 이 글을 올립니다.

긴 글 읽어 주셔서 감사합니다.


[Sample APP 소개]
사용 언어 : C#
Cross Platform : Xamarin
기타 언어 : Xaml, asp net core 3.0, Linq
DB서버 : MSSQL DB(개인용 – 최소한의 Spec으로 가장 싼 DB로 Test진행중)
APP 서버 : Azure Server(무료버전 이용 + 약간의 과금)
- 주로 Restful API Service를 만들어 호출하고 결과 Return 용으로 씀
File 서버 : Azure Blob Storage(약간의 과금)


1. 로그인 기능
- 가장 신경을 쓴 부분입니다.
로그인은 한번 뚫리면 APP의 생명과 직결이 되기에 보안측면을 가장 신경 썼습니다.
사용된 보안은 JWT Token 과 Refresh Token 을 사용하여 보안 측면을 강화하였습니다.
 



2. 데이터 CRUD
- 데이터 CRUD는 Restful Service를 이용하여 동작하게 되어 있습니다.
해당 부분에는 Linq를 많이 쓰게 되는데 이 부분은 저도 아직 열심히 공부하고 있는 부분입니다.
(참고 : Linq 란 DB의 종류(Oracle,MSSQL,firebirdDB 등) 에 영향을 받지 않도록 MS에서 만든 DB control 언어입니다)
  



3. 채팅 기능
- 아직 카카오의 채팅처럼 자연스럽지는 못합니다. 여러가지를 Test 해보고 있고, 아직 갈 길이 먼 부분입니다.ㅎㅎ
  


4. 위치정보 가져오기 및 활용
- 현재 진행중인 부분입니다.
위치 정보를 가져오는 부분은 간단한데, 저 위치 정보를 통해 어떻게 활용할지에 대해서는 역시나 많은 시행착오가 필요 할 것 같습니다.
 



5. Azure Resource List
- 참 다행스럽게도 C#을 유지보수 하면서 DMT로부터 MSDN을 제공 받았고 무료로 사용할 수 있는 부분이 많았습니다.
- DB, APP서버, 파일서버 등등 모든 서버를 최소한의 Resource로 사용하여 무료 + 개인 사비를 들여 제 역량개발 목적으로 사용하고 있습니다.


 

-끝-

반응형