진짜 개발자
본문 바로가기

App/Android

Android - 갤러리 만들기(Ncloud서버 , 스프링부트 서버)

728x90

직접 NCloud에 서버 두대를 구축하고 

Server1에 DNS서버와 DB를 놓고 SpringBoot를 통해 client가 이용할 수 있게하고

Server2에 역시 client가 이용할 storage서버를 구축하고 Retrofit을 이용하여

유저 갤러리를 만들것이다


*직접 구상해본 서버 모식도이다





*요구 기술

1. Server - DNS , IIS

2. SpringBoot - JPA, Rest Server 구축

3. Android - Retrofit , Glide , RecyclerView 라이브러리

4. MySql



*시나리오

1. 클라이언트는 NCloudServer1에게 User의 정보를 질의한다

(*User Information - Name , Email , ImageUrl)


2. NCloudServer1의 SpringBoot는 Client(Android)가 요구한 질의를 MySQL에게 한다

- User 회원가입

- UserList 출력


3. Client(Android)는 얻어온 유저의 정보를 출력하되 Image정보는 다시 NCloudServer2의 Storage로 부터 얻어온다.



*실습


1. 먼저 서비스를 하기위해 도메인을 사야한다 IP로 해도 상관없지만 DNS서버도 구축할 것이므로 도메인을 사보자

   필자는  hosting.kr에서 이벤트중인 .xyz 도메인을 구매하였다.

    



2. 그 다음 NCloud Console에서 서버2개를 설치한다 리눅스나 윈도우 어떤 것이든 상관없다 

   필자는 윈도우 서버를 운영하겠다.

   설치한뒤 ACG설정에서 원격접속 포트 3389를 추가해주고

   공인 IP를 할당 받도록하자




3. 서버에 공인IP를 할당받았고 도메인을 구축하였으면

    도메인에 호스트를 추가해주어야 한다.



4. 도메인을 구매할때 입력한 이메일로 인증메일이 오면 그것을 확인하면 이제 DNS가 정상적으로 등록된것을 볼 수 있다.


DNS조회가 된다면 정상적으로 등록된 것이다


5. 다음과 같이 HostPC에서 실행창을 열고 mstsc를 입력하면 원격접속 서비스가 실행된다

   Server1에 연결해보자




6. 연결이 되었다면 Server1에 DNS server를 구축한다




7. Server1의 DNS서비스가 제대로 작동하는지 테스트하기 위해 IIS서버를 설치해도 되지만

   어차피 SpringBoot를 이용할 것이므로 SpringBoot를 설치한 다음 간단히 인삿말을 적어보자

  



8. 그 다음 dns에 맵핑한 도메인으로 host에서 연결을 시도해본다


9. Server1의 스프링부트가 정상작동하는 것을 확인했으니

   Client에게 제공할 RestServer를 구축한다

  (Source - https://github.com/galid1/gallery)

   


10. 그 다음 Server2에도 연결을 시도해본다

   허나 Server2에는 아직 아무런 서버도 깔려있지 않으므로 윈도우 홈페이지가 나타날 것이다

   Object서버를 구축할 것이다 IIS를 구축한다

   그 다음 해당 서버의 디렉토리에 여러 사진들을 넣고 해당 도메인으로 접근해본다

 


     11. Server1, 2 가 모두 정상적으로 구축되었으므로 

   Client측 앱을 간단히 만들어보자 (Android)

   (Source - https://github.com/galid1/gallery)

  



*결과









 *에러 


Unable to resolve host “<url here>”; No address associated with hostname [closed]

=> 다음과 같은 에러가 나타 난다면 

manifests에 


<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

다음의 세줄을 추가한 뒤 에뮬레이터를 다시시작 하면 해결된다



'App > Android' 카테고리의 다른 글

Android - Android SDK 설치 및 설정  (0) 2019.01.15
Android - 구글 로그인(Google Sign in Api) 이용  (5) 2018.10.13
Android - Service  (0) 2018.09.05
Android - Content Resolver  (0) 2018.09.05
Android - 상태 저장 (SavedInstanceState)  (0) 2018.09.02