๐™น๐šŠ๐šŸ๐šŠ

ํ˜ผ์ž ๋„์ ์—ฌ๋ณด๋Š”... ์ž๋ฐ” ๊ณต๋ถ€ (3)

ํ•ด๋ฒ„๋‹ˆ 2023. 10. 15. 12:24
๋ฐ˜์‘ํ˜•

 

์˜ค๋Š˜๋„ ํ˜ผ์ž ๋„์ ์—ฌ๋ณด๋Š”.. 

 

 

 

Throw vs Throws

 

 

์˜ˆ์™ธ? ์—๋Ÿฌ?

 

์—๋Ÿฌ

์—๋Ÿฌ๋Š” ์‹œ์Šคํ…œ ๋ ˆ๋ฒจ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์•„์ฃผ ์‹ฌ๊ฐํ•œ ์ˆ˜์ค€์˜ ๋ฌธ์ œ์ด๋‹ค.

์˜ˆ๋ฅผ ๋“ค๋ฉด OutOfMemoryError, StackOverflowError, LinkageError ๋“ฑ์ด ์žˆ๋‹ค.

์ด๋Ÿฌํ•œ ์—๋Ÿฌ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๋ฏธ๋ฆฌ ์˜ˆ์ธกํ•˜์ง€ ๋ชปํ•˜๋ฉฐ ๋กœ์ง์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๋‹ค.

 

 

์˜ˆ์™ธ

์ด์— ๋ฐ˜ํ•ด ์˜ˆ์™ธ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ž‘์„ฑํ•œ ๋กœ์ง์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. 

๋ฏธ๋ฆฌ ์˜ˆ์ธกํ•˜์—ฌ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์˜ฌ๋ฐ”๋ฅธ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ํ•ธ๋“ค๋งํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค. 

 

 

 

throw : ์˜ˆ์™ธ๋ฅผ ๊ฐ•์ œ๋กœ ๋ฐœ์ƒ์‹œํ‚จ ํ›„, ์ƒ์œ„ ๋ธ”๋Ÿญ์ด๋‚˜ catch๋ฌธ์œผ๋กœ ์˜ˆ์™ธ๋ฅผ ๋˜์ง„๋‹ค.

๊ฐœ๋ฐœ์ž์˜ ํŒ๋‹จ์— ๋”ฐ๋ฅธ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

throws : ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ƒ์œ„๋ฉ”์„œ๋“œ๋กœ ์˜ˆ์™ธ๋ฅผ ๋˜์ง„๋‹ค.

 

 

https://day0404.tistory.com/47

 

Dev Day

์Šคํƒ€ํŠธ์—…์— ๋„์ „ํ•˜๋Š” ์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž์˜ ๊ฐœ๋ฐœ ์ด์•ผ๊ธฐ

day0404.tistory.com

https://tlatmsrud.tistory.com/49

 

[Java] ์˜ˆ์™ธ์ฒ˜๋ฆฌ, Throw, Throws๋ž€ / ์˜ˆ์™ธ์™€ ์—๋Ÿฌ์˜ ์ฐจ์ด / ์˜ˆ์ œ

1. ๊ฐœ์š” ์Šคํ„ฐ๋””๋กœ File ์—…๋กœ๋“œ, ๋‹ค์šด๋กœ๋“œ ๋กœ์ง์„ ์ž‘์„ฑํ•˜๋˜ ๋„์ค‘, ํŠน์ • ๋ถ€๋ถ„์— ๋นจ๊ฐ„์ค„์ด ๋“ฑ์žฅํ–ˆ๋‹ค. ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋งˆ์šฐ์Šค ๊ฐ€์ ธ๊ฐ€๋ณด๋‹ˆ Exception!. ๋ณ„์ƒ๊ฐ ์—†์ด add thrwos declaration ํด๋ฆญ. ์ƒํ™ฉ์ข…๋ฃŒ. ์ด์ฒ˜๋Ÿผ ์˜ˆ

tlatmsrud.tistory.com

 

 

 

 

 

 


์ž…์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ

 

