YOONJI
article thumbnail

๋“ค์–ด๊ฐ€๊ธฐ ์ „์—

 

์šฐ๋ฆฌ๋Š” ์ด์ „ ํฌ์ŠคํŒ…์—์„œ ํšŒ์› ์ •๋ณด๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—

์„œ๋ฒ„๋ฅผ ๊ป๋‹ค ์ผœ๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋ชจ๋‘ ์‚ฌ๋ผ์กŒ๋‹ค.

์‹ค๋ฌด์—์„œ๋Š” ์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•˜๋ฉด ์•ˆ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํ†ตํ•ด ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•ด์•ผ ํ•œ๋‹ค.

 

์ด๋ฅผ ์œ„ํ•ด ์šฐ์„  ๊ฐ€๋ณ๊ณ  ๊ฐ„๋‹จํ•œ H2 ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๋ฅผ ์„ค์น˜ํ•˜๊ณ ,

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค SQL์„ ํ†ตํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„์™€ DB๋ฅผ ์—ฐ๊ฒฐํ•ด ๋ณด์ž.

์—ฐ๊ฒฐํ•  ๋•Œ ํ•„์š”ํ•œ ๊ฒƒ์ด ๋ฐ”๋กœ Jdbc๋ผ๋Š” ๊ธฐ์ˆ ์ด๋ฉฐ,

๋จผ์ € ์˜ค๋ž˜ ์ „์˜ ๊ฐœ๋ฐœ์ž๋“ค์ด ์–ด๋–ป๊ฒŒ ๊ฐœ๋ฐœํ–ˆ๋Š”์ง€ ์ˆœ์ˆ˜ํ•œ Jdbc๋กœ ๊ฒฝํ—˜์„ ํ•ด ๋ณด๊ณ 

์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ DB๋กœ SQL์„ ํŽธํ•˜๊ฒŒ ๋‚ ๋ฆด ์ˆ˜ ์žˆ๋Š” ์Šคํ”„๋ง Jdbc Template์„ ์‚ฌ์šฉํ•  ์˜ˆ์ •์ด๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ๋” ๋‚˜์•„๊ฐ€์„œ SQL์กฐ์ฐจ ๊ฐœ๋ฐœ์ž๋“ค์ด ์ง์ ‘ ์งœ์ง€ ์•Š๊ณ 

JPA๋ผ๋Š” ๊ธฐ์ˆ ์„ ํ†ตํ•ด ๋“ฑ๋ก/์ˆ˜์ •/์‚ญ์ œ ์ฟผ๋ฆฌ๋ฅผ ๋‚ ๋ฆด ์ˆ˜ ์žˆ๋‹ค.

(๊ฐ์ฒด๋ฅผ ์ฟผ๋ฆฌ ์—†์ด ๋ฐ”๋กœ DB์— ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.)

 

์ด JPA๋ฅผ ์Šคํ”„๋ง์—์„œ ์•„์ฃผ ํŽธ๋ฆฌํ•˜๊ฒŒ ์“ธ ์ˆ˜ ์žˆ๋„๋ก ๊ฐ์‹ผ ๊ธฐ์ˆ ์ด ์Šคํ”„๋ง ๋ฐ์ดํ„ฐ JPA์ด๋‹ค.

์Šคํ”„๋ง ๋ฐ์ดํ„ฐ JPA๊นŒ์ง€ ์‚ฌ์šฉํ•ด๋ณด๋ฉด Chapter 6์ด ๋งˆ๋ฌด๋ฆฌ ๋œ๋‹ค.

 


H2 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค์น˜

 

# ์„ค์น˜

๋ฐ˜๋“œ์‹œ ์•„๋ž˜ ๋งํฌ์—์„œ 1.4.200 ๋ฒ„์ „ ์„ค์น˜ํ•˜๊ธฐ

