day 18 SQL DB 만들기
강의/부캠 안드로이드 학습정리

day 18 SQL DB 만들기

csv 만드는건 tab으로 구분해주면서 하면 되고 UTF16으로 저장. BE가 자바용 유니코드인듯. BE로 하면 엑셀 오피스로 볼 때 깨진다. BE가 big radian, LE가 small radian.

 

 

https://nhj12311.tistory.com/59

 

UTF8과 UTF16의 차이

최근엔 개발하면서 UTF8로 통일해서 쓰지만 십년 전 정도에는 euc-kr로 구성된 시스템이 많아서 이기종 간 데이터 통신 시에 문자 인코딩 방식이 달라서 애를 먹은 적이 많다. 실제 개발할 때 이기

nhj12311.tistory.com

http://kopan84.blogspot.com/2012/07/unicode.html

https://velog.io/@kkaemi/kotlin-csv-%ED%8C%8C%EC%9D%BC-%EC%9D%B4%EC%96%B4%EC%93%B0%EA%B8%B0

 

[android(kotlin)] csv 파일 (이어)쓰기

안드로이드에서 Ble 연결 후, 응답받은 패킷을 csv 파일에 쓰려고 한다.csv 파일명은 연결됐을 때 date time으로 하고, 응답 받을 때 마다(onCharacteristicChanged) 해당 csv 파일에 byte를 write 할 수 있도록 한

velog.io

https://lucy-the-marketer.kr/ko/growth/what-is-database/

 

DBMS란 무엇이고 왜 등장했는가?

아직 인터넷이 익숙하지 않았던 어린 시절, 우리 집에는 '브리태니커백과사전'이 있었다. 브리태니커백과사전은 책 한 권에 몇백 장이나 되는 두꺼운 사전이었고, ㄱ부터 ㅎ 순으로 총 27권이나

lucy-the-marketer.kr

 

 


kotlin도 trim이 있음.

val columns = input[3].trim('(', ')').split(",").map { it.trim() }

val (tableName, column, condition) = input.last().split("SET", "WHERE").map { it.trim() }

 

filter와 map의 존재를 잊고있었다.. 잘 사용하자.

tableMap[tableName]!!.data.removeIf { it[index] == value }
tableMap[tableName]!!.data.map { if (it[index] == value) it[cIndex] = cValue }
filtered = tableMap[tableName]!!.data.filter { it[index] > value }

insert into시 순서 바꿔도 되게끔 하는게 정석인듯.

 

?.let

    fun insert(tableName: String, columnsArr: List<String>, valuesArr: List<String>) {
        val targetTable = getTable(tableName)
        targetTable?.let { table ->
            if (table.columnList.size - 1 != columnsArr.size) {
                println("컬럼 갯수가 일치하지 않습니다.")
                return
            }
            val result = table.insert(columnsArr, valuesArr)
            fileManager.writeRow(table.tableName, result)
            println("INSERTED $result")
        }
    }

 

  • 구현한 내용에서 트랜잭션을 처리하려면 어떻게 구현할 수 있는지 생각을 정리한다.

-> 백업파일 만들기

 

  • MySQL 이나 SQLite3 구현 방식에 대해 학습하고 왜 그런 구조로 구현하는지 토론한다.

-> 내부 구조는 지금까지 했던거랑 크게 다른게 없는 것 같다. tokenize 해서 뽑아오고 byte로 바꿔서 백엔드에 저장하고 bitarray로 바꿔서 저장하고..