๋ฐ˜์‘ํ˜•
ํผ๋ฐ์ดํ„ฐ (form data)

• <form> ํƒœ๊ทธ์— ์‹ค๋ ค ์ „์†ก๋˜๋Š” ๋ฐ์ดํ„ฐ. ์ „์†ก๋œ ๋ฐ์ดํ„ฐ๋Š” ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ๊ฐ์ฒด์— ๋‹ด์•„ ๋ฐ›์Œ(=DTO)
DTO(Data Transfer Object) ์„ ์ง€์ง€๊ณ  ๋ณถ์•„ DB ์— ์ €์žฅ

 

Database & JPA

 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ฐฝ๊ณ  (DB)
 DB๋Š” ์ž๋ฐ”์–ธ์–ด๋ฅผ ๋ชจ๋ฆ„! DB๋Š” SQL(Structured Query Languate) ๋งŒ ์•Œ๊ณ ์žˆ์Œ.
์ž๋ฐ”์—์„œ DB์— ๋ฐ์ดํ„ฐ ๊ธฐ๋ก์„ ํ•˜๊ธฐ์œ„ํ•œ ์ˆ˜๋‹จ์ค‘์— ํ•˜๋‚˜๋กœ JPA๊ฐ€ ์žˆ์Œ 
    → JPA(Java Persistence API) ์„ ํ†ตํ•ด ์ž๋ฐ”์–ธ์–ด๋กœ DB์— ๋ช…๋ น์„ ๋‚ด๋ฆผ!
    → ๊ฐ์ฒด์ง€ํ–ฅ์ ์œผ๋กœ ๊ด€๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ์Œ
    → JPA ๋Š” entity, repository ๊ฐ€ ์žˆ์Œ

 

์‹ค์Šต๊ด€๋ จ

1. H2 DB์— ์›น ์ฝ˜์†”๋กœ ์ ‘๊ทผ ํ—ˆ์šฉํ•˜๋„๋ก ํ•จ (application.yaml)

spring.h2.console.enabled=true

2. h2 db ์ ‘์† ๊ด€๋ จ
→ ์ธํ…”๋ฆฌ์ œ์ด > debug ์ฝ˜์†” > jdbc: ๊ฒ€์ƒ‰ ํ›„, jdbc url ์ •๋ณด ์ฐพ์•„ localhost:8080/h2-console ๋‚ด์˜ JDBC URL ์— ๊ธฐ์ž…

์„œ๋ฒ„ ์‹คํ–‰ํ• ๋•Œ๋งˆ๋‹ค JDBC URL์€ ๋ฐ”๋€œ

๋ฐ˜์‘ํ˜•
๋ฐ˜์‘ํ˜•
  • jdbc(Java Database Connectivity)
์†Œ์Šค์ฝ”๋“œ์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•˜๋Š” API

  • Mybatis (์˜์†์„ฑ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์ผ์ข…)
์†Œ์Šค์ฝ”๋“œ(์ •ํ™•ํžˆ๋Š” ์–ด๋…ธํ…Œ์ด์…˜(์†Œ์Šค์ฝ”๋“œ์— ๋ฐ์ดํ„ฐ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œํ˜„:ํด๋ž˜์Šค๋ฅผ ์ฃผ์ž…ํ•˜์—ฌ ์‚ฌ์šฉ ๊ฐ€๋Šฅ) ์œผ๋กœ)์—์„œ 
sql๋ฌธ์žฅ์„ ๋ถ„๋ฆฌํ•˜์—ฌ xml์— ์ €์žฅ ํ•˜๋ฉด์„œ ์ด ๋‘˜์„ ์—ฐ๊ฒฐ์‹œ์ผœ์ฃผ๋Š” ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค.
SQLmapper : jdbcTemplate

  • Ibatis->mybatis ์ด๋ฆ„๋ฐ”๋€ ์ด์œ 
apache์—์„œ google๋กœ ์ด๋™ํ•˜๋ฉด์„œ ๋ช…์นญ์ด ๋ณ€๊ฒฝ๋จ.

--> ๋ฐ์ดํ„ฐ ์ „๋‹ฌ๋งŒ ํ•˜๊ณ  ๊ฐ์ฒด์ง€ํ–ฅ์„ ๊ณ ๋ คํ•˜์ง€ ์•Š์•˜๋‹ค.

  • ORM(Object-Relationl Mapping)
๊ฐ์ฒด์™€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ„์˜ ์ฐจ์ด๋ฅผ ์ค‘๊ฐ„์—์„œ ํ•ด๊ฒฐ
RDB๋ฅผ ๊ฐ์ฒด์ง€ํ–ฅ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ์ˆ .

  • Hibernate
ORM๊ธฐ๋Šฅ ์ œ๊ณต. ํ”„๋ ˆ์ž„์›Œํฌ
์ฟผ๋ฆฌ ์ž‘์„ฑ ํ•„์š” ์—†๊ณ , xml ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋กœ ๊ฐ์ฒด๊ด€๊ณ„ ๋งคํ•‘์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ˆ˜ํ–‰.

  • JPA
ORMํ‘œ์ค€ ์ œ์‹œ
์ž๋ฐ”์ง„์˜์—์„œ ๋งŒ๋“ฌ. ORM๊ธฐ์ˆ ํ‘œ์ค€.
SQL์ž‘์„ฑ ์—†์ด ๊ฐ์ฒด๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ง์ ‘ ์ €์žฅํ•  ์ˆ˜ ์žˆ๊ฒŒํ•˜๊ณ  
๊ฐ์ฒด์™€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ฐจ์ด๋„ ์ค‘๊ฐ„์—์„œ ํ•ด๊ฒฐ ํ•ด ์คŒ

