Tutorial Eclipse Android + JSON (input, edit, delete, view)

강사 : 아리 Famuji 강사 : 아리 Famuji 소프트웨어 : Eclipse, MsWord, 메모장, Wamp, Camtasia (비디오 레코드 + 비디오 편집기) 배경 음악 : Erie Suzan – Hujan, Indung-indung – Qasidah, Suliana – Mendem Kangen, Yangseku – Pujaan Hati, Slank – Too Sweet 데스크탑 배경 : Face Ari Famuji 및 Mujiati

웹애플리케이션 만들기 – 서버와 클라이언트

지금부터 서버와 클리어언트에 대한 수업을 시작하겠습니다 서버, 클라이언트라는 이 내용은 우리 수업에서 가장 큰 체계라고 할 수 있습니다

우리는 웹을 공부하고 있지만 이 웹이라는 것은 서버와 클라이언트라는 이 체계 안에서 동작하게 되는 것이기 때문에 서버와 클라이언트는 우리 수업에서 가장 중요한 내용이라고 할수 있어요 그러면, 이 웹에 있어서 서버와 클라이언트라는 것은 어떤 의미를 갖는지를 조금 더 구체적으로 한번 살펴보겠습니다 이렇게 컴퓨터가 두대가 있어요 한대는, 왼쪽에 있는 컴퓨터는 우리가 잘쓰는 노트북이고 오른쪽에 있는 컴퓨터는 보통, 서버라고 하는 컴퓨터들은 저렇게 생겼습니다 하지만 노트북이나 일반적으로 서버라고 불리는 컴퓨터나 생긴것은 다를지언정 실제로 메커니즘은 거의 동일합니다 다만, 우리가 서버라고 하는 컴퓨터들은 안정성이 굉장히 중요하기 때문에 부품이 좀 더 안정적인 신뢰할 수 있는 부품을 쓰고있긴 하지만 여러분의 노트북도 아주 훌륭한 서버로서의 역할을 할 수 있는 컴퓨터에요 그러면 둘 다 서버가 될 수 있고 둘다 클라이언트가 될 수 있다면 어떤 컴퓨터가 서버고 어떤 컴퓨터가 클라이언트가 되는지는 이것을 통해 알 수 있습니다 웹브라우져가 설치되어 있는 컴퓨터를 우리는 클라이언트라고 부르고요 웹서버라는 소프트웨어가 설치되어 있는 컴퓨터를 서버 컴퓨터라고 부르는 거에요 그래서 여러분이 웹브라우져를 키고 웹브라우져의 주소창에다가 주소를 입력하잖아요

포털싸이트라던지 여러가지, 저희 생활코딩의 홈페이지인 opentutorialsorg 라던지 그런 주소를 입력하고 여러분들이 엔터를 "땅" 치면 어떤 일이 생기냐면 바로, 웹브라우져가 설치되어 있는 컴퓨터를 통해서 그 주소에 해당되는 서버 컴퓨터에게 요청을 하게 됩니다 뭐를 요청하냐면 여러분이 알고 싶은 정보를 담고 있는 웹페이지를 요청하는 거에요 그러면 서버컴퓨터에는 웹서버라는 소프트웨어가 설치되어 있어서 그 웹서버 소프트웨어가 그 요청을 받아서 그 서버 컴퓨터에 저장 되어 있는(하드 디스크나 이런 곳에) 저장되어 있는(웹페이지 문서가 저장되어 있을 겁니다) 그 문서를 읽어서 그것을 다시 클라이언트 컴퓨터에게 쏴주는데요 그 쏴주는 작업을 "응답한다"고 부릅니다 즉, 클라이언트는 요청하고 서버는 응답한다 라고 하는 이 관계로 인해서 요청하는 쪽을 클라이언트 응답하는 쪽을 서버라고 부르는 겁니다 클라이언트라는 말은 한국어로 얘기하면 "갑" 정도 되겠죠 "고객" 이렇게 얘기할 수 있을 것이고요 고객이 하는 것은 요청을 하는거죠 그리고 서버는 "을 " 정도 될겁니다

다른 말로는 서비스업에 종사하시는 분들 이겠죠 그리고 우리가 식당가면 "서빙한다" 라고 얘기하잖아요 그 서빙에서의 "서빙"이 "서버" 라는 말과 같은 어근, 어원을 가지고 있겠죠 그래서, 클라이언트는 요청하고 서버는 응답한다 라는 바로 이 틀의 개념을 여러분들이 이해하는 것이 굉장히 중요한 부분이고요 그리고, 웹브라우져가 설치되어 있는 컴퓨터가 클라이언트 웹서버가 설치되어 있는 컴퓨터가 서버 컴퓨터가 된다라는 것도 잘 이해하시면 좋겠습니다 그래서, 인터넷이 연결되어 있는 환경에서 동작하는 어떤 웹이나 앱이나 게임이나 이런 모든것들이 결국에는 클라이언트 , 서버라고 하는 이런 큰 틀의 체계 위에서 동작을 합니다 그렇기 때문에 여러분들이 클라이언트와 서버라고 하는 개념을 이해하신다면 이것은 꼭 우리가 지금 배우고 있는 웹에 국한된 얘기가 아니고 게임, 또는 모바일 앱 여러가지 에플리케이션들, 그 모든 분야에서 다 적용되는 개념이 바로 서버와 클라이언트라고 하는 개념입니다 그리고 우리 수업은 서버와 클라이언트라는 것을 이용해서 "웹"이라는 것이 동작하도록 하는 수업인 것이죠 그러면, 웹에 있어서 서버와 클라이언트의 관계는 웹브라우져가 클라이언트가 되고 웹서버가 서버가 되는 것이죠 그리고 여기에서 웹브라우져라고 되어 있는 저 이름은 웹 클라이언트라고 바꿔도 큰 문제는 없습니다 웹클라이언트와 웹서버가 협력해서 웹이라고 하는 것이 동작하게 된다라는 것 그것을 이해하시면 됩니다

그러면 우리가 수업을 하기 위해서는 필요한 준비물이 있습니다 뭐가 필요하냐면 첫번째는 웹브라우져가 있어야 해요 근데 여러분들이 최소한 제 수업을 보고 있다면 대부분 웹브라우져는 설치가 되어 있을 것이고 그리고 여러분들에게 웹브라우져라는 소프트웨어는 굉장히 친숙한 소프트웨어일 것입니다 특별히 설명드릴게 별로 없어요 그런데 웹서버라는 것은 프로페셔널한 웹개발자나 IT관련한 엔지니어가 아니라고 한다면 웹서버라는 말을 지금 처음들어보신분도 있을거에요 즉, 뭔가 감각적으로 가깝게 느껴지지 않을거라는 겁니다 그래서, 일단은 우리가 관심을 둘것은 웹서버 라는 것에 관심을 둘거고 바로 이 웹서버를 컴퓨터에 설치를 해야됩니다 그런데 제가 아까 말씀 드린것처럼 서버와 클라이언트는 두대의 서로 다른 컴퓨터끼리 통신을 하는거라고 말씀드렸죠 "그럼 우리 컴퓨터가 두대가 있어야 되냐" 란 생각을 하실수가 있는데 두대면 좋기는 한데 공부하는 과정에서는 한대의 컴퓨터로 충분히 가능합니다

