Sqlite3 ์—์„œ csv ํŒŒ์ผ์„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— import ํ•ด๋ณด๊ธฐ
ยท
[ TroubleShooting ]
์ด๋ฒˆ์— ๊ฐ„๋‹จํ•˜๊ฒŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋‹ค. ๊ธฐ์กด์— ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜๋˜, ์ฝ”ํ‹€๋ฆฐ์œผ๋กœ ๊ณต๋ถ€์™€ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ๋กœ์ปฌ๋กœ ์‚ฌ์šฉํ•  DB ๋ฅผ ๋งŒ๋“œ๋Š” ๊ณผ์ • ์ค‘, csv ํŒŒ์ผ์„ import ํ•ด์˜ค๋Š” ๊ณผ์ •์ด ํ•„์š”ํ–ˆ๋‹ค.  ์–ด์ฐจํ”ผ ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ ์“ฐ๋Š” Room ๋„ ๊ฒฐ๊ตญ์—๋Š” sqlite3 ๊ณผ ์™„๋ฒฝํ•˜๊ฒŒ ํ˜ธํ™˜๋˜๋‹ˆ, sqlite3 ์ด๋ž‘ ์ต์ˆ™ํ•ด์ง€๋Š” ๊ฒƒ๋„ ๊ฝค ๊ดœ์ฐฎ์„ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ ๋‹ค. ๋ฌดํŠผ ๊ฒฐ๋ก ์ ์œผ๋กœ, csv ํŒŒ์ผ์„ sqlite3 DB ์— ์˜ฎ๊ธฐ๋Š” ๊ณผ์ •์€ ํฌ๊ฒŒ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ ˆ์ฐจ๋กœ ์ง„ํ–‰ํ•˜๋ฉด ๋œ๋‹ค. 1. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉํ•  Table ์ƒ์„ฑ 2. csv ํŒŒ์ผ์„ ๋ถˆ๋Ÿฌ์˜ฌ temp Table ์ƒ์„ฑ 3. temp Table -> ์‹ค์ œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉํ•  Table ๋กœ ์˜ฎ๊ธฐ๊ธฐ  ์ฟผ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. INSERT INTO wise..
lateinit ๊ณผ lazy
ยท
[ Kotlin ]
์ฝ”ํ‹€๋ฆฐ ๊ณ ๊ธ‰ํŽธ ๊ฐ•์˜ ์ˆ˜๊ฐ• ํ›„ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.lateinit์ธ์Šคํ„ด์Šคํ™” ์‹œ์ ๊ณผ ํ”„๋กœํผํ‹ฐ ์ดˆ๊ธฐํ™” ์‹œ์ ์„ ๋ถ„๋ฆฌํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.์ธ์Šคํ„ด์Šคํ™”๋ฅผ ํ•œ ๋ฒˆ๋งŒ ํ•˜๊ณ , ํ…Œ์ŠคํŠธ๋ฅผ ํ•  ๋•Œ ๋ณ€์ˆ˜๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  ์‹ถ์€๋ฐ, ์ธ์Šคํ„ด์Šคํ™” ํ•  ๋•Œ, ์ดˆ๊ธฐ๊ฐ’์„ ๋„ฃ์–ด์ฃผ๊ณ  ์‹ถ์ง€ ์•Š์„ ๋•Œ. lateinit ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์„ ๊ณ ๋ คํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค.๋ฐฉ๋ฒ• 1. ๊ธฐ๋ณธ ๊ฐ’์„ ๋„ฃ์–ด์ฃผ๊ธฐ๋ณ€์ˆ˜๊ฐ€ ๋ณ€๊ฒฝ๋˜์–ด์•ผ ํ•˜๋‹ˆ, val ๋Œ€์‹  var ์ด ํ•„์š”ํ•˜๊ณ , ๊ธฐ๋ณธ๊ฐ’์ด ์žˆ์œผ๋‹ˆ ์ƒ์„ฑ์ž์— ์žˆ์„ ํ•„์š”๊ฐ€ ์—†๋‹ค.ํ•˜์ง€๋งŒ ์œ„ํ—˜ํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค. name ์„ ์ดˆ๊ธฐํ™” ํ•˜์ง€ ์•Š๋”๋ผ๋„, ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค."Hong" ์ด๋ผ๋Š” ์ด๋ฆ„์ด ์‹ค์ œ๋กœ ์กด์žฌํ•˜๋Š” ์ด๋ฆ„์ผ ์ˆ˜ ๋„ ์žˆ๋‹ค. ์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ• -> nullable ๋กœ ๋งŒ๋“ค์–ด๋ณด๋Š” ๊ฒƒ์ด๋‹ค.class PersonT..
์ฝ”ํ‹€๋ฆฐ์˜ ์ œ๋„ค๋ฆญ ์ œ์•ฝ๊ณผ ์ œ๋„ˆ๋ฆญ ํ•จ์ˆ˜
ยท
[ Kotlin ]
์ฝ”ํ‹€๋ฆฐ ๊ณ ๊ธ‰ํŽธ ๊ฐ•์˜ ์ˆ˜๊ฐ• ํ›„ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.Generic Constraints ( ์ œ๋„ˆ๋ฆญ ์ œ์•ฝ )type ํŒŒ๋ผ๋ฏธํ„ฐ T ์— ์ œ์•ฝ์„ ๊ฑฐ๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณธ๋‹ค.Animal ์„ ์ƒํ•œ์„ ์œผ๋กœ ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.fun main() { Cage5() // X Cage5() // OK Cage5() // OK}// ๋‹ค์Œ๊ณผ ๊ฐ™์ด T ์˜†์— ์ ์–ด์ฃผ๋ฉด ๋œ๋‹ค. class Cage5 {}๋”๋ถˆ์–ด์„œ, Animal ์„ ์ƒํ•œ์œผ๋กœ ํ•˜๋ฉด์„œ, Comparable ์„ ๊ตฌํ˜„ํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ๋„ ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ œํ•œ ์กฐ๊ฑด์„ ์—ฌ๋Ÿฌ๊ฐœ ๋‘˜ ์ˆ˜ ์žˆ๋‹ค.where ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.fun main() { Cage5() // X Cage5() // OK Cage5() // OK}// ๋‹ค์Œ๊ณผ ๊ฐ™์ด T ์˜†..
coding-wave
wave.dev.log