Today's

길을 나서지 않으면 그 길에서 만날 수 있는 사람을 만날 수 없다

모바일 앱(안드로이드)

안드로이드 앱 만들기 : Azure 플랫폼 - Microsoft Azure 안드로이드 에서도 가능(?)

Billcorea 2023. 8. 30. 18:03
반응형

오늘은 시도해 보지는 못했지만, 혹시 시도해 보려는 분들을 위해 검색한 정보를 모아 보도록 하겠습니다.

ms 의 가이드 중에서

 

MicroSoft 가 제공하는 Azure database 도 안드로이드에서 접속해 사용해 볼 수 있을까요?  

 

https://learn.microsoft.com/en-us/sql/connect/jdbc/step-3-proof-of-concept-connecting-to-sql-using-java?view=sql-server-ver16 

 

Step 3: Connecting to SQL using Java - JDBC Driver for SQL Server

Step 3 is a proof of concept, which shows how you can connect to SQL Server using Java and JDBC. The basic examples demonstrate selecting and inserting data.

learn.microsoft.com

이런 가이드 들은 java 을 이용한 서버(?)에서 구현이 가능한 코드 등을 제공하고 있습니다.  저는 android에서 접속을 해야 하는 데 말입니다.  was로 구성을 하는 거나, android에서 구성하는 것의 차이는 아마도 지연이 발생하는 처리를 어떻게 하는 가 일 듯합니다. 

 

https://github.com/Azure/azure-mobile-services/blob/master/docs/mobile-services-android-get-started.md

 

샘플코드등은 여기에서도 얻을 수 있습니다. 아직 실행해 보지 않았던 부분이라서 적당한 예제 인지는 검증이 필요해 보이기는 합니다. 

 

안드로이드로 가기 위해서

이제 조금 더 정보가 필요해 보입니다. 그걸 해소 하기 위해서 chatGpt을 활용해 볼 수 있을 것 같습니다.  좀 더 상세한 이야기는 정리가 되면  수정해 보겠습니다. 

 

chatGPT 을 활용해 얻은 정보를 정리해 보겠습니다. 

 

먼저 gradle 파일에 추가를 해야 한다고 합니다.

dependencies {
    // Other dependencies
    implementation "com.microsoft.sqlserver:mssql-jdbc:9.2.1.jre11"
}

 

이제 연결을 구현하는 코드를 가져와 봅니다. 

 

연결이 되었다면 그 다음 조회 하는 처리를 구현한 코드를 보겠습니다.  다만, chatGPT 는 android 에서 처리를 해야 한다고 하니, Thread 을 이용한 코드로 전환을 해 주었습니다.

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import java.sql.Connection
import java.sql.DriverManager

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        connectToDatabase()
    }

    private fun connectToDatabase() {
        Thread {
            val connectionString = "jdbc:sqlserver://your-server-name.database.windows.net:1433;database=your-database-name"
            val username = "your-username"
            val password = "your-password"

            var connection: Connection? = null

            try {
                Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")
                connection = DriverManager.getConnection(connectionString, username, password)
                
                // Now you can perform database operations using the 'connection' object.
            } catch (e: Exception) {
                e.printStackTrace()
            } finally {
                connection?.close()
            }
        }.start()
    }
}

 manifest 에 internet 을 접속할 수 있는 권한은 추가 해야 합니다. 그래야 접속을 시도해 볼 수 있으니까요? 

 

이제 접속 테스트는 해 볼 수 있을 것 같습니다.  Thread 을 이용하는 것 보다는 lifecycleScope 을 이용하는 방식으로 수정을 해 보는 것이 kotlin 에 조금더 접합한 코드가 되지 않을 까 하는 생각이 듭니다. 

 

접속이 되었으니 select 하는 구문등은 상상으로 남겨 두겠습니다. 

 

다만, 이렇게 접속 DB 접속을 하는 코드 구현은 추천하지 않습니다. 요즘은 워낙 debugging 을 잘 하기 때문에 DB 접속에 대한 정보가 누출된 소지가 있습니다.  그런 부분은 관리자의 역량으로 남겨 두겠습니다.

반응형