(์ตœ๊ทผ์— ๋‚˜์˜จ 2.0.206 ๋ฒ„์ „์„ ์„ค์น˜ํ•˜๋ฉด ์ผ๋ถ€ ๊ธฐ๋Šฅ์ด ์ •์ƒ ๋™์ž‘ํ•˜์ง€ ์•Š์Œ)

https://www.h2database.com/html/download-archive.html

 

๋งŒ์•ฝ ์ด๋ฏธ ์„ค์น˜ํ•˜๊ณ  ์‹คํ–‰๊นŒ์ง€ ํ–ˆ๋‹ค๋ฉด ๋‹ค์‹œ ์„ค์น˜ํ•œ ์ดํ›„์— ~/test.mv.db ํŒŒ์ผ์„ ๊ผญ ์‚ญ์ œํ•ด์•ผ ํ•œ๋‹ค.

>  ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด์„œ ์ ‘์†๋˜์ง€ ์•Š์Œ.

>  General error: "The write format 1 is smaller than the supported format 2 [2.0.206/5]" [50000-202] HY000/50000

 

 

 

# ์„ค์น˜ ์™„๋ฃŒ ํ›„

> ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ๋‹ค๋ฉด ํ„ฐ๋ฏธ๋„์„ ์—ด์–ด h2 ํด๋”์˜ bin์œผ๋กœ ๋“ค์–ด๊ฐ„๋‹ค.

$ cd downloads // ๊ฐ์ž ํŒŒ์ผ์ด ๋‹ค์šด๋กœ๋“œ ๋œ ์œ„์น˜ ์ž…๋ ฅ
$ cd h2
$ cd bin

 

> ๋งฅ ์‚ฌ์šฉ์ž๋Š” ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ด์ค€๋‹ค. (์œˆ๋„์šฐ๋Š” X)

$ chmod 755 h2.sh

 

> ์‹คํ–‰

$ ./h2.sh

// ์œˆ๋„์šฐ ์‚ฌ์šฉ์ž๋Š” h2.bat

 

 

๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ™”๋ฉด์ด ๋œฌ๋‹ค.

์ตœ์ดˆ ์ ‘์†(JDBC URL)์€ jdbc:h2:~/test

์ดํ›„๋ถ€ํ„ฐ๋Š” jdbc:h2:tcp://localhost/~/test๋กœ ์ ‘์†

 

์—ฐ๊ฒฐ์„ ๋ˆ„๋ฅด๊ณ  ์•„๋ž˜ ํ™”๋ฉด์ด ๋œจ๋ฉด ์„ฑ๊ณต.

์ขŒ์ธก ์ƒ๋‹จ์˜ ๋นจ๊ฐ„ N ๋ชจ์–‘์„ ๋ˆ„๋ฅด๋ฉด ์ด์ „ ํ™”๋ฉด์œผ๋กœ ๋Œ์•„๊ฐ„๋‹ค.

ํ™ˆ์—์„œ ls ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด test.mv.db๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ

(ํ˜น์‹œ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๋ฉด rm test.mv.db ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์‚ญ์ œ ํ›„ ์„ค์น˜๋ถ€ํ„ฐ ๋‹ค์‹œ ์‹คํ–‰)

 

 

# ํ…Œ์ด๋ธ” ์ƒ์„ฑํ•˜๊ธฐ

 

ํ…Œ์ด๋ธ” ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ์— sql/ddl.sql ํŒŒ์ผ์„ ์ƒ์„ฑ

 

H2 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•ด์„œ member ํ…Œ์ด๋ธ” ์ƒ์„ฑ

create table member
    (
        id   bigint generated by default as identity,
        name varchar(255),
        primary key (id)
);

genertated by default as identity : ๊ฐ’์„ ์„ธํŒ…ํ•˜์ง€ ์•Š๊ณ  insertํ•˜๋ฉด db๊ฐ€ ์ž๋™์œผ๋กœ id ๊ฐ’์„ ์ฑ„์›Œ์คŒ

 

 

 