์˜ˆ๋ฅผ๋“ค๋ฉด ์ฟผ๋ฆฌ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด, ์†Œ์Šค์ฝ”๋“œ๋„ ๋ณ€๊ฒฝํ•ด์•ผํ•˜๋Š” ์ƒํ™ฉ์ด ์ƒ๊น€

๊ฐœ๋ฐœ์ž๋Š” SQL์„ ์ž‘์„ฑํ•˜์ง€ ์•Š์Œ. ์–ด๋–ป๊ฒŒ ํ‘œํ˜„๋ ์ง€ ์˜ˆ์ƒํ•˜๋ฉด๋จ.
์กฐํšŒ๋œ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ฒด๋กœ ๋งคํ•‘ํ•˜๋Š” ์ž‘์—…๋„ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌ๋จ. 
๋ฐ์ดํ„ฐ ์ €์žฅ ๊ณ„์ธต์— ์ž‘์„ฑํ•ด์•ผ ํ•  ์ฝ”๋“œ๊ฐ€ 1/3์œผ๋กœ ์ค„์–ด๋“ฌ.

๊ฐœ๋ฐœ ์ƒ์‚ฐ์„ฑ & ์œ ์ง€๋ณด์ˆ˜ ์ข‹์•„์ง

๋‚จ๋Š”์‹œ๊ฐ„์— ์ฝ”๋“œ ํ’ˆ์งˆ๊ณผ ํ…Œ์ŠคํŠธ์— ๋” ๋งŽ์€ ์‹œ๊ฐ„์„ ์Ÿ์„ ์ˆ˜ ์žˆ์Œ. 
but, ๋ณต์žกํ•œ ์ฟผ๋ฆฌ๋ฅผ ๋‹ค๋ฃฐ๋• ํ•œ๊ณ„๊ฐ€ ์žˆ๊ธด ํ•จ..


๋ฐ˜์‘ํ˜•
๋ฐ˜์‘ํ˜•

jdbc ์—ฐ๋™ํ•˜๋ ค๊ณ  ํ•˜๋Š”๋ฐ 


Cannot create PoolableConnectionFactory (Could not create connection to database server.)

์—๋Ÿฌ๊ฐ€๋‚˜์„œ ์ฐพ์•„๋ณด์•˜๋‹ค.



๋‚˜์˜๊ฒฝ์šฐ๋Š” ๋กœ์ปฌ์ด ์•„๋‹Œ ์™ธ๋ถ€์„œ๋ฒ„(aws ์‚ฌ์šฉ)์— ์žˆ๋Š” DB(mysql)์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์‹œ๋„ํ•˜๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ

์™ธ๋ถ€์—์„œ ๋””๋น„์ ‘๊ทผ์ด ์•ˆ๋˜์„œ ์ €๋Ÿฐ ์—๋Ÿฌ๊ฐ€ ๋‚ฌ๋˜ ๊ฒƒ์ด๋‹ค.



๋”ฐ๋ผ์„œ ๋””๋น„ ๋‚ด์— ์ ‘์† ๊ฐ€๋Šฅํ•œ IP๋ฅผ ์—ด์–ด์ค˜์•ผํ•จ. (ํŠน์ • ์•„์ดํ”ผ ํ˜น์€ ์ „์ฒด)

mysql.user ํ…Œ์ด๋ธ”์— host๋ช…์„ %๋กœ ๋“ฑ๋ก ํ•ด๋†“์œผ๋ฉด ๋ชจ๋“  IP ์ ‘์† ๊ฐ€๋Šฅ




1) ํ•ด๋‹น์„œ๋ฒ„ ๋””๋น„์ ‘์†

root@ip-@@@@:~# mysql -u root -p

Enter password: ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ


2) ์ˆœ์„œ๋Œ€๋กœ ์‹คํ–‰

mysql> use mysql

mysql>INSERT INTO mysql.user (host,user,authentication_string, ssl_cipher, x509_issuer, x509_subject) VALUES ('%','root',password('๋น„๋ฐ€๋ฒˆํ˜ธ'), '', '', '');

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'; -- ๋ชจ๋“  ํ˜ธ์ŠคํŠธ์— ์ ‘์† ํ—ˆ์šฉ...

mysql>FLUSH PRIVILEGES; -- ๊ถŒํ•œ๋ณ€๊ฒฝ ์ ์šฉํ•˜๊ณ , ์•Œ๋ฆฌ๋Š” ๋ช…๋ น์–ด



~ ๋ 



- ์ฐธ์กฐ : https://medium.com/mo-mu/%EA%B0%9C%EB%B0%9C%EC%9D%BC%EC%A7%80-%EC%9B%90%EA%B2%A9%EC%84%9C%EB%B2%84-mysql%EC%97%B0%EA%B2%B0-sql%ED%8C%8C%EC%9D%BC-import-9abfb0a711da


http://zetawiki.com/wiki/MySQL_%EC%9B%90%EA%B2%A9_%EC%A0%91%EC%86%8D_%ED%97%88%EC%9A%A9



๋ฐ˜์‘ํ˜•

+ Recent posts