09:00 ~ 10:00
: 오늘 계획 세우기10:00 ~ 12:00
: 실전 프로젝트13:00 ~ 18:00
: 실전 프로젝트19:00 ~ 20:00
: TIL 작성하기20:00 ~ 21:00
: 마무리 회고 진행// 최근 검색어 firebase에 저장하기
val user = FirebaseAuth.getInstance().currentUser
val userUID = user?.uid
if (userUID != null) {
val nowTime = LocalDateTime.now()
val inputTime = nowTime.format(DateTimeFormatter.ofPattern("yyyy.MM.dd HH:mm:ss"))
val db = FirebaseFirestore.getInstance()
val recentSearchCollection =
db.collection("User").document(userUID).collection("recentSearch")
val recentSearchData = hashMapOf(
"searchWord" to searchWord,
"inputTime" to inputTime,
)
recentSearchCollection.add(recentSearchData).addOnSuccessListener {
Log.d("searchFirebase", "is success : $userUID")
}.addOnFailureListener {
Log.d("searchFirebase", "is fail : $userUID")
}
}
//최근 검색어 삭제
if (userUID != null) {
val db = FirebaseFirestore.getInstance()
val ref = db.collection("User").document(userUID).collection("recentSearch")
val query = ref.whereEqualTo("searchWord", searchWord)
query.get().addOnSuccessListener { documents ->
for (document in documents) {
document.reference.delete()
}
}.addOnSuccessListener {
Log.d("searchFirebase", "is success : $searchWord")
}.addOnFailureListener {
Log.d("searchFirebase", "is fail : $searchWord")
}
}
//최근 검색어 리스트 불러오기
val db = FirebaseFirestore.getInstance()
val recentSearchCollection =
db.collection("User").document(userUID).collection("recentSearch")
recentSearchCollection.orderBy("inputTime").get()
.addOnSuccessListener { querySnapshot ->
for (document in querySnapshot) {
val searchWord = document.getString("searchWord")
if (searchWord != null) {
viewModel.setRecentSearchItem(searchWord)
}
}
Log.d("recentSearchFirebase", "is success")
}
.addOnFailureListener { e ->
Log.d("recentSearchFirebase", "is fail")
}
비동기 프로그래밍이 무엇인지, 왜 사용해야하는지 설명해주세요 (33번)
답변 : 비동기 프로그래밍은 작업을 병렬로 수행합니다. 다른 작업이 끝날 때까지 기다리지 않고 실행하므로 시간을 절약할 수 있습니다.
RESTful API를 사용하여 서버와 통신하는 방법에 대해 설명하세요 (34번)
답변 : HTTP 메소드를 이용하여 상호작용합니다. URL을 이용하여 HTTP 요청을 보내면 응답합니다. 보내온 데이터는 JSON 또는 xml 파일이며 이 데이터를 파싱하여 활용합니다.