# H2 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ •์ƒ ์ƒ์„ฑ๋˜์ง€ ์•Š์„ ๋•Œ

 

๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜์˜ค๋ฉฐ H2 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ •์ƒ ์ƒ์„ฑ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.

์ถœ์ฒ˜ : ๊น€์˜ํ•œ์˜ ์Šคํ”„๋ง ์ž…๋ฌธ

 

ํ•ด๊ฒฐ ๋ฐฉ์•ˆ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

์ถœ์ฒ˜ : ๊น€์˜ํ•œ์˜ ์Šคํ”„๋ง ์ž…๋ฌธ

 

 

# ํ…Œ์ŠคํŠธ ํ•ด๋ณด๊ธฐ

insert into member(name) values('spring')
insert into member(name) values('spring2')

spring, spring2 ํšŒ์›์ด ์ •์ƒ์ ์œผ๋กœ ์ƒ์„ฑ๋˜์—ˆ๋‹ค.

 

 

 

 

๋‚ด์šฉ ๋ฐ ์ด๋ฏธ์ง€ ์ถœ์ฒ˜ : ๊น€์˜ํ•œ์˜ ์Šคํ”„๋ง ์ž…๋ฌธ    

'๐Ÿ–‹๏ธ study > spring' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Spring Intro] Section 06. ์Šคํ”„๋ง DB ์ ‘๊ทผ ๊ธฐ์ˆ _JPA, ์Šคํ”„๋ง ๋ฐ์ดํ„ฐ JPA  (0) 2023.01.30
[Spring Intro] Section 06. ์Šคํ”„๋ง DB ์ ‘๊ทผ ๊ธฐ์ˆ _์ˆœ์ˆ˜ JDBC, ์Šคํ”„๋ง ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ, ์Šคํ”„๋ง JDBC Template  (2) 2023.01.30
[Spring Intro] Section 05. ํšŒ์›๊ด€๋ฆฌ ์˜ˆ์ œ - ์›น MVC ๊ฐœ๋ฐœ(ํšŒ์› ์›น ๊ธฐ๋Šฅ, ํ™ˆ ํ™”๋ฉด ์ถ”๊ฐ€, ๋“ฑ๋ก, ์กฐํšŒ)  (0) 2023.01.25
[Spring Intro] Section 04. ์Šคํ”„๋ง ๋นˆ๊ณผ ์˜์กด๊ด€๊ณ„_์ปดํฌ๋„ŒํŠธ ์Šค์บ”๊ณผ ์ž๋™ ์˜์กด๊ด€๊ณ„ ์„ค์ •, ์ž๋ฐ” ์ฝ”๋“œ๋กœ ์ง์ ‘ ์Šคํ”„๋ง ๋นˆ ๋“ฑ๋กํ•˜๊ธฐ  (0) 2023.01.23
[Spring Intro] Section 03. ํšŒ์› ๊ด€๋ฆฌ ์˜ˆ์ œ_๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ, ๋น„์ฆˆ๋‹ˆ์Šค ์š”๊ตฌ์‚ฌํ•ญ ์ •๋ฆฌ, ํšŒ์› ๋„๋ฉ”์ธ๊ณผ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋งŒ๋“ค๊ธฐ, ํšŒ์› ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ํ…Œ์ŠคํŠธ, ํšŒ์› ์„œ๋น„์Šค ๊ฐœ๋ฐœ, ํšŒ์› ์„œ๋น„์Šค ํ…Œ์ŠคํŠธ  (0) 2023.01.20
profile

YOONJI

@๊ธฐ๋ฎจ์ง€

ํฌ์ŠคํŒ…์ด ์ข‹์•˜๋‹ค๋ฉด "์ข‹์•„์š”โค๏ธ" ๋˜๋Š” "๊ตฌ๋…๐Ÿ‘๐Ÿป" ํ•ด์ฃผ์„ธ์š”!