๋‚˜์˜ ๋‹ค์ง,๊ธฐ๋ก,์ผ์ƒ/์šฐ๋ฆฌFISA2๊ธฐ_์„ฑ์žฅ๊ธฐ๋ก

์šฐ๋ฆฌ fisa 2๊ธฐ 'ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค ๊ฐœ๋ฐœ' 10์ฃผ์ฐจ

์‹œํ๋ฆฌํ‹ฐ์ง€ํ˜ธ 2024. 1. 28. 19:17

์–ด๋А๋ง ๋‚ด๊ฐ€ ์—ฌ๊ธฐ ์˜จ์ง€ 70์ผ์ด๋ผ๋Š” ์‹œ๊ฐ„์ด ์ง€๋‚ฌ๋‹ค. ๊ฑฐ์˜ ์ ˆ๋ฐ˜์ด๋‚˜ ์˜จ ์…ˆ์ด๋‹ค ใ…‹ใ…‹ 

์ด ๊ณผ์ •์„ ํ•œ ๋ฒˆ ๋” ๊ฒช์œผ๋ฉด ๊ฑฐ์ง„ ๋งˆ๋ฌด๋ฆฌ ๋œ๋‹ค๋Š”๊ฒŒ ๋ฏฟ๊ธฐ์ง€๊ฐ€ ์•Š๋Š”๋‹ค !!!

 

๋‚ด๊ฐ€ ์ •๋ง ์ž˜ํ•˜๊ณ  ์žˆ์„๊นŒ ๋‚˜์˜ ํ˜„ ์œ„์น˜๋Š” ์•ž์œผ๋กœ ๋ฏธ๋ž˜๋Š” ์–ด๋–ป๊ฒŒ ๊ทธ๋ ค ๋‚˜๊ฐˆ๊นŒ?? ๋ผ๋Š” ์ƒ๊ฐ์„ ํ•˜๋ฉฐ ํ•˜๋ฃจ๋ฅผ ๋ณด๋‚ด๊ณ  ์žˆ๋‹ค.

 

์ด๋Ÿฌํ•œ ์ƒ๊ฐ์„ ํ•˜๋ฉด์„œ ๋‚˜์˜ ์ €๋ฒˆ ํ•œ ์ฃผ๋ฅผ ์Š์–ด ๋ณธ๋‹ค!

 


์ผ์ƒ ์–˜๊ธฐ

 

 

์—ฌ์ „ํžˆ ํ•˜๊ณ  ์žˆ๋Š” ์•„์นจ ์šด๋™ ใ…‹ใ…‹ใ…‹ ๋๋‚˜๋ฉด ๋Œ€๋žต ์ƒˆ๋ฒฝ 6์‹œ ์ฏค์ด๋‹ค... ์˜คํ›„ 6์‹œ ์•„๋‹ˆ๋‹ค!

์˜ค์ „์ด๋‹ค ์˜ค์ „!! ๋‚˜๋ฆ„ ์ฒด๋ ฅ ๊ด€๋ฆฌ์— ์‹ ๊ฒฝ์„ ๋งŽ์ด ์“ฐ๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ˜„์žฌ ์ง€์ณ๊ฐˆ ์ˆ˜๋„ ์žˆ๋Š” ์‹œ์ ์—์„œ ์ง€์น˜์ง€ ์•Š๊ณ  ๊ณ„์† ๋‹ฌ๋ฆด ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค ใ…Žใ…Ž (์‰… ์‹œ๊ฐ„์— ์ž˜ ์•ˆ ํ”ผ๊ณคํ•จ ใ…‹ใ…‹)

 

 

์–ธ์ œ ๋„์ฐฉํ•˜๋‚˜์š” ใ… 

 

๊ทธ๋Ÿฐ๋ฐ ~~~ ์ด๋ฒˆ ํ•œ ์ฃผ๋Š” ๊ทธ๋Ÿฐ ํ•œ ์ฃผ ์˜€์„๊นŒ?? ๋‚˜์—๊ฒŒ ์ง€๊ฐ์ด๋ผ๋Š”  ๋‹จ์–ด๊ฐ€ ์ฐพ์•„์™”๋‹ค.. ๊ทธ๊ฒƒ๋„ ๋‘ ๋ฒˆ์ด๋‚˜..

๋‚˜๋Š” ํ•ญ์ƒ ์ถœ๋ฐœํ•˜๋Š” ์‹œ๊ฐ„์— ์ถœ๊ทผ์„ ํ•˜์ง€๋งŒ... ์ด์ƒํ•˜๊ฒŒ ๋ฒ„์Šค๊ฐ€ ๋А๋ฆฐ ๊ฑฐ๋ถ์ด์ฒ˜๋Ÿผ ๊ฐˆ ๋•Œ๊ฐ€ ์žˆ๋‹ค ใ… ใ…  