ํ”„๋กœ๊ทธ๋žจ์€ ์™ธ๋ถ€์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ฑฐ๋‚˜ ์™ธ๋ถ€๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ์ž‘์—…์ด ๋นˆ๋ฒˆํ•˜๊ฒŒ ์ผ์–ด๋‚œ๋‹ค.

์ด๋•Œ ๋ฐ์ดํ„ฐ๋Š” ์–ด๋– ํ•œ ํ†ต๋กœ๋ฅผ ํ†ตํ•ด์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ด๋™๋˜๋Š”๋ฐ, ์ด ํ†ต๋กœ๋ฅผ Stream์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

stream : ์ค„๊ธฐ, ํ๋ฅด๋‹ค

 

ํ‘œ์ค€ ์ž…์ถœ๋ ฅ

System.in → ํ‘œ์ค€์ž…๋ ฅ System.in.read() : ํ‚ค๋ณด๋“œ ์ž…๋ ฅ

System.out → ํ‘œ์ค€์ถœ๋ ฅ System.out.println() : ์ฝ˜์†” ์ถœ๋ ฅ

System.err → ํ‘œ์ค€์—๋Ÿฌ (out๊ณผ ์‚ฌ์šฉ๋ฒ•์€ ๊ฐ™์ง€๋งŒ ์ฝ˜์†”์—์„œ ์ฐํžˆ๋Š” ํฐํŠธ ์ปฌ๋Ÿฌ๊ฐ€ ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ์ถœ๋ ฅ๋œ๋‹ค.)

 

 

 

 

1์ฐจ ์ŠคํŠธ๋ฆผ & 2์ฐจ ์ŠคํŠธ๋ฆผ

1์ฐจ ์ŠคํŠธ๋ฆผ (๊ธฐ๋ณธ ์ŠคํŠธ๋ฆผ) : ๋‹จ๋…์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

2์ฐจ ์ŠคํŠธ๋ฆผ (๋ณด์กฐ ์ŠคํŠธ๋ฆผ) : ๊ผญ ๊ธฐ๋ณธ ์ŠคํŠธ๋ฆผ์— ์—ฐ๊ฒฐํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๊ณ , ๋‹จ๋…์œผ๋กœ ์‚ฌ์šฉ ๋ถˆ๊ฐ€๋Šฅ. 

๊ธฐ๋ณธ ์ŠคํŠธ๋ฆผ์— ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉ

 

๊ธฐ๋ณธ ์ŠคํŠธ๋ฆผ๊ณผ ๋ณด์กฐ ์ŠคํŠธ๋ฆผ์€ ์„œ๋กœ ํƒ€์ž…์ด ๋งž์•„์•ผ ํ•œ๋‹ค.

์ฝ๊ธฐ๋Š” ์ฝ๊ธฐ๋ผ๋ฆฌ, ์“ฐ๊ธฐ๋Š” ์“ฐ๊ธฐ๋ผ๋ฆฌ ์—ฐ๊ฒฐํ•ด์•ผ ํ•˜๊ณ ,

๋ฐ˜์ดํŠธ ๋‹จ์œ„๋ผ๋ฆฌ, ๋ฌธ์ž๋‹จ์œ„๋ผ๋ฆฌ ์—ฐ๊ฒฐํ•ด์•ผ ํ•œ๋‹ค.

 

FileInputStream + BufferedInputStream

FileOutputStream + BufferedOutputStream

FileReader + BufferedReader

FileWriter + BufferedWriter

 

 

 

 

 

 

 

 

 


JDBC

Java DataBases Connectivity (interface)

์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์—ฐ๊ฒฐ๋˜์–ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ธํ„ฐํŽ˜์ด์Šค์ด๋‹ค.

 

 

 

 

 

 

 

 

 


Cookie vs Session

 

์„ธ์…˜ ํŠธ๋ž˜ํ‚น(Session Tracking) : ์›น ํŽ˜์ด์ง€๋‚˜ ์„œ๋ธ”๋ฆฟ๋ผ๋ฆฌ ์ƒํƒœ๋‚˜ ์ •๋ณด๋ฅผ ๊ณต์œ ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์›นํŽ˜์ด์ง€ ์—ฐ๊ฒฐ ๊ธฐ๋Šฅ

 

[http ํ”„๋กœํ† ์ฝœ ํŠน์ง•]