이 한대의 컴퓨터에 웹브라우져와 웹서버를 둘다 설치를 하는거죠 그리고 웹서버와 웹브라우져가 한대의 컴퓨터 안에서 통신을 하게 하면 됩니다 이해가 안가실수 있는데 실제로 설치를 진행하면서 이 얘기는 제가 더 자세하게 할겁니다 즉, 웹브라우져에다가 여러분이 주소를 치는데 그 주소가 다른곳에 있는 컴퓨터가 아니라 바로 그 웹브라우져가 설치되어 있는 컴퓨터를 가리키게 되면 그 컴퓨터 안에, 즉 같은 컴퓨터에 설치되어 있는 웹서버가 응답해서 웹브라우져에 페이지를 보여줍니다 일종의 원맨쇼를 하는건데 이 관계는 그냥 같은 컴퓨터에서 하는 것일뿐 컴퓨터가 다르다고 해도 동일하게 작동하는 것이기 때문에 우리가 공부를 하는데는 아무런 지장이 없습니다 그리고 최종적으로 실제로 여러분들이 웹서비스를 또 웹에플리케이션을 운영하기 위해서는 다른 컴퓨터가 필요하겠지만 그건 우리 수업 끝에서 실제 상황에서 서비스를 동작시키는 방법은 우리 수업 뒤에서 나중에 살펴보게 될거니까요 지금은 일단 학습환경을 구축하는 것부터 합시다 그러면 웹서버를 설치를 해야하는데요 웹서버로는 이런것들이 있습니다

APACHE, Nginx, IIS 이런게 있는데요 이중에 Apache와 Nginx는 오픈소스 진영이고요 그리고 IIS는 마이크로소프트의 제품입니다 그래서 이런 제품들간의 현재의 경쟁구도를 좀 살펴보면 보시는것처럼 Apache는 오래전부터 한번도 일등을 놓쳐본적이 없는 웹서버 분야에서는 절대강자라고 할 수 있습니다 웹의 시작과 함께 출발한 웹서버이고 웹이라는 것이 발전하는데 있어서 굉장히 큰 공헌을 한 APACHE라고 하는 웹서버입니다 우리 수업은 APACHE를 이용해서 웹서버를 구축을 할거에요 그 다음에 마이크로 소프트, 너무나 유명한 회사이고 여기 보시면 이 그래프상으로 봤을때 2009년도에 거의 정점에 도달했죠 그래서 APACHE를 턱밑까지 쫓아 왔다가 갑자기 쇠락의 기운이 보이기 시작하는 거죠 그 다음에 보면 Nginx라고 하는 것이 2007년부터 시작이 되어서 점점 성장을 하다가 상당히 높은 퍼센트까지 올라온 것을 볼수 있습니다 그리고 조금 흥미 삼아서 볼만한 것은 여기 구글이라고 되있는거 보이시죠 이 구글은 여러분들이 알고 있는 그 구글이라는 회사가 운영하고 있는 웹서버입니다

이건 우리가 쓸순 없어요 이건 구글이 쓰는 서버인데 구글이라고 하는 단일 기업이 사용하는 자사가 만든 웹서버 하나가 이 시장에서 차지하는 비중이 이렇게 크다는건 놀라운 일이죠 얼마나 큰 회사인지 알겠죠 그 다음에 우리가 살펴 볼 것은 말슴 드린 것처럼 APACHE라는 것을 우리가 설치할거고요 APACHE를 설치 할 때는 이런 주소로 들어가셔서 실제로 설치하는 것이 정석이긴 한데 APACHE를 설치하는 것은 조금 까다로운 일이에요 직접 설치하는 것은 그리고 우리는 APACHE 즉 웹서버만 필요한 것이 아니라 나중에 제가 말씀드리겠지만 우리 수업에서는 PHP라던지 MYSQL같은 데이터베이스나 서버사이드 언어들이 필요한데요 그게 뭔지는 지금 몰라도 되지만 이런 것들도 하나하나 여러분들이 직접 설치하려고 하면 힘이 들어요 특히나 클라이언트 즉 일반적인 사용자들이 사용하는 환경의 소프트웨어는 설치하는게 어려운게 없습니다 설치하는게 어려우면 사람들은 쓰지 않기 때문에 하지만 서버쪽의 소프트웨어는 일단 굉장히 많은 기능성들이 필요해요 그리고 엔지니어들이 사용할 것이라고 감안하고 만들어진 소프트웨어이기 때문에 개발자들, 소프트웨어를 만드는 사람들의 편의보다는 그 소프트웨어를 만든 사람의 편의가 더 많이 반영되어 있기 때문에 여러분들은 이 서버쪽에서 구동되는 소프트웨어를 설치하는 것이 굉장히 어려울 겁니다

심지어 어떤것은 한달이 걸릴때도 있고 어떤것은 설치를 못하고 포기하는 경우도 있을만큼 서버쪽에서 동작하는 소프트웨어는 설치의 편의성이 대단히 나쁩니다 아파치는 좀 덜한 편이지만요 아무튼 그래서 바로 그러한 어려움이 있다는 것을 알고 그런 어려움들을 도와주는 여러가지 솔루션들이 있는데 저는 bitnami라는 것을 이용해서 apache, php, mysql 을 한번에 설치를 할겁니다 이 bitnami라는 것은 방금 말씀드린 것처럼 바로 이러한 목적 즉, 서버 소프트웨어를 여러분들이 쉽게 한방에 설치할수 있도록 도와주는 그런 도구 이고요 그리고 bitnami말고도 국내에서 만들어진 "APM SETTUP"같은 것들이 있습니다 BITNAMI를 설치하기 위해서는 각각의 운영체제마다 다른 이름의 BITNAMI버젼을 사용하셔야 되는데요 윈도우 사용자라면 여기 있는 주소로 들어가셔서 wamp라는 것을 설치하면 됩니다 w는 window, a는 apache m은 mysql이고 p는 php라는 뜻이에요 맥 사용자는 mamp를 쓰시면 되는데 m은 mac 이고 pache mysql php 입니다

리눅스를 쓰시는 분은 lamp로 접속하셔서 설치를 하시면 됩니다 그러면 우리 수업 우리 후속 수업에서는 각각의 운영체제별로 자신의 컴퓨터에 웹서버를 설치하는 방법에 대해서 짚어보겠습니다 자신의 운영체제에 맞는 사용방법을 찾아서 따라 오시면 되요

웹 애플리케이션 만들기 – 호스팅 1 : 웹호스팅 VS 서버호스팅

네, 이번 시간에는 호스팅이라고 하는 주제에 대해서 알아보겠는데요 지금까지 우리가 살펴 본 것은 자신의 컴퓨터에 여러분이 설치한 운영체제죠 그리고 거기에 PHP, MY SQL도 직접 설치했고 거기에 여러분이 만든 애플리케이션을 탑재해서 인터넷을 통해서 사용자들에게 서비스를 제공하는 것이 지금까지 우리가 했던 겁니다

다시 말해서 우리가 다 혼자서 한거에요 자, 그런데 제가 말씀 드린 것 처럼 여러가지 복잡한 이슈들이 있고 여러분의 집에서 서비스를 운영하는 것은 상당히 제한적이고 여러가지 불편한 점들이 많이 있습니다 그래서 그런 불편한 점을 대행해주는 비지니스가 있어요 그게 바로 호스팅 이라고 하는건데요 우선 HOST가 뭔지 부터 한번 살펴 보면 자, 이렇게 인터넷에 접속되어 있는 여러대의 컴퓨터들 하나 하나를 우리가 보통 호스트라고 부릅니다 자, 그런데 그 중에서 호스팅(HOSTING) 이라고 하는 것은 조금 관점이 달라요 호스팅 이라고 하는 것은 클라이언트 쪽이 아니라 보통 정보를 제공하는 사업자 즉 이쪽에 있는 저런 서버쪽 에서 사용되는 컴퓨터 또는 소프트웨어 이러한 것들을 제공하는 그런 사업자들을 우리가 호스팅이라고 보통 부릅니다 자, 그래서 이 호스팅에서는 어떤 환경을 갖추고 비지니스를 하냐면 이 사업자들이 일단 IDC 라는 것이 있습니다 IDC 는 Internet Data Center 라는 뜻이에요 그래서 이 IDC는 그냥 건물이에요