ํ•œ ๋ฒˆ์€ ๋ˆˆ์ด ์™€์„œ ๋ธ”๋ž™์•„์ด์Šค ๋•Œ๋ฌธ์ผ๊นŒ?? ๋‘ ๋ฒˆ์€ ์˜ค๋‹ค๊ฐ€ ๋‹ค๋ฅธ ์ฐจ์˜ ๊ตํ†ต์‚ฌ๊ณ  ๋ฐœ์ƒ ใ… ใ…  ์œผ๋กœ ๊ตํ†ตํ˜ผ๋ž€..

๊ทธ๋ ‡๊ฒŒ ใ…‹ใ…‹ ๋‚œ ๋‘ ๋ฒˆ์˜ ์ง€๊ฐ์„ ํ•˜๊ฒŒ ๋˜์—ˆ๋”ฐ์•„ ,,  ์˜๋„์น˜ ์•Š์€ ์ง€๊ฐ์ด๋ผ ์กฐํผ ์–ต์šธํ•˜๊ธด ํ•œ๋ฐ.. ๋จผ๋ฐ์„œ ์˜ค๋Š” ๊ฑฐ๋ผ 

๊ทธ๋Ÿด ์šด๋ช…์€ ํ”ผํ•  ์ˆ˜ ์—†๊ธด ํ•˜๋‚˜๋ณด๋‹ค ใ…‹ใ…‹ 

 

ํ•˜์ง€๋งŒ! ์–ด๋–ค ์ผ์ด๋“  ์ง€๊ฐ์€ ํ—ˆ์šฉ๋˜์ง€ ์•Š๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ตœ๋Œ€ํ•œ ์•ˆ ํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•  ๊ฒƒ์ด๋‹ค !!

 

 

 

๋“œ๋””์–ด ~ ์ •์ฒ˜๊ธฐ ์‹œ์ฆŒ์ด ์™”๋‹ค !! ๋‚˜๋Š” ์ •์ฒ˜๊ธฐ ๊ณต๋ถ€๋ฅผ ๊พธ์ค€ํžˆ ํ•ด ์™”๋Š”๋ฐ, ์ ‘์ˆ˜๋‚ ์ด ์™€์„œ ์ ‘์ˆ˜๋ฅผ ํ–ˆ๋‹ค.

๋‚˜๋Š” ๊ธฐ์‚ฌ๋ฅผ ์ฒ˜์Œ ์‘์‹œํ•ด๋ณด๋Š”๋ฐ ใ…‹ใ…‹ ๊ด‘ํด์˜ ์˜์—ญ์ธ ๊ฒƒ์„ ์ฒ˜์Œ ์•Œ์•˜๋‹ค ใ…‹ใ…‹ใ…‹  ์ž์นซํ•˜๋ฉด ์ž๊ธฐ ๋™๋„ค๊ฐ€ ์•„๋‹Œ 

ํƒ€์ง€์—ญ์—์„œ ๋ณผ ์ˆ˜๋„ ์žˆ๋‹ค๊ณ  ํ•˜๋”๋ผ๊ณ ใ… ใ…  ex) ์„œ์šธ ์‚ฌ๋žŒ -> ๊ฐ•์›๋„, ๋ถ€์‚ฐ ์‚ฌ๋žŒ -> ์ง„์ฃผ ๋“ฑ๋“ฑ

 

๊ทธ๋ž˜๋„ ๋ฏธ๋ฆฌ ์•Œ๋ ค์ฃผ๋Š” ๋™๊ธฐ๊ฐ€ ์žˆ์—ˆ๊ณ , ์šฐ๋ฆฌ ๋ฐ˜์— ์ƒ๊ฐ๋ณด๋‹ค ๋งŽ์€ ์ธ์›์ด ์ •์ฒ˜๊ธฐ ์‹œํ—˜์„ ์น˜๋ค„์•ผ ํ–ˆ๊ธฐ์— ์„œ๋กœ ๋„์™€์ฃผ๋ฉฐ 

์›ํ•˜๋Š” ๋‚ ์งœ ์žฅ์†Œ์— ๋ฌด์‚ฌํžˆ ์•ˆ์ฐฉํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค ใ…‹ใ…‹ (์šฐ๋ฆฌ๋ฐ˜ ์ต์˜ค!)

 

๊ฐ์„คํ•˜๊ณ  ์ด๋ฒˆ ์ •์ฒ˜๊ธฐ ๊ผญ ๋งˆ๋ฌด๋ฆฌ ์ž˜ํ•ด์„œ ํ•„๊ธฐ ๋”ฐ๊ณ  ์‹ค๊ธฐ๊นŒ์ง€ ๋”ธ ์˜ˆ์ •์ด๋‹ค!!

 

 

ํ˜น์‹œ ๋งฅ๋ถ ์œ ์ €๋“ค !!! ์ด๊ฑฐ ์žŠ์ง€ ๋ง์•„์š”์˜ค !~ ใ…‹ใ…‹ใ…‹ CPU ์‚ฌ์šฉ๋Ÿ‰ ํ‘œ์‹œํ•ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ์ธ๋ฐ

