갑을병정이야기
Java와 함께 하는 koin(feat kotlin), json 활용 이야기
Billcorea
2024. 12. 14. 15:30
반응형
Java와 함께 하는 koin (feat kotlin), json 활용 이야기
안녕하세요, 개발자 여러분! 오늘은 Java와 다양한 도구를 활용하여 어떻게 효과적으로 프로젝트를 구현할 수 있는지에 대해 알아보겠습니다. 특히, Koin을 사용한 의존성 주입, JSON 데이터 처리, 날짜 포맷팅, 스레드 관리 등 유용한 기술들을 예제로 소개하겠습니다.
Koin을 사용한 의존성 주입
Koin은 경량의 의존성 주입 프레임워크로, Kotlin을 사용하여 간편하게 의존성을 관리할 수 있습니다. 다음은 Koin을 설정하고 사용하는 기본적인 방법입니다.
Gradle 설정
gradle
buildscript {
ext {
koin_version = "3.2.0"
}
}
dependencies {
implementation "io.insert-koin:koin-android:$koin_version"
implementation "io.insert-koin:koin-android-compat:$koin_version"
}
Koin 모듈 정의
kotlin
import org.koin.dsl.module
val appModule = module {
viewModel { MyViewModel(get()) }
single<MyRepository> { MyRepositoryImpl() }
}
Application 클래스에서 Koin 시작
kotlin
import android.app.Application
import org.koin.android.ext.koin.androidContext
import org.koin.core.context.startKoin
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
startKoin {
androidContext(this@MyApplication)
modules(appModule)
}
}
}
ViewModel 클래스 정의
kotlin
import androidx.lifecycle.ViewModel
class MyViewModel(private val repository: MyRepository) : ViewModel() {
fun getData() {
repository.getData()
}
}
Activity에서 ViewModel 사용
kotlin
import android.os.Bundle
import androidx.activity.viewModels
import androidx.appcompat.app.AppCompatActivity
import org.koin.androidx.viewmodel.ext.android.viewModel
class MainActivity : AppCompatActivity() {
private val myViewModel: MyViewModel by viewModel()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
myViewModel.getData()
}
}
Java에서 JSON 데이터 처리
JSON 객체 생성 및 속성 추가
html
<!DOCTYPE html>
<html>
<head>
<title>jQuery JSON Object 추가</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
$(document).ready(function() {
var jsonObject = {
"name": "John Doe",
"age": 30
};
jsonObject.address = "123 Main St";
jsonObject.email = "john.doe@example.com";
console.log(jsonObject);
});
</script>
</head>
<body>
</body>
</html>
JSON 객체를 JSON 배열에 추가
html
<!DOCTYPE html>
<html>
<head>
<title>jQuery JSON Object to JSON Array</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
$(document).ready(function() {
var jsonArray = [];
var jsonObject = { "name": "John Doe", "age": 30 };
jsonArray.push(jsonObject);
var anotherJsonObject = { "name": "Jane Smith", "age": 25 };
jsonArray.push(anotherJsonObject);
console.log(jsonArray);
});
</script>
</head>
<body>
</body>
</html>
Java에서 날짜 포맷팅
SimpleDateFormat을 사용한 날짜 포맷팅
java
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateFormatExample {
public static void main(String[] args) {
Date now = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formattedDate = dateFormat.format(now);
System.out.println("Formatted Date: " + formattedDate);
}
}
문자열을 날짜로 파싱
java
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateParseExample {
public static void main(String[] args) {
String dateString = "2023-12-24 14:30:00";
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date parsedDate = dateFormat.parse(dateString);
System.out.println("Parsed Date: " + parsedDate);
} catch (ParseException e) {
e.printStackTrace();
}
}
}
Java에서 스레드 사용
멀티 스레드를 20초 뒤에 실행
java
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class DelayedThreadExample {
public static void main(String[] args) {
ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(2);
Runnable task1 = () -> System.out.println("Task 1 is running...");
Runnable task2 = () -> System.out.println("Task 2 is running...");
scheduler.schedule(task1, 20, TimeUnit.SECONDS);
scheduler.schedule(task2, 20, TimeUnit.SECONDS);
scheduler.shutdown();
}
}
이 외에도 다양한 주제를 다루었지만, 이 글에서는 가장 중요한 부분들만 추려봤습니다. 각 주제에 대해 더 깊이 알고 싶다면, 언제든지 댓글로 질문해 주세요!
반응형