건물인데 엄청나게 크고 엄청나게 많은 컴퓨터들이 이렇게 빼곡히 자리를 잡고 있어요 즉 컴퓨터들의 집이라고 할 수 있습니다 그래서 이 IDC는 아주 안전한 곳에 또 전기가 차단되면 그 전기가 자동으로 자가발전을 시작하는 그런 인프라고 그리고 인터넷과 같은 네트워크가 아주 빵빵하게 들어와서 아주 원할하게 통신할 수 있는 그런 서버가 동작하기에 최적의 조건을 갖춘 그러한 공간을 우리가 IDC 데이터 센터(Data Center) 라고 합니다 그래서 이 데이터센터가 갖춰야될 가장 중요한 경쟁력은 일단은 안전한 보안 그리고 네트워크가 빵빵해야 된다 라는 것이죠 바로 이런 인프라를 갖춰놓고 또는 이런 인프라 안에 들어가서 사용자들에게 어떤 웹 애플리케이션을 운영하고자 하는 사람들에게 그 서버의 운영을 대행해주는 역할을 하는 곳이 바로 호스팅 사업입니다 자, 크게 대표적으로는 두가지로 웹호스팅, 그리고 서버 호스팅을 얘기할 수 있을텐데요 자 우선 웹 호스팅이라는 것은 웹이 앞에 붙어 있잖아요 그 얘기는 뭐냐면 웹 애플리케이션을 운영하기 위한 다시 말해서 웹 서버를 운영하기 위한 모든 것을 제공 하는 것을 우리가 웹 호스팅이라고 합니다 자, 그래서 기본적으로 서버, 여기서 얘기하는 서버는 하드웨어를 의미하는 것이고 또 운영체제까지 포함이 되는거죠 그리고 거기에는 당연히 빵빵한 인터넷이 연결이 되어 있어야 되죠 그리고 그러한 것들 뿐만 아니라 실제로 우리가 웹 애플리케이션을 동작하기 위해서는 이러한 것들이 필요했잖아요 데이터베이스, PHP, 웹서버 이런 것들이 필요했는데 그런 것들을 여러분들이 설치하는게 아니라 사업자가 미리 설치해 놓고 여러분들은 그냥 거기에다가 자신이 만든 애플리케이션을 업로드 하기만 하면 이제 동작하기 시작하는 것이 웹 호스팅 입니다 장점은 그냥 업로드만 하시면 되요 신경쓸게 없습니다 여러분은 자신이 만들고 있는 애플리케이션을 잘 만드는 것에 집중하면 된다는 것이고요 그리고 단점은 웹 애플리케이션을 동작하는 용도로만 사용할 수 있다는 겁니다

왜냐하면 여러분이 운영체제 레벨에서 접근해서 뭔가 할 수 있는 여지가 전혀 없기 때문에 그냥 웹사이트를 운영하는데만 사용 할 수 있어요 그리고 일반적으로 웹호스팅은 한대의 컴퓨터에 여러명의 사용자들이 들어가서 같이 한대의 컴퓨터의 자원을 공유하고 있기 때문에 만약에 이웃을 잘못 만나서 이웃이 대박이 나면 여러분한테는 슬픈 일이 오는거에요 왜냐 자신의 사이트가 느려지는거죠 바로 이러한 장점과 단점을 가지고 있는 것이 웹호스팅 입니다 하지만 가장 사용하기 쉽고 비용도 대체로 저렴하기 때문에 여러분이 자기가 직접 집에서 서버를 운영하는 것이 아니라면 제일 먼저 고려해 볼 만 한 것은 웹호스팅 입니다 자 그 다음에는 서버호스팅이라고 하는 형태의 호스팅이 있는데요 자, 이 서버 호스팅은 쉽게 생각해서 컴퓨터를 제공하는 겁니다 그리고 이 컴퓨터는 인터넷에 연결이 잘 되어 있기 때문에 여러분이 이걸 이용해서 서버의 용도로 사용할 수 있는거죠 자 그래서 이 서버 호스팅은 일단은 서버 컴퓨터를 제공합니다 예, 그런데 이 서버 컴퓨터에는 아까 우리가 (배운) 웹호스팅과는 다르게 웹서버, 미들웨어, 데이터베이스 이런 것들이 하나도 설치가 안되어 있고 그냥 컴퓨터 한대를 임대해 준거에요 그럼 여러분은 자신이 필요한 그런 것들은 직접 설치해서 운영하셔야 합니다

장점은 뭐냐면 웹호스팅과는 다르게 여러분이 컴퓨터로 할 수 있는 모든 일을 다 할 수 있어요 네, 그렇기 때문에 자유도가 높기 때문에 활용도가 높다는 장점이 있습니다 근데 단점은 직접 운영을 해야되요 자, 서비스를 직접 운영한다는거 결코 만만한 일이 아닙니다 네, 알아야 될것들이 상당히 많다는거죠 하지만 여러분의 집에서 여러분이 운영하는 것과는 다르게 서버 호스팅은 뭐, 장비라던지 어 그런 것들에 대해서는 어

업체들이 대행해 준다라는 차이가 있죠 하지만 여러분이 직접 운영하면 여러분은 자신의 장비까지 컴퓨터까지 직접 챙겨야 된다 라는 점에서 차이점이 있는거죠 지금 우리가 살펴본 호스팅의 두가지 형태 웹호스팅, 서버호스팅 이 두가지가 우리가 인터넷을 통해서 어떤 서비스를 사용자들에게 제공한다고 하면 가장 일반적으로 사용되는 가장 쉽게 여러분들이 접근해 볼 수 있는 전통적인 모델이라고 할 수 있습니다 자, 그러면 또 다른 모델이 있냐? 있습니다 클라우드 컴퓨팅 이란 것이 있는데요 이 클라우드 컴퓨팅 이라고 하는 것은 우리가 다음 영상에서 도대체 클라우드 컴퓨팅 이란 것이 무엇이고 이건 어떤 차이점이 있는지에 대해서 다음시간에 살펴보도록 하죠

웹애플리케이션 만들기 – MySQL 실습1 : PHP와 연동

우리가 이전 시간에 데이터베이스 이론 수업을 진행을 했구요 이번 시간에는 우리가 배운 그 데이터베이스를 실제로 활용해서 웹 애플리케이션을 만드는 구체적인 방법에 대해서 살펴보겠습니다

우선 복습 차원에서 예전에 우리가 작업했던 것을 다시 한 번 리뷰를 해 보죠 보시는 것 처럼 이런 구성이었어요 웹브라우저, 웹서버, PHP 그리고 데이터는 FILE에 저장되어 있는 상태가 우리가 지금까지 만들어오던 micro 한, 작은 opentutorials 예제가 이런 구성으로 현재 되어 있었다는 것이죠 그 중에서 저 FILE이라고 되어있는 부분, 데이터를 FILE에 저장하고 있었던 것을 좀 더 개선해서, FILE이 아니라 바로 MySQL이라고 하는 데이터베이스로 교체하는 작업을 이번 시간부터 우리가 진행을 할 겁니다 그래서 결과적으로 우리가 만든 애플리케이션이 동작하는 방법에는 차이가 없습니다 다만 그 내부적으로 정보를 파일에 저장하느냐 데이터베이스에 저장하느냐의 차이가 생겼을 뿐이구요