๋งŽ์ด ์‚ฌ์šฉํ•  ์ˆ˜๋ก ์ € ๊ณ ์–‘์ด๊ฐ€ ๋นจ๋ฆฌ ๋‹ฌ๋ฆฝ๋‹ˆ๋‹ค ใ…‹ใ…‹ so cute ~~ ์‹ฌ์ง€์–ด ๊ณ ์–‘์ด ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์›ํ•˜๋Š” ์ผ€๋ฆญํ„ฐ๋“ค์ด ์žˆ๋Š”๋ฐ ์„ ํƒํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค!!

 

'running cat' ์ด๋ผ๊ณ  ์น˜๋ฉด ๋ฐ”๋กœ ๋‚˜์˜ต๋‹ˆ๋‹น

 

์˜คํ† ๊น€๋ฐฅ

 

๋‹ค๋“ค ์˜คํ†  ์˜คํ†  ๊น€๋ฐฅ ํ•˜๊ธธ๋ž˜ ๋ญ”๊ฐ€ ํ•ด์„œ ํ•œ ๋ฒˆ ๊ฐ€๋ดค๋‹ค ใ…‹ใ…‹ ๋ง›๋„ ๊ดœ์ฐฎ๊ณ  ์–‘๋„ ์ข‹์•„์„œ ๊ฐ€์„ฑ๋น„๋กœ๋Š” ๊ฐ‘์ด์—ˆ๋‹ค ๐Ÿ‘๐Ÿ‘

๊ฐœ์ธ์ ์œผ๋กœ ๊น€๋ฐฅ์„ ์—„์ฒญ ์ข‹์•„ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž์ฃผ ์• ์šฉํ•  ๊ฒƒ ๊ฐ™๋‹ค ใ…Žใ…Ž

 


๊ณต๋ถ€ ์–˜๊ธฐ

1. ์ด๋ฒˆ ์ฃผ ๋ฐฐ์šด ๊ฒƒ

 

์ด ๋ฒˆ์ฃผ๋Š” ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค. Data Accessing , JavaEE

 

Data Accessing

Data Accessing ์—๋Š” JDBC, Connection Pooling, DataSource Interface ๊ทธ๋ฆฌ๊ณ  JPA ๋ฐฉ์‹์ด ์žˆ๋‹ค.

 

1. JDBC(Java DataBase Connectivity) : ์ž๋ฐ”์—์„œ DB์™€ ์—ฐ๊ฒฐํ•ด์ฃผ๊ธฐ ์œ„ํ•ด JDBC API๋ฅผ ์ œ๊ณตํ•ด์ฃผ๋Š”๋ฐ ์ด๋•Œ Driver Manager ํด๋ž˜์Šค๋ฅผ ํ™œ์šฉํ•ด์„œ DB์™€์˜ ์—ฐ๊ฒฐ์„ ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Statement์™€ ResultSet์„ ํ™œ์šฉํ•ด์„œ DB ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•œ๋‹ค.

 

  1. java.sql ํŒจํ‚ค์ง€๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” class ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ import (ex. Connection, Statement, ResultSet)
  2. DB์™€์˜ Connection ์—ด๊ธฐ -> DriverManger.getConnection() ๋ฅผ ํ™œ์šฉํ•˜์—ฌ Connection ๊ฐ์ฒด ์ƒ์„ฑ (์‹ค์ œ DB์™€์˜ ๋ฌผ๋ฆฌ์  ์—ฐ๊ฒฐ ์ˆ˜ํ–‰)
  3. ์ฟผ๋ฆฌ ์‹คํ–‰(Excute a Query) -> SQL๋ฌธ์„ DB์— ์ „์†กํ•˜๋Š” Statement ๊ฐ์ฒด ํ™œ์šฉ(or PrepareStatement)
  4. ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ์ถ”์ถœ -> ResultSet.getXXX() ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ฒฐ๊ณผ ์…‹(ResultSet)์œผ๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ ์ถ”์ถœ
  5. DB ์ปค๋„ฅ์…˜ close(Clean up the environment) -> conn.close(), stmt.close() ๋“ฑ

2. Connection Pooling : ํ”„๋กœ๊ทธ๋žจ ์‹œ์ž‘ ๊ณผ์ •์—์„œ ์ปค๋„ฅ์…˜ ๊ฐ์ฒด๋ฅผ 2๊ฐœ ์ด์ƒ ๋ฏธ๋ฆฌ ์ƒ์„ฑํ•ด๋‘” ํ›„์— ์‚ฌ์šฉ์ž ์š”์ฒญ์ด ์˜ฌ ๊ฒฝ์šฐ ์ƒ์„ฑํ•ด๋‘” ๊ฐ์ฒด๋ฅผ ๋ฐ”๋กœ ํ™œ์šฉํ•˜์—ฌ ์š”์ฒญ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„์„ ๊ฐ์†Œ์‹œํ‚ค๋Š” ๋ฐฉ์‹์ด๋‹ค. 

 

์ปค๋„ฅ์…˜ ํ’€๋ง์˜ ์ด์ 

  1. ์ปค๋„ฅ์…˜ ์ƒ์„ฑ ์‹œ๊ฐ„ ๊ฐ์†Œ
  2. ๊ฐ„์†Œํ™”๋œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ชจ๋ธ
  3. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ ์ตœ์ ํ™”

