๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ199

[Error] GenerationType.IDENTITY - ERROR: NULL not allowed for column "ID"; SQL statement: ์ƒํ™ฉ ํ…Œ์ด๋ธ” ์ƒ์„ฑ๊ณผ Insert ์ฟผ๋ฆฌ๋Š” ์ž˜ ์ž‘๋™ํ•˜๋‚˜ ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ณด๋ฉด ๊ฐ’์ด ์—†๋Š” ํ˜„์ƒ ํ•ด๊ฒฐ h2 ์ตœ์‹  ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์–ด์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๋ผ๊ณ  ํ•œ๋‹ค. 1.4.200 ๋ฒ„์ „์„ ๋‹ค์šด๋ฐ›์œผ๋ฉด ๋œ๋‹ค. ๊ธฐํƒ€ ์˜ค๋ฅ˜ +a) 1.4.200 installer๋ฅผ ๋‹ค์šด๋ฐ›์•˜๋Š”๋ฐ๋„ ํ•ด๊ฒฐ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ -> ์—ฌ์ „ํžˆ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ๋˜์–ด ์žˆ์„ ํ™•๋ฅ ์ด ๋†’๋‹ค 1) ํ˜„์žฌ ๋ฒ„์ „ ํ™•์ธ SELECT H2VERSION() FROM DUAL 2) C:\Users\{username}์—์„œ .h2.server.properties์™€ test.mv.db ์‚ญ์ œ 3) C:\Program Files (x86)\h2\bin์—์„œ zipํŒŒ์ผ ๋ฒ„์ „ ํ™•์ธ ํ›„ ํ•ด๋‹น ํด๋” ์‚ญ์ œ -> ํ™ˆํŽ˜์ด์ง€์—์„œ installer ์žฌ์„ค์น˜ => h2๋ฅผ ์‚ญ์ œํ•  ๋•Œ (3)๋ฒˆ ์œ„์น˜์— ์žˆ๋Š” ํŒŒ์ผ.. 2022. 1. 30.
[Chap 6] ๋ทฐ๋ฅผ ์ด์šฉํ•œ ํ™”๋ฉด ๊ตฌ์„ฑ ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ• ํ™”๋ฉด์„ ์ถœ๋ ฅํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ : ์•กํ‹ฐ๋น„ํ‹ฐ ํ™”๋ฉด์— ๋‚ด์šฉ์„ ํ‘œ์‹œํ•˜๋Š” ํด๋ž˜์Šค : ๋ทฐ ํด๋ž˜์Šค(TextView, ImageView ๋“ฑ) -> ์•กํ‹ฐ๋น„ํ‹ฐ๊ฐ€ ์‹คํ–‰๋˜๋ฉด์„œ ๋ทฐ ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•ด ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•˜๊ณ  ์ด๋ฅผ ๊ธฐ๊ธฐ์˜ ํ™”๋ฉด์— ์ถœ๋ ฅํ•˜๋Š” ๊ตฌ์กฐ 1) ์•กํ‹ฐ๋น„ํ‹ฐ ์ฝ”๋“œ๋กœ ์ž‘์„ฑ ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ทฐ ํด๋ž˜์Šค๋ฅผ ์•กํ‹ฐ๋น„ํ‹ฐ ์ฝ”๋“œ์—์„œ ์ง์ ‘ ์ƒ์„ฑ -> XML ํŒŒ์ผ์€ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ž‘์„ฑ X 2) ๋ ˆ์ด์•„์›ƒ XML ํŒŒ์ผ๋กœ ์ž‘์„ฑ ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๋ทฐ๋ฅผ XML์˜ ํƒœ๊ทธ๋กœ ๋ช…์‹œํ•ด ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ• XML์—์„œ ํ™”๋ฉด์„ ๊ตฌํ˜„ํ•˜๋ฏ€๋กœ ์•กํ‹ฐ๋น„ํ‹ฐ ์ฝ”๋“œ์—์„œ๋Š” ํ™”๋ฉด์„ ์ถœ๋ ฅํ•˜๋Š” setContentView() ํ•จ์ˆ˜๋งŒ ํ˜ธ์ถœํ•˜๋ฉด์„œ XML ํŒŒ์ผ์„ ์ „๋‹ฌํ•˜๋ฉด ๋œ๋‹ค. class MainActivity: AppCompatActivity() { overrid.. 2021. 11. 30.
[Chap 5] ์ฝ”ํ‹€๋ฆฐ์˜ ์œ ์šฉํ•œ ๊ธฐ๋ฒ• ๋žŒ๋‹ค ํ•จ์ˆ˜์™€ ๊ณ ์ฐจ ํ•จ์ˆ˜ ๋žŒ๋‹ค ํ•จ์ˆ˜(๋žŒ๋‹ค์‹) - ์ต๋ช… ํ•จ์ˆ˜(anonymous funciton) ์ •์˜ ๊ธฐ๋ฒ• - ์ฃผ๋กœ ํ•จ์ˆ˜๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •์˜ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ณ ์ฐจ ํ•จ์ˆ˜์— ๋งŽ์ด ์‚ฌ์šฉ * ๊ณ ์ฐจํ•จ์ˆ˜ : ํ•จ์ˆ˜๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌ๋ฐ›๊ฑฐ๋‚˜ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜ ๋žŒ๋‹ค ํ•จ์ˆ˜ ์„ ์–ธ๊ณผ ํ˜ธ์ถœ fun ํ‚ค์›Œ๋“œ๋ฅผ ์ด์šฉํ•˜์ง€ ์•Š์œผ๋ฉฐ ํ•จ์ˆ˜ ์ด๋ฆ„์ด ์—†์Œ. -> ์ฃผ๋กœ ๋žŒ๋‹ค ํ•จ์ˆ˜๋ฅผ ๋ณ€์ˆ˜์— ๋Œ€์ž…ํ•ด ์‚ฌ์šฉ { ๋งค๊ฐœ๋ณ€์ˆ˜ -> ํ•จ์ˆ˜ ๋ณธ๋ฌธ } * ๋žŒ๋‹ค ํ•จ์ˆ˜ ์‚ฌ์šฉ ๊ทœ์น™ - ์ค‘๊ด„ํ˜ธ { } ๋กœ ํ‘œํ˜„ - { } ์•ˆ์— ํ™”์‚ดํ‘œ(->)๊ฐ€ ์žˆ์œผ๋ฉฐ ํ™”์‚ดํ‘œ ์™ผ์ชฝ์€ ๋งค๊ฐœ๋ณ€์ˆ˜, ์˜ค๋ฅธ์ชฝ์€ ํ•จ์ˆ˜ ๋ณธ๋ฌธ - ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜๊ฐ’์€ ํ•จ์ˆ˜ ๋ณธ๋ฌธ์˜ ๋งˆ์ง€๋ง‰ ํ‘œํ˜„์‹ // ๋žŒ๋‹ค ํ•จ์ˆ˜๋ฅผ ๋ณ€์ˆ˜์— ๋Œ€์ž… val sum = {no1: Int, no2: Int -> no1 + no2} sum(10, 20) // ๋žŒ๋‹ค .. 2021. 11. 23.
[Chap 4] ์ฝ”ํ‹€๋ฆฐ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํด๋ž˜์Šค์™€ ์ƒ์„ฑ์ž ํด๋ž˜์Šค ์„ ์–ธ - class ํ‚ค์›Œ๋“œ ์‚ฌ์šฉ - ํด๋ž˜์Šค์˜ ๋ฉค๋ฒ„๋Š” ์ƒ์„ฑ์ž, ๋ณ€์ˆ˜, ํ•จ์ˆ˜, ํด๋ž˜์Šค๋กœ ๊ตฌ์„ฑ - ์ฝ”ํ‹€๋ฆฐ์˜ ์ƒ์„ฑ์ž : constructor ํ‚ค์›Œ๋“œ๋กœ ์„ ์–ธ - ํด๋ž˜์Šค ์•ˆ์— ๋‹ค๋ฅธ ํด๋ž˜์Šค ์„ ์–ธ ๊ฐ€๋Šฅ - ํด๋ž˜์Šค๋Š” ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด ์‚ฌ์šฉ(new ํ‚ค์›Œ๋“œ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ) class User { val name = "kkang"; constructor(name: String){ this.name = name } fun someFun() { println("name : $name") } class SomeClass {} } val user = User("kim"); ์ƒ์„ฑ์ž(constructor ํ‚ค์›Œ๋“œ) ํ•œ ํด๋ž˜์Šค ์•ˆ์— ์ฃผ ์ƒ์„ฑ์ž / ๋ณด์กฐ ์ƒ์„ฑ์ž / ๋‘˜ ๋‹ค ์„ ์–ธ ๊ฐ€๋Šฅ 1. ์ฃผ ์ƒ์„ฑ์ž : ํด๋ž˜์Šค ์„ ์–ธ๋ถ€ - ํ•„.. 2021. 11. 20.