그런 맥락에서 이 PHP라고 하는 것은, 이 파일에 데이터 저장하고 읽고 이랬던 역할에서, 보시는 것처럼 이 데이터베이스 시스템과 또 웹서버 사이에서 이렇게 중계자와 같은 역할을 하게 됩니다 즉 사용자가 요청한 aphp를 웹서버가 처리할 수가 없기 때문에 PHP에게 위임을 하는데 그 aphp에 데이터베이스에 있는 정보를 가져와서 웹페이지로 만들라는 코드가 들어가 있다면 이 PHP가 중간에서 데이터베이스에 있는 정보를 가져와서 웹페이지를 만들어내는 일종의 중계자와 같은 역할을 한다는 것이죠 그런 맥락에서 이런 PHP 애플리케이션을 우리가 미들웨어라고도 부릅니다

그럼 PHP가 그런 일을 하기 위해서 무엇을 우리가 사용을 해야 되고 어떻게 프로그래밍을 해야 되냐면, 바로 “mysqli”라고 하는 이 PHP에 내장되어 있는 API를 사용을 해서 우리가 그런 목적을 달성할 수가 있습니다 그러면 지금부터 우리가 일단 실습 환경을 좀 구축을 해 보죠 실습 환경은 이미 다 구축이 되어있어요 우리가 기존에 indexphp라는 파일을 이용해서 샘플을 만들었죠

그리고 이 파일 내부적으로는 8개 콘텐츠, 즉 파일을 읽어드릴 때 사용하는 API를 사용을 해서 구축이 되어 있었습니다 바로 이런 부분들을 우리가 PHP로 데이터베이스를 핸들링 할 때 사용하는 mysqli로 교체 하려고 하는 겁니다 그 때 사용하는 것은 일단은 제일 위 쪽에 이렇게 PHP를 입력할 수 있는 부분을 만들어주시고요 여기에 제가 지금부터 설명 드리는 내용을 추가하시면 됩니다 그런데 데이터베이스를 핸들링하는 데이터베이스를 다루는 코드는 꽤 복잡하고 다양한 이 문제 상황들이 발생할 수가 있기 때문에, 여러분들이 어떤 문제가 발생했는지를 알고 계셔야 됩니다

그냥 보시면 화면에 아무것도 표시가 안 될 거기 때문에, 그래서 제가 예전에 여러분들에게 말씀 드렸던게 기억나실지 모르겠는데, 이 디버그라는 수업에서 문제가 발생했을 때 어떤 문제가 발생했는지를 알 수 있는 파일이 있다고 말씀을 드렸습니다 그 파일을 열어놓고 실습을 진행하셔야 돼요 그러면 그 파일을 찾는 법을 다시 한 번 remind를 시켜줄게요 우선 “FILE”에서 “Open File”을 선택하시구요 “Bitnami”디렉토리에서 “ampstack”으로 들어가신 후에, 그 중에서 “apache”로 들어 가시고, “logs”라고 되어있는 곳으로 들어가시면, “error

log”라는 파일이 있습니다 저 파일을 열어보시면 이렇게 생긴 화면이 뜨는데요 바로 여기에 에러가 있을 경우에 그 에러 내용이 여기에 표시가 됩니다 그 내용을 보시고 어디에서 문제가 생겼는지를 추적하시면 되구요 또는 다른 사람에게 질문할 때 이 에러 메시지를 다른 사람에게 보여주는 것을 통해서 문제 해결에 도움을 받을 수 있을 겁니다

그러면 이제부터 이곳에 들어가야 될 코드들을 우리가 하나씩 하나씩 살펴보도록 하죠 제가 표를 하나 준비 했는데요, 여기 보시면 이 MySQL monitor가 왼쪽에 있고요, 그 오른쪽에는 PHP에서 데이터베이스를 사용하기 위해서 PHP가 제공하는 내장 함수 API인 mysqli가 이렇게 있습니다 그리고 왼쪽 끝에 보시면 “서버접속”, “DB 선택”, “조회”, “출력” 이라고 되어 있는데요, 이것은 우리가 이 데이터베이스 클라이언트가 베이터베이스 서버에 접속해서 어떤 일을 처리할 때 일어나는 작업들을 순차적으로 나열한 것 입니다 그래서 우리가 이미 MySQL monitor를 사용을 해 봤잖아요 그리고 이제부터 사용할 것은 mysqli인데, 이 두 가지 모두 이 데이터베이스 서버 입장에서는 그 서버에게 무언가를 요청하는 클라이언트이기 때문에 본질적으로 하는 일이나 또는 그것을 조작하는 방법은 사실 같습니다

하나는 일반적인 프로그램이고 그리고 또 하나는 API라고 하는 그런 차이가 조금 있을 뿐 이예요 그래서 익숙한 MySQL monitor를 통해서 그것에 대응되는 이 mysqli의 사용 방법을 짚어보도록 하겠습니다 우선 제일 먼저 MySQL monitor를 사용할 때 우리가 제일 먼저 하는 일은 뭐예요? 이런 명령을 운영체제에서 입력하죠? 이 명령이 의미하는 것은, localhost에 존재하는 데이터베이스 서버에 접속할 때, 아이디 값은 “root”고, 비밀번호는 “111111”인 사용자의 명의로 접속을 하겠다 라는 뜻이죠 그것과 대응되는 mysqli의 명령은 이렇게 됩니다 여기 보시면 “mysqli_connect()” 이렇게 되어 있습니다

그것은 뭐냐면 mysqli_connect가 바로 함수라는 거죠 그런데 저 함수는 여러분이 만든 적이 없기 때문에 기본적으로 PHP에서 내장되어있는 함수예요 실제로 데이터베이스를 핸들링하는 작업은 아주 복잡한 로직들에 의해서 이뤄지기 때문에 mysqli_connect 라고 하는 저 함수의 실제적인 내용은 상당히 복잡할 겁니다 그런데 단지 우리가 저 mysqli_connect 그리고 입력 값들을 주는 것을 통해서 데이터베이스에 아주 쉽게 접속할 수 있다는 거예요 처음 보셨을 때는 이것도 복잡하겠지만, 사실이 코드 한 줄이 함의하고 있는 복잡한 메커니즘을 생각한다면 우리가 얼마나 편하게 이 데이터베이스를 사용할 수 있는 것인지 여러분들이 상상은 하실 수 있을 것 같다는 생각을 합니다

아무튼 mysqli_connect라고 하는 저 함수의 메뉴얼을 살펴보면 그 첫 번째 입력 값으로는 host, 즉 접속하려고 하는 서버의 주소가 와야 된다고 되어 있구요 바로 그것이 MySQL monitor로 치면 이 부분이라고 할 수 있습니다 그리고 두 번째 입력 값은 사용자의 아이디 여기에 해당 되구요 마지막으로는 사용자의 비밀번호를 입력하라고 메뉴얼에 적혀있어요 “순서대로 입력해야 된다”라고 적혀있습니다 그것은 마지막 것은 이것이 되겠죠? 그래서 여러분이 이 코드를 실행을 시키면, 내부적으로 우리 눈에 보이지 않는 메커니즘에 의해서 데이터베이스 서버에 PHP가 접속을 하게 됩니다