3. DataSource Interface : ์›๋ž˜๋Š” Connection Pooling์„ ํ•˜๊ธฐ์œ„ํ•ด ๋งค๋ฒˆ ์ปค๋„ฅ์…˜ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ–ˆ์—ˆ๋‹ค. ํ•˜์ง€๋งŒ, DataSource Interface๋ฅผ ํ†ตํ•ด Hikari, Apache DBCP ๊ตฌํ˜„์ฒด๋ฅผ ํ™œ์šฉํ•ด์„œ connection pooling์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค.

 

*DataSource Interface๋ฅผ ํ™œ์šฉํ•จ์œผ๋กœ์จ ์ฝ”๋“œ๋‚ด ์ˆ˜์ •์„ ์ตœ์†Œํ™” ์‹œ์ผœ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๋Š” ํšจ๊ณผ๊ฐ€ ์žˆ๋‹ค.

 

4. JPA(Java Persistence API ): JPA๋ž€ Java Persistence API์˜ ์ค„์ž„๋ง๋กœ, ์ž๋ฐ” ์ง„์˜์—์„œ ORM(Object Relational Mapping) ๊ธฐ์ˆ ์˜ ํ‘œ์ค€์œผ๋กœ ์ž๋ฆฌ์žก์€ ์ธํ„ฐํŽ˜์ด์Šค์˜ ์ง‘ํ•ฉ์„ ์˜๋ฏธํ•œ๋‹ค. JPA์˜ ๊ตฌํ˜„์ฒด๋กœ ๋Œ€ํ‘œ์ ์ธ ๊ฒƒ์€ Hibernate ๊ฐ€ ์žˆ๋‹ค.

 

-> JPA๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ, JDBC์— ๋น„ํ•ด DB์ ใ…‚๊ทผ์„ ์œ„ํ•ด ์ž‘์„ฑํ•ด์•ผ ํ•  ์ฝ”๋“œ์˜ ๋ณผ๋ฅจ์ด ์ค„์–ด๋“ค๋ฉด์„œ ์ฝ”๋“œ๋“ค์ด ๋ณด๋‹ค ์ถ”์ƒํ™” ๋œ๋‹ค.

๋˜ํ•œ, Hibernate๋Š” JPA ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ๊ตฌํ˜„์ฒด์˜ ํ•˜๋‚˜์ผ ๋ฟ์ด์ง€, Hibernate๊ฐ€ JPA์˜ ์ „๋ถ€๋ฅผ ์˜๋ฏธํ•˜์ง„ ์•Š๋Š”๋‹ค. ๋นˆ๋„๊ฐ€ ๋†’์„ ๋ฟ!

 

*ORM(Object Relational Mapping) : ๋‹จ์ˆœํ•˜๊ฒŒ Java ๊ฐ์ฒด๋ฅผ ์˜๋ฏธํ•˜๋Š” Object, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”์„ ์˜๋ฏธํ•˜๋Š” Relation ์ด ๋‘ ๊ฐœ๋…์„ ์„œ๋กœ ์—ฐ๊ฒฐ(Mapping)ํ•˜์—ฌ ๋งˆ์น˜ ํ•˜๋‚˜์ธ ๊ฒƒ์ฒ˜๋Ÿผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•๋ก ์ด๋‹ค. (๋ณ„๋„์˜ SQL๋ฌธ ์ž‘์„ฑ ์—†์ด Java ์ฝ”๋“œ๋งŒ์œผ๋กœ DB ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ ๊ฐ€๋Šฅํ•˜๋‹ค.)

์ด๋กœ์จ ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ ํ™œ์šฉ

 

<<์˜์†์„ฑ ์ปจํ…์ŠคํŠธ>>

 

์˜์†์„ฑ ์ปจํ…์ŠคํŠธ ์ƒ์„ฑ

 

EntityManager๊ฐ€ ์ƒ์„ฑ๋˜๋ฉด ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.

๋งค๋‹ˆ์ €์™€ ์ปจํ…์ŠคํŠธ๋Š” 1:1 ๋งค์นญ

๊ฐ ๋งค๋‹ˆ์ €๋Š” ๊ฐœ๋ณ„ ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

EntityManager manager = factory.createEntityManager();

 

์ด๊ฑธ๋กœ ์ธํ•ด ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ๊ฐ€ ์ƒ์„ฑ์ด ๋œ๋‹ค. ์ดํ›„, ์ƒํ™ฉ์— ๋”ฐ๋ผ 

 

Book book = manager.find(Book.class, 0) //์กฐํšŒ

=================

Book book = new Book("์–ด๋ฆฐ์™•์ž", "์ƒํ…์ฅํŽ˜๋ฆฌ")
manager.persist(book); // ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ์— ์—”ํ‹ฐํ‹ฐ๋ฅผ ๋ณด๊ด€(์˜์†ํ™”)

=================

