2026/03/24

오늘의 이야기

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


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 접속에 대한 정보가 누출된 소지가 있습니다.  그런 부분은 관리자의 역량으로 남겨 두겠습니다.





댓글 없음:

댓글 쓰기

오늘의 이야기

  수다 떨기 (GEMINI) 개발 이야기   메인화면   이번 이야기는 이전 버전에서 달라지는 수다 떨기(GEMINI) 버전에 대한 이야기입니다.  이전 버전은 koGPT을 활용한 버전이었습니다. 다만, KAKAO API 가 제공하는 koGPT의 기...