그리고 접속에 성공하게 되면, 접속 결과를 “conn”connect를 줄여서 쓴 거예요 “conn” 변수에 입력 값으로 변수의 값으로 이렇게 이것이 출력을 해주는 것이죠 그럼 우리는 이 “$conn”라는 변수를 통해서 우리가 접속한 바로 이 정보에 의해서 접속된 서버를 제어할 수 있게 됩니다 이 코드를 실제 PHP 애플리케이션 코드에 반영하도록 하죠 PHP 코드가 시작되는 여기에 저렇게 하고서, 우선 “mysqli_connect(‘localhost’” -큰따옴표 작은 따옴표 상관 없습니다- 그 다음에 우리는 “root” 아이디이니까 아이디를 “root”를 적고요, 그 다음에 비밀번호는 “111111”이라고 적고 “;”을 합니다

그러면 저 함수가 실행된 결과는 “conn” 변수라고 할게요, “conn” 변수에 담기게 돼요 그 다음에 우리가 MySQL monitor를 사용할 때는 생각해보면, 서버에 접속한 다음에 그 다음에 뭘 했나요? 잘 기억 안 나실 수도 있는데 바로 데이터베이스를 선택했습니다 그때 사용하는 명령은 “use opentutorials” 였죠? 이 중에서 “use”라는 것은 명령어예요 그리고 “opentutorials”라는 것은 우리가 만든 데이터베이스의 이름인데요 “opentutorials”라는 데이터베이스를 이제부터 사용하겠다라고, MySQL monitor에서 명령을 내린거죠

그러면 그것에 해당되는 mysqli API는 무엇이 있을까요? 이것입니다 보시는 것 처럼 이 함수는 “mysqli_select_db“ 라고 하고, 첫 번째 인자로는 “$conn” 변수를 주셔야 됩니다 conn 변수라는 것은 mysqli_connect라고 하는 것을 통해서 접속에 성공했고 그 접속된 정보를 이 “conn”이라고 하는 변수에 담은 건데요 그 정보를 “mysqli_select_db“ 의 첫 번째 인자로 전달해 주도록 약속되어 있기 때문에 그대로 쓰시면 되는 겁니다 그 다음에는 우리가 사용하려고 하는 데이터베이스인 opentutorials를, 이렇게 그 다음 줄에 적어주시면 DB를 선택하는 것까지 끝난 것이 돼요 그러면 우리 코드에 반영해 보죠

우선 “mysqli_select_db”, “db”데이터베이스 약자입니다 그 다음에 첫 번째 입력 값으로 “conn”을 주시구요 그 다음에 두 번째로는 “opentutorials ”라고 이렇게 코딩을 하시면 됩니다 이렇게 해서 우리가 데이터베이스에 접속하고 데이터베이스를 선택하는 것 까지 우리가 알아 봤어요 그런데 시간이 좀 많이 됐고 우리가 할 이야기가 좀 더 많이 있기 때문에 실제로 테이블에 접근해서 그 테이블에 있는 정보를 가져온 후에 그것을 웹페이지로 만드는 우리 수업의 정말 클라이막스는 다음 시간에 다음 영상에서 살펴볼게요

Android S7E4 : PHP MySQL – PDF Viewer with GridView

Todays 'Edition이나 ProgrammingWizards TV에 오신 것을 환영합니다 이것은 안드로이드 mysql을 PDF로 자습서입니다

우리는 MySQL 데이터베이스에 저장된 PDF 문서를 나열하는 PDF 뷰어 android 앱을 만드는 방법을 알고 있습니다 gridview에서 우리는 HTTP GET 요청을 통해 이러한 PDF 문서를 다운로드하여 이미지와 텍스트가있는 사용자 정의 그리드 뷰 여기에 우리의 응용 프로그램을 볼 수 있습니다, 우리는 헤더 레이블로 TextView, 그리고 빈 gridview 및 다운로드 단추 이 다운로드 버튼을 클릭하면 PHP MySQL 서버에서 PDF가 다운로드됩니다

HTTP GET 요청을 다운로드하거나 만들 때 불확정 progressbar가 렌더링됩니다 그리드 뷰에서 렌더링되는 PDF 문서를 볼 수 있습니다 GridView의 관점에 유의하십시오 그냥 이미지와 텍스트를 렌더링하는 것입니다 PDF 아이콘, PDF 문서 제목 및 PDF 문서 설명입니다

사용자는 문서를 스크롤하고 하나의 PDF 문서를 클릭하여 열어 볼 수 있습니다 이 PDF 문서는 PHP MySQL 데이터베이스에 저장됩니다 그리고 우리는 HTTP GET 요청을 통해 다운로드합니다 단일 gridview 항목을 클릭하면 PDF Viewer 활동을 사용하여 PDF 문서를 렌더링 할 수 있음을 알 수 있습니다 사용자가 볼 수 있듯이 스크롤 핸들을 사용하여 PDF 문서를 스크롤하면 현재 PDF 페이지도 표시됩니다

사용자는 렌더링 된 pdf 문서를 확대 및 축소 할 수도 있습니다 그런 다음 렌더링 할 수있는 다른 PDF 문서도 있습니다 클릭하기 만하면됩니다 이제 우리가 클릭 한 것을 완벽하게 렌더링하고 있음을 알 수 있습니다 당신이 볼 수 있듯이 포맷은 전문적이며 우리는 PDF 문서를 bartesk의 안드로이드 PDF 뷰어 라이브러리

github에서 무료로 사용할 수있는 무료 라이브러리입니다 우리는 당신이 볼 수있는 것처럼 우리의 gridview에서 렌더링 된 다른 PDF 문서를 가지고 있습니다 앞서 말했듯이 PDF를 읽거나 볼 수 있도록 렌더링합니다 그래서 우리는 Java android를 사용하여 PDF Viewer / Reader 응용 프로그램을 작성합니다 그것은 PDF 문서를 MySQL 데이터베이스에 저장합니다

또한 가로 모드에서는 애플리케이션을 볼 수 있습니다 데이터를 다운로드하면 진행률 표시 줄이 표시됩니다 그러면 우리의 PDF 문서는 우리의 gridview에 나열됩니다이 튜토리얼에서는 gridview를 사용했지만 물론 ListView 나 ReccylerView에서 PDF 문서를 나열하거나 해당 어댑터 뷰를 확인할 수도 있습니다 여기에서 PDF 문서가 PDF 활동에서 렌더링되는 것을 볼 수 있습니다

사용자는 확대 / 축소 및 스크롤이 가능하며 PDF 문서는 확실하게 렌더링됩니다 우리의 PDF 문서는 다시 mysql 데이터베이스에 저장 될 것입니다 파이썬을 우리의 서버 측 프로그래밍 언어로 사용할 것이며, 우리의 안드로이드 응용 프로그램은 HTTP (Hyper Text Transfer Protocol)를 통해 PHP에 연결하여 대화 할 것입니다 우선 우리는 mysql 데이터베이스를 설정해야한다 당신은 wamp 서버와 같은 databasae 도구를 사용할 수 있습니다, xampp 서버 또는 유니폼 서버

나는이 경우에 후자를 사용한다 데이터베이스와 테이블을 생성하고 mysql 데이터베이스에 데이터를 삽입 / 저장하려면 PHPMyAdmin이 필요합니다 이러한 데이터는 이름, 설명, 경로 URL, 이미지 URL 및 작성자와 같은 PDF 세부 정보가 될 것이며, 브라우저에서 프로젝트를 실행하여 우리가 처음에 얻은 것을 확인해 봅시다 브라우저에서 내 PHP 스크립트를 클릭하면 mysql 데이터베이스에서 데이터가로드됩니다 그 데이터는 다음과 같습니다

json_encoded로 json 형식으로 출력됩니다 그래서 우리가 안드로이드 애플 리케이션에서 우리의 HTTP 요청을 만들면, 이것이 우리가 얻는 것입니다, 안드로이드 응용 프로그램에서 파싱 될 json 데이터입니다 PHPMyAdmin으로 이동하여 데이터베이스를 만들어 보겠습니다 나는 유니폼 서버를 사용하는 것을 선호한다고 말했지만, 그것과 wamp 서버 또는 심지어 xampp 사이에는 큰 차이가 없다 먼저 제공된 양식에 데이터베이스 이름을 입력하여 데이터베이스를 작성합니다

그런 다음 폼에 테이블 이름을 입력 할 수 있도록 mysql 테이블을 만들어야합니다 내 테이블에 이미 데이터가 있음을 알 수 있습니다 테이블은 행 ID로 구성됩니다 자동으로 증가합니다 pdf 또는 제목의 이름은 이름 열에 저장됩니다

범주 descroption은 테이블에 열을 포함합니다 또한 PDF URL과 이미지 URL을 기록해 두십시오 가장 효율적인 방법은 PDF URL과 이미지 URL을 데이터베이스에 저장하는 것입니다 그런 다음 PDF 파일과 이미지 파일이 서버의 폴더에 저장되어 mysql에 원시 바이너리 모양으로 저장되지 않습니다 우리 테이블 구조는 여기에 있습니다

id 열은 기본 키이며 자동 증가됩니다 다른 열은 varchars 및 텍스트입니다 데이터베이스 테이블을 준비 했으므로 웹 사이트 http://camposhainfo에서 더 많은 지침을 얻습니다 다시 말하지만, 우리는 pdf와 image URL을 데이터베이스에 저장 한 다음 그 URL을 우리의 pdfs 및 이미지를 mysql 데이터베이스 테이블에서로드 할 수 있습니다

여기에서 우리는 pdf 문서 / 아이콘뿐만 아니라 pdf 문서를 저장할 수있는 폴더가 있다는 것을 알 수 있습니다 또한 하나의 PHP 파일 인 indexphp 만 있습니다 여기에 우리의 프로젝트 폴더가 있습니다, 당신은 그것이 당신의 루트 디렉토리에 저장되기를 원합니다 WAMP 서버를 사용한다면 www 디렉토리

Xampp을 사용하면 htdocs 디렉토리가됩니다 이것들이 PDF 문서의 이미지 또는 아이콘임을 알 수 있습니다 이 이미지의 경로를 mysql 데이터베이스에 저장합니다 그런 다음 안드로이드에서 Picasso Imageloader를 사용하십시오 응용 프로그램에서 해당 이미지를 비동기 적으로로드합니다

mysql 데이터베이스에 적절한 이미지 경로를 저장해야한다는 것을 알고 있어야합니다 그런 다음 pdfs 디렉토리도 갖습니다 이 폴더에 PDF 문서가 있음을 분명히 알 수 있습니다 이 PDF의 경로를 mysql 데이터베이스에 저장합니다 그런 다음 비동기 적으로 경로 또는 URL에서 PDF를로드합니다

따라서 필요한 파일과 폴더는 indexphp, PDF 문서가 포함 된 pdfs 디렉토리 및 pdf 이미지가 포함 된 PDF 아이콘입니다 PHPMyAdmin을 사용하여 mysql 데이터베이스에 데이터를 삽입 할 수 있습니다 자동 생성 될 ID를 입력하지 마십시오 당신은 우리가 이름, 카테고리, 설명, PDF URL과 PDF 이미지 / 아이콘 URL을 볼 수 있습니다

그때 그들을 입력하십시오 구하다 대부분의 경우 당신은 일종의 웹 인터페이스를 통해 이것을 할 것입니다 브라우저를 통해 표시 할 수있는 URL을 통해 이미지를로드하는지 확인할 수 있습니다 이제 우리는 PHP 코드를 작성하게되었습니다 PHP는 서버 측 프로그래밍 언어이며, 아마도 가장 인기있는 서버 측 웹 개발 언어입니다

강력한 웹 응용 프로그램을 만들 수 있습니다 이 경우 이해하기 쉬운 객체 지향 PHP 코드를 작성합니다 먼저 Constants라는 클래스를 만듭니다 이 클래스는 데이터베이스 자격 증명과 상수를 보유 할 것이며, 여기에는 데이터베이스 서버 이름, 데이터베이스 이름, 데이터베이스 사용자 이름 및 암호가 표시됩니다 우리 서버는 분명히 localhost입니다

pass라고하는 암호로 sisi라는 사용자 정의 사용자를 만들었습니다 당신이 사용할 수있는 사용자를 만들지 않은 경우 루트를 기본 용도로 사용하고 비밀번호는 비어있는 비밀번호를 사용하십시오 그런 다음 mysql 데이터베이스에서 모든 것을 선택하는 sql 문을 갖게 될 것입니다 이 경우 모든 pdf 문서는 물론 이미지, 설명, 제목, 작성자 등이 선택됩니다 그런 다음 Pdfs라는 다른 클래스에서 PDF CRUD 작업을 수행합니다

먼저 우리에게 우리에게 필요한 기능을 정의합니다 mysql 데이터베이스 테이블 null 또는 mysqli 객체를 반환한다 우리는 객체 지향 방식으로 mysqli를 사용한다 서버 이름, 사용자 이름, 암호 및 데이터베이스 이름을 전달하여 인스턴스를 생성합니다 resultnat mysqli 객체를 con이라는 변수에 넣습니다

그런 다음 mysql 데이터베이스에서 데이터를 선택할 함수로 이동합니다 먼저 connect 메소드를 사용하여 mysql 데이터베이스에 연결한다 연결이 null인지 확인하십시오 그렇다면 우리는 안드로이드 앱으로 전송 될 예외 메시지를 인코딩합니다 그렇지 않은 경우 connection이 null이 아니면 mysqli 객체의 query 메소드를 호출한다

우리는 죄수 물건을 들고 있습니다 모든 mysql 데이터베이스를 선택하기 위해 SQL 문을 전달했다는 것을 기억하십시오 결과가 제로보다 큰 경우 그런 다음 먼저 PHP 배열 배열을 인스턴스화합니다 그런 다음 fetch_array () 메소드를 통해 얻은 결과를 while 루프 루프를 사용합니다 그런 다음 결과를 pdfs 배열로 푸시합니다

원래 우리가이 배열로 밀어 넣고있는 pdf 세부 사항입니다 그런 다음 루프를 종료 한 후 json 형식으로 클라이언트에 보낼 수 있도록 역순으로 배열을 json으로 인코딩합니다 우리가 안드로이드 애플 리케이션에서 마지막으로 추가 된 항목을 먼저 보여주기 때문에 우리는 그것을 뒤집었다 나중에 데이터베이스 연결을 닫습니다 그런 다음 우리는 안드로이드 프로젝트를 만들게됩니다

안드로이드 스튜디오를 사용하고 있습니다 API 레벨 14를 최소 sdk로 사용하고 빈 활동을 선택하겠습니다 그런 다음 우리는 우리 프로젝트에옵니다 먼저 프로젝트 레벨 buildgradle로 이동합니다

여기에서 allprojects 클로저에 maven URL을 https // jitpackio로 추가하고, 이제 앱 수준 buildgradle로 이동합니다 여기에 몇 가지 종속성을 추가합니다 우리 프로젝트에 먼저 CardView, appcompat 및 design과 같은 지원 라이브러리가 있습니다

그럼 우리는 안드로이드 네트워킹 라이브러리, 빠른 안드로이드 네트워킹 라이브러리라고도합니다 이것은 http 요청을 수행하는 데 사용할 라이브러리입니다 이 경우 우리는 http get request를 수행 할 것입니다 빠른 안드로이드 네트워킹 라이브러리는 우리가 비동기 방식으로 우리의 요청을 할 수있게합니다 오류를 적절하게 처리합니다

OkHHTP 네트워킹 레이어를 기반으로합니다 그럼 우리는 asyncronously php mysql에서 우리의 이미지를로드 할 피카소있을 것이다 Android PDFViewer 라이브러리를 사용하여 PDF 문서를 볼 것입니다 서버에서 다운로드하십시오 Android PDF 뷰어는 무료 라이브러리이며 사용하기 쉽고 빠릅니다

마지막으로 우리는 파일,이 경우 자신의 URL에서 PDF 문서를 허용하는 파일 로더 라이브러리를 갖습니다 또한이 작업은 비동기 적으로 수행됩니다 그런 다음 해당 PDF 파일을 내부 저장소에 저장하거나 파일을 저장할 수도 있습니다 외부 저장소 그럼 우리는 그들의 PDF 파일을로드합니다

이러한 종속성을 추가하고 동기화하십시오 그런 다음 androimanifest로 이동하여 인터넷 권한을 추가합니다 또한 외부 저장소에 pdfs를 캐시하는 경우 외부 저장소에 대한 읽기 및 쓰기 기능을 추가 할 수 있습니다 그런 다음 두 개의 이미지 (pdf_iconpng 및 placeholder

png)가 생성됩니다 그럼 우리의 activity_mainxml 루트에서 우리는 수직 방향을 가진 선형 레이아웃을 가지고 있습니다 ProgresssBar 인 TetxtView라는 헤더가 있습니다

ProgressBar가 표시됩니다 우리는 php mysql 서버에서 pdf 문서를 우리의 gridview로 다운로드합니다 그런 다음 다운로드 한 PDF 문서를 나열 할 GridView입니다 ListView, RecyclerView도 사용할 수 있습니다 그런 다음 버튼을 눌러 데이터 다운로드를 시작하고, 다음은 activity_main

xml 레이아웃의 디자인 뷰입니다 다음으로 row_modelxml이 나온다 여기서 디자인보기를 볼 수 있습니다 루트에서 CardView를 갖습니다

CardView 입면도, cardCornerRadius 등을 설정합니다 그런 다음 mysql 데이터베이스에서 pdf 이미지를 렌더링하는 이미지 뷰 그런 다음 TextView를 사용하여 PDF 문서의 이름이나 제목을 표시합니다 pdf의 저자를 표시하는 또 다른 TextView RelativeLayout에 랩핑합니다

그런 다음 activity_pdf 레이아웃 이 레이아웃은 PDF 문서를 렌더링합니다 이 레이아웃에서 사용자는 보거나 pdf를 읽으십시오 맨 위에는 진행 표시 줄이 있습니다 이 진행 상황 표시 줄은 pdf 문서를로드 할 때 표시되며, 그 아래에는 PDFView 요소가 있습니다

이것은 pdf 문서를 렌더링 할 책임이 있습니다 다음으로 우리는 MainActivityjava에옵니다 우리의 프로그래밍 언어는 java이며이 android mysql pdf 뷰어 튜토리얼입니다 우리는 처음부터 시작합니다

먼저 패키지 이름을 지정하십시오 그런 다음 import 문을 추가합니다 그런 다음 클래스를 만들고 AppCompatActivity에서 파생시킵니다 그것은 우리가 여기에서 한 것처럼 안드로이드 manifestxml에 등록되어야하는 활동이다

그런 다음 PDFDoc이라는 내부 클래스를 만듭니다 이 단일 POJO 클래스를 나타내는 클래스 pdf 문서 이 수업에서는 PDF 문서 속성을 정의 할 것입니다 여기에는 정수 인 ID, 이름 pdf의 종류, pdf url뿐만 아니라 pdf 심상 url 우리는 getters에게 세터를 생성합니다 Alt + Enter를 누르고 getters 및 setters를 선택하여 Android Studio를 통해 직접 할 수 있습니다

이제 우리는 GridviewAdapter에 왔습니다 이 클래스를 사용자 정의 어댑터 클래스로 바꾸기 위해 BaseAdapter를 확장합니다 그러나 BaseAdapter는 추상 클래스입니다 그래서 우리는 몇 가지 방법을 재정의하기 위해 열중하게 될 것입니다 그러나 먼저 PDF 문서의 Context와 ArrayList라는 두 개의 인스턴스 필드를 지정합니다

그럼 우리의 생성자 그런 다음 해당 메소드를 대체하십시오 여기에는 getCount (), getItem () 및 getItemId ()가 포함됩니다 getView ()도 있습니다 이 메소드 안에서 우리는 row 객체의 xml 레이아웃을 뷰 객체에 넣고 그것을 반환 할 것이다

하지만 먼저 우리는 그것을 확인합니다 그렇다면 LayoutInflater 클래스를 사용하여 해당 레이아웃을 뷰 객체로 확장합니다 그런 다음 mysql에서 데이터를 표시하기 위해 TextViews와 ImageView를 참조합니다 우리는 우리의 어댑터에서 현재 pdf 문서를 검색합니다 우리는 속성을 가져 와서 적절한 위젯으로 설정합니다

이미지 URL이 null 또는 비어 있는지 확인합니다 그렇다면 우리는 우리가 drawables에 가지고있는 사용자 정의 PDF 아이콘을 표시합니다 그렇지 않으면 Picasso ImageLoader를 통해 네트워크에서 이미지를로드합니다 로드 할 때 자리 표시 자 이미지가 표시됩니다 우리는 또한 우리의 맞춤 그리드 뷰의 onClick 이벤트를 청취 할 것입니다

클릭하면 인 텐트를 통해 PDF 뷰어 활동이 열리고, 우리는 일부 데이터를 해당 활동에 전달할 것이며, 기본적으로 pdf url을 다운로드하여 해당 활동에 pdf 파일을 다운로드 할 수 있습니다 putExtra () 메서드를 사용하여 데이터를 전달합니다 startActivity ()를 호출하여 gridview 항목을 클릭하면 해당 pdf 활동이 열립니다 그런 다음 HTTP 클라이언트를 만듭니다 나는 JSONDownlader를 호출하여 그 일을합니다

먼저 PDF 사이트 URL을 제공해야합니다 기본적으로 pDF URL로 연결되는 URL입니다 IP 주소 또는 1002

2를 사용할 수 있습니다 즉, 우리가하는 것처럼 localhost를 테스트하고있는 것입니다 그런 다음 생성자는 컨텍스트 개체를 사용합니다 우리는 mysql 데이터베이스에서 데이터를 가져 오는 검색을 담당하는 retrieve라는 메소드를 생성 할 것이다 이 메서드는 GridView 및 ProgressBar를 매개 변수로 사용합니다

우리는 pdf 문서를 보관할 arraylist를 만들 것입니다 그런 다음 서버에 HTTP GET 요청을하기 직전에 진행률 막대를 표시합니다 그런 다음 HTTP GET 요청을합니다 AndroidNetworking 또는 Fast Android Networking Library를 사용하고 있습니다 get 메소드에 url을 전달합니다

우선 순위를 설정하고 실제로 HTTP 요청을 수행하기 위해 build ()를 호출합니다 그런 다음 JSON 응답을받습니다 우리는 JSONArray를 받고 있습니다 이제이 JSON 응답을 구문 분석합니다 두 가지 가능성이 있습니다 : 서버로부터 유효한 응답을 얻거나 또는 오류가 발생했습니다

유효한 응답이지만 잘못된 데이터를 얻을 수 있습니다 따라서 JSON 예외를 잡기 위해 JSON 데이터를 구문 분석하는 동안 try catch를 사용합니다 이제 JSON 객체에서 데이터를 가져옵니다 우리는 이름, 카테고리, 설명, pdf url 및 pdf icon url 그런 다음 PDFDOc 객체를 인스턴스화합니다

JSON 객체에서 데이터를 검색하고 PDFDoc을 인스턴스화하면, 우리는 그 항목들을 PDFDoc으로 설정할 것입니다 우리는 setter 메서드를 사용하여이를 수행합니다 그런 다음 해당 PDFDoc을 PDF Documents ArrayList에 추가하십시오 이 arraylist 모든 PDF 문서를 보유합니다 그런 다음 어댑터를 인스턴스화하여 컨텍스트 및 pdf 문서 arraylist를 전달합니다

그런 다음 gridview에 pdf 문서 목록을 표시하기 위해 어댑터를 gridview에 설정하십시오 물론 ListView 나 RecyclerView를 사용할 수도 있습니다 오류가있는 경우 토스트 메시지에 표시합니다 마지막으로 우리는 onCreate () 메소드에 올 것이다 먼저 setContentView () 메서드를 사용하여 contentView를 설정합니다

그런 다음 우리의 gridview 인 adapterview를 참조하십시오 ListView 또는 RecyclerView를 사용한 경우 참조 다음 여기에 우리는 또한 버튼과 진행 막대를 다시 언급합니다 버튼의 onClick 이벤트를 수신합니다 클릭하면 우리는 먼저 인스턴스화하여 다운로드를 시작합니다

JSONDownlaoder 클래스를 호출 한 다음 retrieve () 메소드를 호출합니다 이제는 PDFActivity에 도달 할 차례입니다 먼저 패키지를 지정해야합니다 AppCompatActivity에서 상속하는 클래스를 만듭니다 여기에서 볼 수있는 것처럼이 클래스가 일부 인터페이스를 구현하도록 할 것입니다

정의 된 인터페이스입니다 PDFViewer 라이브러리에 있습니다 PDF 로딩을위한 오류 이벤트는 물론 완료까지들을 수 있습니다 우리가 원하는 두 개의 loadComplete () 및 onPageError () 메서드를 재정의합니다 그런 다음 onCreate () 메서드를 재정의합니다

WE는 먼저 PDFView 라이브러리를 참조 할 것입니다 우리는 또한 진행 표시 줄을 참조하고 그것을 보여줍니다 일부 데이터가 MainActivity에서 사용하도록 전달되었음을 기억하십시오 음, pDF URL입니다 우리는 의도를 통해 데이터를 다시 조사해야합니다

그런 다음 FileLoader 라이브러리를 사용하여 PDF 문서를로드합니다 우리는 내부 저장 장치에 pdf 문서를 임시 저장합니다 다운로드가 완료되면 Android PDF 뷰어 라이브러리를 사용하여 PDFView에서 렌더링합니다 파일에서로드합니다 기본 PDF 페이지는 1 페이지입니다

우리의 PDF 문서는 스크롤 할 수 있습니다 로드가 완료되면 진행률 표시 줄을 닫습니다 또한 오류가 발생하면이를 기각합니다 우리가 안드로이드 mysql을 PDF 뷰어 프로젝트를 실행하기 전에 인터넷 사용 권한을 추가했는지 확인하십시오 우리는 프로젝트를 실행합니다

Nox Player 에뮬레이터를 사용하고 있습니다 먼저 브라우저로 가서 ip 주소를 통해 php mysql에 연결할 수 있는지 확인하십시오 또는 1002

2 당신이 볼 수 있듯이 연결을 설정할 수 있습니다 그리고 실제로 브라우저에서 PHP를 실행하면 JSON 데이터가 있음을 알 수 있습니다 그래서 우리는 이제 안드로이드 PHP mysql pdf app으로 이동합니다 처음에 Gridview를 실행하면 데이터가 없습니다

그런 다음 우리는 다운로드 버튼을 클릭하고 우리의 PDF 문서는 우리의 gridview에 나열됩니다 당신은 이름과 저자와 같은 pdf 세부 정보와 함께 PDF 아이콘을 표시하고 있음을 볼 수 있습니다 그런 다음 pdf 항목을 클릭하면 읽을 수 있도록 렌더링 할 수 있습니다 우리는 우리의 애플 리케이션에 나열된 모든 PDF 문서를 열 수 볼 수 있습니다 우리의 응용 프로그램이 성공적으로 작동합니다

그게 다야 긴 튜토리얼로 우리 채널에 가입하십시오 우리는 ProgrammingWizards TV 커뮤니티의 친구들을 만들고 있습니다 또한 공유함으로써 우리를 도우며 도와주세요 소스 코드는 아래 웹 사이트 http://camposha

info에서 다운로드 할 수 있습니다 고마워, 오 클루 미

Android, Mysql, PHP, JSON – Insert, Update, Delete

프로젝트 안드로이드, mysql, PHP, json을 만드는 법 – crud localhost / phpmyadmin을여십시오 Apache와 MySql을 시작하십시오

데이터베이스를 작성하십시오 tips_crud_android_json_mysql xampp / htdocs에서 폴더 tips_crud_android_json_myqsl을 생성하십시오 tips_crud_android_json_mysql 폴더 안에 serverphp 파일을 만듭니다 이클립스 프로젝트 만들기 tips_crud_android_json_mysql 사용자 지정 실행 프로그램 선택 취소 파일 koneksijava 및 biodata

java를 작성하십시오 activity_mainxml의 이름을 mainxml로 바꿉니다 이미지 PNG를 드로어 블에 붙이기 android_manifest

xml에 권한 인터넷 추가 테이블 만들기 tabel_biodata tips_crud_android_json_mysql을 클릭 한 다음 SQL을 클릭하십시오 붙여 넣기 및 이동 tabel_biodata에 데이터 삽입 가기 사용자 인터페이스에서 삽입 serverphp에 복사하여 붙여 넣기 기록보기 새로운 기록을 삽입하고 브라우저에서보기 새 레코드를 삽입하십시오 이드에 의해 기록을 얻는다 기록 갱신 id = 4 기록 삭제 URL에 ID가 있어야합니다

서버 PHP가 끝나고 Android로 이동합니다 mainxml 복사 및 붙여 넣기 복사 및 붙여 넣기 koneksijava 복사 및 붙여 넣기 Biodatajava 복사 및 붙여 넣기 MainActivity

java 이미지 이름을 logopng로 변경하십시오 프로젝트를 실행하다 프로젝트 태그로 logcat 보여주기 브라우저에서 URL 확인 IP 1002

2에 액세스 할 수 없음 IP 주소 컴퓨터를 얻으려면 명령 프롬프트에서 ipconfig를 입력하십시오 IP 주소 컴퓨터 1921681109 브라우저에서 IP 주소 변경 koneksi

java에서 IP 주소 변경 setContentView의 뒤에 ThreadPolicy를 추가합니다 프로젝트를 실행하다 문자열에 공백이 있으면 문제를 삽입하십시오 % 20으로 공간 바꾸기