// id๊ฐ€ 1๋ฒˆ์ธ Book ์—”ํ‹ฐํ‹ฐ๋ฅผ ์กฐํšŒ ํ›„ ์ฑ… ์ด๋ฆ„์„ ๋ณ€๊ฒฝ
Book book = manager.find(Book.class, 1); // id๊ฐ€ 1๋ฒˆ์ธ ๋ฐ์ดํ„ฐ ์กฐํšŒ
			
// DB์—์„œ ์กฐํšŒ๋œ ์—”ํ‹ฐํ‹ฐ(book)์˜ ํ•„๋“œ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋ฉด UPDATE ์ฟผ๋ฆฌ๊ฐ€ ์ž‘์„ฑ๋จ 
book.setName("๊น€์˜ํ•œ์˜ JPA");

=================

Book book = manager.find(Book.class, 1);
// id๊ฐ€ 1๋ฒˆ์ธ Book ์—”ํ‹ฐํ‹ฐ๋ฅผ ์ œ๊ฑฐ
// EntityManager๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋ฉ”์„œ๋“œ
manager.remove(book);

*persist() : ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ์— ์—”ํ‹ฐํ‹ฐ๋ฅผ ๋ณด๊ด€(์˜์†ํ™”)

๋ฅผ ํ•˜๊ณ  

transaction.commit();

 ์„ ์ˆ˜ํ–‰ํ•ด์„œ DB์— ๋ฐ˜์˜ํ•œ๋‹ค. 

*๋‹จ, ์กฐํšŒ Select ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” transaction์ด ํ•„์š”๊ฐ€ ์—†๋‹ค!

 

์ „์ฒด์ ์ธ ๊ตฌ์กฐ๋ฅผ ๋ณด๋ฉด ์ด๋ ‡๊ฒŒ ๋  ์ˆ˜๊ฐ€ ์žˆ๋‹ค.

์ถœ์ฒ˜ :&nbsp;https://velog.io/@minsuk/JPA%EC%98%81%EC%86%8D%EC%84%B1-%EC%BB%A8%ED%85%8D%EC%8A%A4%ED%8A%B8

 

 

 

 


JavaEE

Java SE ๊ธฐ๋ฐ˜์œผ๋กœ ์›น ๊ธฐ์ˆ ์„ ํ™œ์šฉ, ๊ตฌํ˜„ ๊ฐ€๋Šฅํ•œ ํ”Œ๋žซํผ์„ ๋งํ•œ๋‹ค.

 

์—ฌ๊ธฐ์„œ ์—ฌ๋Ÿฌ๊ฐ€์ง€๋ฅผ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์—ˆ๋Š”๋ฐ ํฌ๊ฒŒ 7๊ฐ€์ง€๋กœ ๋‚˜๋‰œ๋‹ค.

 

  1. Web Server์™€ Web Application Server ์˜ ์ฐจ์ด์ 
  2. Servlet
  3. Character Encoding - ๋ฌธ์ž์ฒ˜๋ฆฌ
  4. Statement Management - ์ƒํƒœ ์ •๋ณด ์œ ์ง€
  5. Forward & Redirect - ํŽ˜์ด์ง€ ์ด๋™
  6. JSP
  7. MVN ํŒจํ„ด

 

์ด๋ฅผ ํ™œ์šฉํ•œ ์—ฌ๋Ÿฌ ๊ธฐ์ˆ ๋“ค์€  ์ด๋ฏธ ๋ธ”๋กœ๊ทธ์— ์ž˜ ์ •๋ฆฌ ํ•ด๋’€๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ธ”๋กœ๊ทธ๋ฅผ ์ฐธ๊ณ ํ•˜๋ฉด ๋œ๋‹น

 

https://jiholine10.tistory.com/293

 

Web Server, Web Application Server

1. Web Server, ์›น ์„œ๋ฒ„ ์ •์  ๋ฆฌ์†Œ์Šค(HTML, CSS, JS, ์ด๋ฏธ์ง€, ์˜์ƒ ๋“ฑ)์„ ์ œ๊ณตํ•˜๋Š” ์„œ๋ฒ„๋ฅผ ์˜๋ฏธํ•œ๋‹ค. 2. Web Application Server, WAS, ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋Š” ํ”ํžˆ WAS, ์™€์Šค, ์ปจํ…Œ์ด๋„ˆ, ์›น

jiholine10.tistory.com

 

https://jiholine10.tistory.com/294

 

Sevlet

1. Servlet ๊ฐœ์š” Servlet์€ ์ฃผ๋กœ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„์—์„œ ๋™์ž‘ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ ๊ตฌํ˜„ ์‹œ ์‚ฌ์šฉํ•œ๋‹ค. ๋™์‹œ ์ ‘์†์ž๊ฐ€ ๋Š˜์–ด๋‚˜๋ฉด ํšจ์œจ์ด ๋–จ์–ด์ง€๋Š” CGI๊ธฐ์ˆ ์˜ ๋Œ€์•ˆ์œผ๋กœ ๋“ฑ์žฅํ–ˆ๋‹ค. ์„œ๋ธ”๋ฆฟ์€ ํด๋ผ์ด์–ธํŠธ์˜ ์š”