์˜ˆ๋ฅผ ๋“ค์–ด ๋กœ๊ทธ์ธ์„ ํ•˜๋ฉด ๋กœ๊ทธ์ธ ์œ ์ง€๊ฐ€ ์ง€์†ํ•ด์„œ ๋˜์–ด์•ผํ•˜๋Š”๋ฐ, http ํ”„๋กœํ† ์ฝœ ํŠน์ง•์€ ์—ฐ๊ฒฐ ์œ ์ง€๋ฅผ ํ•˜์ง€ ์•Š๋Š”๋‹ค.

→ (์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š๋Š”) stateless ํ”„๋กœํ† ์ฝœ์ด๋‹ค.

๋น„์—ฐ๊ฒฐ์ง€ํ–ฅ, ๋ฌด์ƒํƒœ ํ”„๋กœํ† ์ฝœ์ด๋‹ค.

→ ๊ณผ๊ฑฐ์— ๊ตํ™˜ํ–ˆ์—ˆ๋˜ request์™€ response์˜ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด๋‹ค.

 

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์š”์ฒญํ–ˆ์„ ๋•Œ, ์‘๋‹ต์„ ๋ณด๋‚ธ ํ›„ ์—ฐ๊ฒฐ์„ ๋Š๋Š” ์ฒ˜๋ฆฌ๋ฐฉ์‹์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

 

 

 

 

Cookie์™€ Session์˜ ํฐ ์ฐจ์ด์ 

์ฟ ํ‚ค๋Š” ํด๋ผ์ด์–ธํŠธ(๋กœ์ปฌ)์— ์ €์žฅ๋œ๋‹ค. ์†๋„ ๋น ๋ฆ„. ๋ณด์•ˆ ์ทจ์•ฝ.

์„ธ์…˜์€ ์„œ๋ฒ„์— ์ €์žฅ๋œ๋‹ค. ์†๋„ ๋Š๋ฆผ. ๋ณด์•ˆ ์ข‹์Œ. 

 

 

 

Cookie 

request์™€ response์— ์ฟ ํ‚ค ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ•ด์„œ ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ๋ฅผ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•œ ์‹œ์Šคํ…œ์ด๋‹ค.

ํด๋ผ์ด์–ธํŠธ PC์˜ ์ฟ ํ‚ค ํŒŒ์ผ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜์—ฌ ์›น ํŽ˜์ด์ง€๋“ค๋ผ๋ฆฌ ๊ณต์œ ํ•œ๋‹ค.

ํด๋ผ์ด์–ธํŠธ์˜ PC์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋ฏ€๋กœ ๋ณด์•ˆ์— ์ทจ์•ฝํ•˜๋‹ค. 

๊ทธ๋ž˜์„œ ๋ณด์•ˆ๊ณผ ๋ฌด๊ด€ํ•œ ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•œ๋‹ค.

๋˜, ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๋‹ซ์•„๋„ ๊ณ„์† ์ฟ ํ‚ค ์ •๋ณด๊ฐ€ ์‚ฌ์šฉ์ž์˜ ์ปดํ“จํ„ฐ์— ๋‚จ์•„์žˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ฟ ํ‚ค ํ•˜๋‚˜๋‹น ์ตœ๋Œ€ ํฌ๊ธฐ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ 4KB์ด๋‹ค.

 

1๏ธโƒฃ Persistence ์ฟ ํ‚ค

ํด๋ผ์ด์–ธํŠธ์— ํŒŒ์ผ๋กœ ์ •๋ณด ์ €์žฅ, ์‚ฌ์šฉ์ž๊ฐ€ ๋งŒ๋ฃŒ ์‹œ๊ฐ„ ์ง€์ • ๊ฐ€๋Šฅ

 

2๏ธโƒฃ session ์ฟ ๊ธฐ

๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์„ฑ, ๋ธŒ๋ผ์šฐ์ € ์ข…๋ฃŒ์‹œ ์ž๋™ ์†Œ๋ฉธ 

 

 

 

 

 

Session 

์„œ๋ฒ„์˜ ๋ฉ”๋ชจ๋ฆฌ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜์—ฌ ์›น ํŽ˜์ด์ง€๋“ค์ด ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

