자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Firemonkey 델파이 앱개발 및 datasnap 개발 문의
2014.11.19 04:29
안녕하세요
오랜만에 델파이를 다시 만저보니 반갑네요^^
커뮤니티 여기저기 다니다가 궁금한것이 있어서 몇가지 질문드립니다.
XE7로 앱 개발을 기획하고 있습니다.
DB는 ms-sql 2012 자료양은 2000만건 정도 입니다.
1. 델파이에서 제공하는 datasnap 서버(코딩없이 기본생성된 서버) 가 쓰레드 되면서 처리할수 있는 클라이언트 수는 얼마나 되나요?
2. 만약에 datasnap서버를 증설해야 한다면 어떤방법으로 증설해야 하는지요?
3. datasnap서버에 기능을 추가하고 해당 메소드를 호출하여 처리하는것이 효과적인지 아니면 서버에서는 데이터조회만하고 나머지는 클라이언트(앱)에서 처리하는것이 효과적인 방법인지요?
기타 서버에서 구현해야 하는 기능 또는 서버에 구현하면 좋은기능은 어떻것이 있을까요?
4. datasnap서버는 어떻게 보안처리를 해야 하는 것 인지요 (클라이언트 에서 접속 할때 datasnap가 DB서버로 접속할때 나눠서 알려주시면 정말 감사하겠습니다. 혹시 해킹을 당한다면 어떤방법으로 해킹이 들어오는지도 알수있으면 좋겠습니다.)
5. 테스트로 간단한 앱개발을 해보니 PC에서는 apk파일이 11 Mb 정도 나오는데 실제 핸드폰에서는 48 Mb 로 용량을 차지하는군요. 마켓에 올릴때 제약사항이나 또는 다운시 문제가 되는 것은없는지요.
6. 앱개발을 처음해보는것이라 혹시 조언해주실 말씀이나 주의해야 할점이 있는지요?
수고하십시요
Firemonkey 델파이 앱개발 및 datasnap 개발 문의
2014.11.19 04:29
안녕하세요
오랜만에 델파이를 다시 만저보니 반갑네요^^
커뮤니티 여기저기 다니다가 궁금한것이 있어서 몇가지 질문드립니다.
XE7로 앱 개발을 기획하고 있습니다.
DB는 ms-sql 2012 자료양은 2000만건 정도 입니다.
1. 델파이에서 제공하는 datasnap 서버(코딩없이 기본생성된 서버) 가 쓰레드 되면서 처리할수 있는 클라이언트 수는 얼마나 되나요?
2. 만약에 datasnap서버를 증설해야 한다면 어떤방법으로 증설해야 하는지요?
3. datasnap서버에 기능을 추가하고 해당 메소드를 호출하여 처리하는것이 효과적인지 아니면 서버에서는 데이터조회만하고 나머지는 클라이언트(앱)에서 처리하는것이 효과적인 방법인지요?
기타 서버에서 구현해야 하는 기능 또는 서버에 구현하면 좋은기능은 어떻것이 있을까요?
4. datasnap서버는 어떻게 보안처리를 해야 하는 것 인지요 (클라이언트 에서 접속 할때 datasnap가 DB서버로 접속할때 나눠서 알려주시면 정말 감사하겠습니다. 혹시 해킹을 당한다면 어떤방법으로 해킹이 들어오는지도 알수있으면 좋겠습니다.)
5. 테스트로 간단한 앱개발을 해보니 PC에서는 apk파일이 11 Mb 정도 나오는데 실제 핸드폰에서는 48 Mb 로 용량을 차지하는군요. 마켓에 올릴때 제약사항이나 또는 다운시 문제가 되는 것은없는지요.
6. 앱개발을 처음해보는것이라 혹시 조언해주실 말씀이나 주의해야 할점이 있는지요?
수고하십시요
질문해 주신 내용이 좋아 다소 길게 답변 드립니다.^^
답변에 앞서 델파이로 모바일 개발 시 서버(리모트) 연동하는 방안을 간단히 소개해드립니다.
델파이 모바일에서 서버의 데이터 이용하기 위한 방안은 매우 다양합니다.
1, 기존의 웹서비스(WAS)의 데이터를 사용하기 위한 REST Client 기술이 있습니다.
2, 질문하셨던 DataSnap은 델파이 기술을 이용해 멀티티어 미들웨어를 만들어 서버의 데이터를 제공하는 기술입니다.
3, 클라우드를 이용한 백엔드 기능을 사용할 수 있는 BaaS 라이브러리를 이용할 수도 있습니다.
아래는 질문하셨던 데이터스냅을 기반으로 질문내용 답변드립니다.
1. 델파이에서 제공하는 datasnap 서버(코딩없이 기본생성된 서버) 가 쓰레드 되면서 처리할수 있는 클라이언트 수는 얼마나 되나요?
- 공식적으로 제공되는 동시 접속자 수 등의 정보는 없습니다. 그 이유는 서버는 내부의 비지니스 로직에 따라 동시처리와 동시접속자 등의 성능이 상이하게 달라지기 때문입니다.
- 데이터스냅은 델파이 라는 언어(툴)로 가장 쉽고, 생산성 있게 멀티티어(미들웨어) 환경을 구축한다는 컨셉으로 접근하시면 좋겠습니다.
- 그리고, 실례로 호주의 철도 예매/발권 시스템과 인도의 피자주문 시스템등이 데이터스냅 기반으로 구성되어 성공적으로 운영되고 있습니다.(물론 서버구성등의 하드웨어 기반으로 동시접속 처리를 대비하도록 구성되어있습니다.)
2. 만약에 datasnap서버를 증설해야 한다면 어떤방법으로 증설해야 하는지요?
- 서버를 여러대 두어 접속자를 분산하는 목적으로 증설을 원하신다면 소프트웨어 적인 측면 보다는 L4스위치 등의 하드웨어 구성으로 증설하는 것이 일반적입니다.
3. datasnap서버에 기능을 추가하고 해당 메소드를 호출하여 처리하는것이 효과적인지 아니면 서버에서는 데이터조회만하고 나머지는 클라이언트(앱)에서 처리하는것이 효과적인 방법인지요?
기타 서버에서 구현해야 하는 기능 또는 서버에 구현하면 좋은기능은 어떻것이 있을까요?
- 모바일에서 데이터 사용을 위한 데이터스냅을 고려하고 계신것 같습니다. 모바일 환경은 네트워크 자원이 제한적이고, 이동 시 네트워크 단절을 고려해야 합니다. 해당 이유로 되도록이면 작은 양의 필요한 데이터만 전달하는 것이 유리합니다. 서버에서 비지니스 로직을 수행하고, 모바일에서 필요한 정보로만 구성해 전달하는 방식이 모바일 특성상 작은자원(CPU, 메모리)에서 효과적인 데이터 처리할 수 있습니다.
- 서버에서 구현 시 좋은 기능은 “사용자 인증” 기능과 “권한관리” 기능입니다. 해당 기능은 아래의 글을 통해 익혀보시기 바랍니다.
http://tech.devgear.co.kr/?mid=delphi_news&document_srl=405345&rnd=407240#comment_407240
4. datasnap서버는 어떻게 보안처리를 해야 하는 것 인지요 (클라이언트 에서 접속 할때 datasnap가 DB서버로 접속할때 나눠서 알려주시면 정말 감사하겠습니다. 혹시 해킹을 당한다면 어떤방법으로 해킹이 들어오는지도 알수있으면 좋겠습니다.)
- 보안처리하는 부분은 분야가 너무 다양해 간단하게 말씀드리기는 어렵습니다.
- 코드상의 보안을 말씀드리면 데이터 스냅의 “사용자 인증” 기능과 “권한관리” 기능으로 혹시 모를 친입에 대비해 인증된 사용자에게만 데이터를 제공하도록 할 수 있습니다. 더 진행하고자 하는 경우에는 송수신 데이터의 암호화 부분도 일반적인 정보보호 방안입니다.
- 서비스상의 보안방안은 워낙 다양하지만 일반적인 방화벽과 침입방지 소프트웨어 등을 앞단에 두어 기본적인 침입을 방어할 수 있겠습니다.
5. 테스트로 간단한 앱개발을 해보니 PC에서는 apk파일이 11 Mb 정도 나오는데 실제 핸드폰에서는 48 Mb 로 용량을 차지하는군요. 마켓에 올릴때 제약사항이나 또는 다운시 문제가 되는 것은없는지요.
- 개발자입장에서는 앱의 크기에 민감할 수 있습니다. 하지만 사용자 입장과 서비스 입장에서는 크게 걱정하지 않아도 됩니다. 그 이유는 이전의 안드로이 마켓등에서는 앱의 크기를 제한했습니다. 그 이유는 안드로이드 폰 내부에 앱이 설치될 수 있는 영역이 제한되어 있었기 때문입니다. 하지만 최근 안드로이드 OS에서 해당 제한이 풀렸기 때문에 안드로이드 저장공간을 모두 사용할 수 있습니다.(16G의 갤럭시 폰이면 16G 모두 앱을 설치할 수 있습니다.)
위와 같은 변화로 최근 앱의 용량이 전반적으로 커졌습니다. 예전에는 초기 앱의 크기를 줄이고 필요한 리소스(이미지, 데이터, 사운드등의 파일)를 다운로드 받는 방식에서 최근에는 앱에 포함해 배포하는 환경으로 많이 바뀌었습니다. 물론 네트워크 환경의 개선도 영향은 있습니다.
- 위의 이유로 앱의 용량은 배포 시 크게 문제가 되지 않습니다.
6. 앱개발을 처음해보는것이라 혹시 조언해주실 말씀이나 주의해야 할점이 있는지요?
- 델파이를 이용한 모바일 개발은 델파이 개발자에게는 익숙한 툴과 언어로 모바일 시장까지 진입/확장할 수 있는 새로운 기회를 맞으신 것입니다. 이번 기회를 확실하게 잡으시길 바랍니다. (델파이로 모바일 개발의 장점을 이곳에서 다 남기기는 어렵습니다.^^)
처음 개발하시는 분들에게 개인적으로 드리고 싶은 이야기는
델파이로 모바일 개발은 델파이라는 언어와 툴은 같지만 내부의 프레임워크(VCL > 파이어몽키)와 대상 플랫폼은 다릅니다.
그래서 이런 변화 요소를 경험하기 위해 작은 단위의 프로젝트로 프레임워크와 플랫폼의 차이를 익혀보시고, 작은 프로젝트에서 성공의 경험을 먼저 해보시기 바랍니다. 분명 처음 시도하실 때 어려운 부분이 있을 것입니다. 하지만 대부분의 어려움은 플랫폼의 차이와 경험에 의한 것이기 때문에 몇번 해결해 보시면 결코 어렵지 않다는 것을 깨달으실 수 있을 것입니다.
마지막으로 델파이로 모바일 개발 시작하실 때 도움 될만한 정보 몇가지 전달해 드립니다.
모바일 개발 도서 : http://tech.devgear.co.kr/devgearbook/406570
모바일 개발 교육 : http://devgear.co.kr/edu/
모바일 개발 커뮤니티(카페) : http://cafe.naver.com/delphifmx/
엠바카데로 도움말 : http://devgear.co.kr/docwiki/
파이어몽키 정보 : http://fmxexpress.com/
제 개인 블로그 : http://blog.hjf.pe.kr/
개발 시 궁금한 내용은 이곳 테크게시판 검색, 등록도 적극 활용해 보시기 바랍니다.
감사합니다.