jiholine10.tistory.com

 

https://jiholine10.tistory.com/295

 

Character Encoding - ๋ฌธ์ž ์ฒ˜๋ฆฌ

1. ํ•œ๊ธ€ ๊นจ์ง ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ๋กœ์˜ ์‘๋‹ต ๋ฉ”์‹œ์ง€ ์ „์†ก ๊ณผ์ •์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ํฌํ•จํ•ด์•ผ ํ•  ๋‚ด์šฉ์ด๋‹ค. ๋ณด๋‚ด๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž… = text/html ์ธ์ง€, json ์ธ์ง€ ๋“ฑ ์ธ์ฝ”๋”ฉ ํ•  ๋ฌธ์ž์…‹(Charset) ์ •๋ณด = UTF-8์ธ์ง€, cp

jiholine10.tistory.com

 

https://jiholine10.tistory.com/296

 

Statement Management - ์ƒํƒœ ์ •๋ณด ์œ ์ง€

Http ํ”„๋กœํ† ์ฝœ์˜ ํŠน์„ฑ ์ค‘ ํ•˜๋‚˜๋Š” ๋ฌด์ƒํƒœ(Stateless)๋กœ ๋™์ž‘ํ•œ๋‹ค๋Š” ๊ฒƒ ๋”ฐ๋ผ์„œ ์ด์ „์— ์—ฐ๊ฒฐ๋œ ์‹œ์ ์˜ ์ƒํƒœ ์ •๋ณด๋ฅผ ์„œ๋ฒ„๊ฐ€ ์œ ์ง€ํ•ด์ฃผ์ง€ ์•Š๋Š”๋‹ค! ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์ƒํƒœ ์ •๋ณด๋ฅผ ์ผ์ • ์‹œ๊ฐ„ ๋™์•ˆ ์œ ์ง€์‹œํ‚ค๊ธฐ

jiholine10.tistory.com

https://jiholine10.tistory.com/297

 

Foward & Redirect - ํŽ˜์ด์ง€ ์ด๋™

1. ๊ฒฝ๋กœ ์ด๋™ ๋ฐฉ๋ฒ• ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์— ๋”ฐ๋ผ ์ผ๋ จ์˜ ์ฒ˜๋ฆฌ๊ฐ€ ์ˆ˜ํ–‰ ์ค‘์ธ ์„œ๋ธ”๋ฆฟ์—์„œ ๋‹ค๋ฅธ ์„œ๋ธ”๋ฆฟ์œผ๋กœ ์ด๋™ํ•˜์—ฌ ๋‹ค๋ฅธ ์ฒ˜๋ฆฌ๋„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•  ๊ฒฝ์šฐ, ์ด๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ํฌ๊ฒŒ 2๊ฐ€์ง€ ์ด๋‹ค. 1-1 Forward ํด๋ผ์ด์–ธํŠธ

jiholine10.tistory.com

 

https://jiholine10.tistory.com/298

 

JSP - Java Server Page

JSP, Java Server Page JSP๋Š” ๊ฐ„๋‹จํ•˜๊ฒŒ Java code in HTML์„ ์˜๋ฏธํ•œ๋‹ค. ์„œ๋ธ”๋ฆฟ ๊ธฐ๋ฐ˜ HTML ํŽ˜์ด์ง€ ๊ตฌํ˜„์—์„œ ๋ดค๋“ฏ์ด, Java ์ฝ”๋“œ์— HTML์„ ๋ฌธ์ž์—ด ํ˜•ํƒœ๋กœ ์ž‘์„ฑํ•˜๊ธฐ์—” ๋ฌด๋ฆฌ๊ฐ€ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ, HTML ๋ฌธ์„œ์— Java ์ฝ”๋“œ๋ฅผ ์ž‘

jiholine10.tistory.com

 

https://jiholine10.tistory.com/299

 

MVC Pattern

1. Model - View - Controller Model ๊ฐœ๋ฐœํ•˜๊ณ ์ž ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์—์„œ ์š”๊ตฌ๋˜๋Š” ๊ด€์‹ฌ์‚ฌ์ด์ž ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ƒํ™”, ๋ชจ๋ธ๋งํ•˜์—ฌ ํ‘œํ˜„๋œ ๊ฒฐ๊ณผ ํด๋ž˜์Šค View Model์„ UI Presentation ์— ํ‘œ์‹œํ•˜๋Š” ์—ญํ• ์„ ๋‹ด๋‹นํ•˜๋Š” ํด๋ž˜์Šค Con

jiholine10.tistory.com

 

 

2. ์ด๋ฒˆ ์ฃผ์— ๊ฒช์€ ์‹œํ–‰์ฐฉ์˜ค์™€ ๊ทน๋ณต

 