ํด๋ผ์ด์–ธํŠธ PC๊ฐ€ ์•„๋‹Œ, ์„œ๋ฒ„์˜ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋œ๋‹ค.

๋กœ๊ทธ์ธ ์ •๋ณด์™€ ๊ฐ™์€ ๋ณด์•ˆ์ด ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋Š” session์„ ์ด์šฉํ•œ๋‹ค.

 

๊ฐ ํด๋ผ์ด์–ธํŠธ์˜ ๊ณ ์œ ์„ธ์…˜ID๋ฅผ ๋ถ€์—ฌํ•˜๊ณ , ํด๋ผ์ด์–ธํŠธ๋ฅผ ๊ตฌ๋ถ„ํ•˜์—ฌ ๊ฐ ํด๋ผ์ด์–ธํŠธ ์š”๊ตฌ์— ๋งž๋Š” ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

 

 

 

 

์Šคํ”„๋ง ์‚ฌ์šฉ์‹œ์˜ Session์— ๋Œ€ํ•˜์—ฌ

์„ธ์…˜์„ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด์„œ Java์˜ interface์ธ HttpSession ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

https://kimfk567.tistory.com/51

 

[์Šคํ”„๋ง] Session๊ณผ Cookie , HttpSession

session์ด๋ž€? ์„ธ์…˜๊ณผ ์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” HTTPํ”„๋กœํ† ์ฝœ์˜ ํŠน์ง•์ด์ž ์•ฝ์ ์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋‹ค. HTTPํ”„๋กœํ† ์ฝœ์€ ๋น„์—ฐ๊ฒฐ์ง€ํ–ฅ, ๋ฌด์ƒํƒœ ํ”„๋กœํ† ์ฝœ์ด๋‹ค. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์š”์ฒญํ–ˆ์„๋•Œ ์‘๋‹ต์„ ๋ณด๋‚ธ

kimfk567.tistory.com

 

 

 

 

 

 

 


์ง๋ ฌํ™”(Serialize)

๊ฐ์ฒด๋ฅผ ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

์ž๋ฐ” ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ฐ์ฒด ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์™ธ๋ถ€์˜ ์ž๋ฐ” ์‹œ์Šคํ…œ์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฐ”์ดํŠธํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด๋‹ค. 

์‹œ๋ฆฌ์–ผํ™” (serialization) : ๊ฐ์ฒด๋ฅผ ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •

 

 

- ์ž๋ฐ” ์‹œ์Šคํ…œ ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉ๋˜๋Š” Object ๋˜๋Š” Data๋ฅผ ์™ธ๋ถ€์˜ ์ž๋ฐ” ์‹œ์Šคํ…œ์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก byte ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€ํ™˜ํ•˜๋Š” ๊ธฐ์ˆ 

- JVM์˜ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์ฃผ๋˜์–ด์žˆ๋Š” ๊ฐ์ฒด ๋ฐ์ดํ„ฐ๋ฅผ byteํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ธฐ์ˆ 

 

 

โ“ ๊ทผ๋ฐ ์™œ ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š”๊ฑฐ์ง€ โ“

- ๋ฐ์ดํ„ฐ ์ „์†ก

๊ฐ์ฒด๋ฅผ (๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด) ์ „์†กํ•˜๊ฑฐ๋‚˜ ํŒŒ์ผ์— ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ฐ์ฒด๋ฅผ ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ์œผ๋กœ ๋ณ€ํ™˜ํ•ด์•ผํ•œ๋‹ค.

์™œ๋ƒํ•˜๋ฉด, ๋„คํŠธ์›Œํฌ๋‚˜ ํŒŒ์ผ ์‹œ์Šคํ…œ์€ ์ฃผ๋กœ ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

- ์˜์†์„ฑ

๊ฐ์ฒด๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•˜๊ฑฐ๋‚˜ ํŒŒ์ผ์— ์˜์†์ ์œผ๋กœ ์ €์žฅํ•  ๋•Œ ๊ฐ์ฒด๋ฅผ ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ์œผ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋‚˜์ค‘์— ๊ฐ์ฒด๋ฅผ ๋‹ค์‹œ ๋ณต์›ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

 

 

 

 

 

 

 

๋ฐ˜์‘ํ˜•