์ด ๋ฒˆ์ฃผ์— ๊ฒช์€ ์‹œํ–‰์ฐฉ์˜ค๋ผ ํ•œ๋‹ค๋ฉด ๋ฉ˜ํƒˆ ๊ด€๋ฆฌ์ด๋‹ค. ์‚ฌ๋žŒ์ด ์‚ด๋‹ค๋ณด๋ฉด ์ž๊ธฐ๊ฐ€ ํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์— ์˜๋ฌธ์„ ํ’ˆ์„ ๋•Œ๊ฐ€ ์žˆ๊ณ  ๊ฑฐ๊ธฐ์—์„œ ์˜ค๋Š” ๋ถˆ์•ˆ๊ฐ์„ ๋А๋ผ๊ธฐ ๋งˆ๋ จ์ด๋‹ค. ์ด๋Ÿด ๋•Œ ๊ฐ€์žฅ ํ•„์š”ํ•œ ๊ฒƒ์€ ๋‚˜์— ๋Œ€ํ•œ ๋ฏฟ์Œ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚ด ํ•  ์ผ์„ ๋ฌต๋ฌตํžˆ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฌํ•˜์ง€ ๋ชปํ•˜๊ณ  ๋ถˆ์•ˆํ•จ ์†์— ๊ฐ‡ํžŒ๋‹ค๋ฉด ์•„๋ฌด๊ฒƒ๋„ ์ด๋ฃฐ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋น„๋ก, ๋‚ด๊ฐ€ ์—ด์‹ฌํžˆํ•ด์„œ ๊ฐ€์ง„ ๊ฒƒ์ด ์ž‘๋”๋ผ๋„ ๊ทธ ์ž‘์€ ๊ฒƒ์ด๋ผ๋„ ์–ป๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ตœ์„ ์„ ๋‹คํ•ด์•ผํ•˜๋Š” ๊ฒƒ์ด๋‹ค. 

 

๋ฉ˜ํƒˆ ๊ฝ‰ ๋ถ€์—ฌ์žก๊ณ  ๋ช…์ƒ๊ณผ ์„ฑ์ฐฐ์„ ํ†ตํ•ด ๋‚˜๋ฅผ ๋” ๊ฐ•ํ•˜๊ฒŒ ์ผ์œผ์ผœ ์„ธ์šฐ์ž !

 

ํ™”์ดํŒ…!

 

 

3. ์•ž์œผ๋กœ ์–ด๋””์— ์ ์šฉ

 

Database Accessing ๋ฐฉ์‹์„ ๊ณต๋ถ€ํ•˜๋ฉด์„œ JDBC API ๋ถ€ํ„ฐ Data Source Interface์˜ ๊ตฌํ˜„์ฒด Hikari  ๊ทธ๋ฆฌ๊ณ  JPA ๊นŒ์ง€ ์ ‘ํ–ˆ๋‹ค. ์ด๋Š” ์—ญ์‚ฌ์ ์ธ ํ๋ฆ„์„ ์•Œ ์ˆ˜ ์žˆ์„ ๋ฟ๋งŒ์ด ์•„๋‹ˆ๋ผ, ํ–ฅํ›„ ์–ด๋–ค ํšŒ์‚ฌ๋ฅผ ๊ฐ€๋”๋ผ๋„ ๋ ˆ๊ฑฐ์‹œ ํ•œ ์ฝ”๋“œ๊ฐ€ ์žˆ์„ ์ˆ˜๋„ ์žˆ๋Š”๋ฐ, ๊ฑฐ๊ธฐ์— ํ”๋“ค๋ฆฌ์ง€ ์•Š๊ณ  ๋ฒ„ํ‹ธ ์ˆ˜ ์žˆ๋Š” ์žฃ๋Œ€๊ฐ€ ๋˜์—ˆ์„ ๊ฒƒ์ด๋ผ ํ™•์‹ ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ƒํ™ฉ์— ๋งž๊ฒŒ ๊ธฐ์ˆ ์„ ์ ์šฉํ•จ์œผ๋กœ์จ ์ผ์˜ ํšจ์œจ์„ฑ๋„ ์ฆ๋Œ€๋  ๊ฒƒ์ด๋‹ค.

 

Java EE์˜ ์—ฌ๋Ÿฌ ๊ธฐ์ˆ ์ธ Servlet, JSP, ๋“ฑ์„ ๋ฐฐ์šฐ๊ณ  ์ด๋ฅผ ํ†ตํ•ด ์ƒ๊ธด MVC๋ฅผ ๋ฐฐ์› ๋‹ค. ์ด ์—ญ์‹œ Spring์— ๋“ค์–ด๊ฐ€๋ฉด ์‚ฌ์šฉ ๋นˆ๋„๋Š” ์ค„์–ด๋“ค ๊ฒƒ์ด์ง€๋งŒ, ํ–ฅํ›„ ์–ด๋– ํ•œ ํšŒ์‚ฌ๋ฅผ ๊ฐ€๋”๋ผ๋„ ์ฝ”๋“œ ํ•ด์„์— ์žˆ์–ด์„œ ํฐ ๋„์›€์ด ๋  ๊ฒƒ์ž„์€ ๋ถ„๋ช…ํ•˜๋‹ค. ๋˜ํ•œ Spring์„ ์ดํ•ดํ•˜๋Š”๋ฐ์—๋„ ํฌ๊ฒŒ ๋„์›€์ด ๋  ๊ฒƒ์œผ๋กœ ๋ณด์ธ๋‹ค.

 

์ด๋ ‡๊ฒŒ ๋‹น์žฅ ์‰ฌ์šด๊ฒƒ, ํŠธ๋žœ๋“œํ•œ ๊ฒƒ๋งŒ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๊ณ , ๊ณผ๊ฑฐ์— ์ผ๋˜ ๊ฒƒ์„ ๊ฐ™์ด ๊ณต๋ถ€ํ•จ์œผ๋กœ์จ ๊ธฐ์ˆ ์ด ์–ด๋–ป๊ฒŒ ์ด์šฉ์ด ๋˜๋Š”์ง€์— ๋Œ€ํ•ด ์ •ํ™•ํžˆ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋˜ ์‹œ๊ฐ„์ด์—ˆ๋‹ค. ์ฝ”๋“œ ํ•ด์„ ์˜์—ญ ๋˜ํ•œ ๊ฐœ๋ฐœ์ž๋กœ์„œ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์ธ๋ฐ, ์ด๋ฅผ ํ†ตํ•ด ํ•ด์„ ๋Šฅ๋ ฅ์ด ํ•œ์ธต ์ƒ์Šนํ•œ ๊ฒƒ ๊ฐ™๋‹ค!

 

 

4. ํ˜„์žฌ๊นŒ์ง€์˜ ํ•™์Šต ํ‰๊ฐ€ ๋ฐ ๋‹ค์Œ ํ•™์Šต์„ ์œ„ํ•œ ๋‹ค์ง/๋ชฉํ‘œ

 

-์ˆ˜์—…-

์ด์ œ๊ป ํ”„๋ก ํŠธ ๋ฐฑ์—”๋“œ๋ฅผ ํ•ด์˜ค๋ฉด์„œ ๋งŽ์€ ๊ณ ์ถฉ์ด ์žˆ์—ˆ๋‹ค. ์ด์ œ ๋งˆ์ง€๋ง‰ ๊ด€๋ฌธ Spring์ด ๋‚จ์•˜๊ณ , ๊ทธ ๋’ค์— ๋ถ€๊ฐ€์ ์œผ๋กœ ๊ฐ•์˜๊ฐ€ ๋‚จ์•˜๋Š”๋ฐ ๋งˆ์ง€๋ง‰๊นŒ์ง€ ์ตœ์„ ์„ ๋‹คํ•ด์„œ ๋ฌด์‚ฌํžˆ ๋‚ด๊ฒƒ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์—ˆ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค !!

 

-์ฝ”ํ…Œ-

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๊ณต๋ถ€๋„ ๊พธ์ค€ํžˆ ํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ์ด์ œ ์–ด๋ ค์šด ๋ถ€๋ถ„์ธ DFS BFS ์˜์—ญ์— ์ง„์ž…ํ–ˆ๋‹ค. ใ…‹ใ…‹ ๋”์šฑ ์—ด์‹ฌํžˆ ํ•˜๊ณ  ์ฐจ๊ทผ์ฐจ๊ทผ ๊ณต๋ถ€ํ•ด ๋‚˜๊ฐ€์•ผ ๊ฒ ๋‹ค!

 

-์ •์ฒ˜๊ธฐ-

์ •์ฒ˜๊ธฐ ์ง€์›์„ ํ–ˆ๊ณ  2์›” 17์ผ๋ž„ ์‹œํ—˜์„ ๋ณด๊ฒŒ ๋˜๋Š”๋ฐ ์ฐจ์งˆ ์—†์ด ๊ณต๋ถ€๋ฅผ ์ง„ํ–‰ํ•˜๋„๋ก ํ•ด์•ผ๊ฒ ๋‹ค.

 

-ํ”„๋ก ํŠธ ์—”๋“œ ๋ณต์Šต-

ํ˜„์žฌ ์ด๊ฒƒ์ €๊ฒƒ ํ•˜๋‹ค๋ณด๋‹ˆ ์ง„๋„๋ฅผ ๋งŽ์ด ๋ชป ๋นผ๊ณ  ์žˆ๋‹ค. ํ˜„์žฌ ์šฐ์„ ์ˆœ์œ„์—์„œ๋Š” ์ตœ์ƒ์œ„๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋„ˆ๋ฌด ๋ฌด๋ฆฌ๋Š” ํ•˜์ง€๋ง๋˜ ์ตœ์„ ์„ ๋‹คํ•ด์„œ ํ‹ˆํ‹ˆํžˆ ๊ณต๋ถ€๋ฅผ ์ด์–ด๋‚˜๊ฐ€์•ผ๊ฒ ๋‹ค.

 

๋‹ค์Œ ํ•œ ์ฃผ๋„ ํ™”์ดํŒ… ๐Ÿ˜๐Ÿ˜โ˜€๏ธ