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

๐ŸŒฑ CS Study/์ž๋ฐ” \ ์Šคํ”„๋ง5

๋กœ๊ทธ ๋ ˆ๋ฒจ Goal 1. ๋กœ๊ทธ ๋ ˆ๋ฒจ ์„ค๋ช…ํ•˜๊ธฐ 2. ๋กœ๊ทธ ๋ ˆ๋ฒจ ์ˆœ์„œ์™€ ์ •์˜ ์•Œ์•„๋ณด๊ธฐ ๋กœ๊ทธ ๋ ˆ๋ฒจ (Log level)์ด๋ž€? ๊ฐœ๋ฐœ์ž๋“ค์ด ๊ฐœ๋ฐœ ๋‹จ๊ณ„์—์„œ ์ฝ”๋“œ ์‹คํ–‰์‹œ ์–ด๋””์— ์–ด๋–ค ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ก(๋กœ๊ทธ)์„ ์–ผ๋งˆ๋‚˜ ์ž์„ธํ•˜๊ฒŒ ํ™•์ธํ•˜๊ณ  ์‹ถ์€์ง€ ๋ฏธ๋ฆฌ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๊ฒƒ์ด Logger ํด๋ž˜์Šค์—์„œ ์„ค์ •ํ•˜๋Š” ๋กœ๊ทธ ๋ ˆ๋ฒจ์ด๋‹ค. ์ด๋ฏธ Logger ํด๋ž˜์Šค์—์„œ ์ •ํ•ด์ง„ ๋กœ๊ทธ ๋ ˆ๋ฒจ์„ ์‚ฌ์šฉํ•ด๋„ ๋˜๊ณ  ๊ฐœ๋ฐœ์ž๊ฐ€ ์›ํ•˜๋Š” ๋ ˆ๋ฒจ์„ ์ง์ ‘ ์ •์˜ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ๋กœ๊ทธ ๋ ˆ๋ฒจ ์ˆœ์„œ์™€ ์ •์˜ ๋กœ๊ทธ ๋ ˆ๋ฒจ์€ ์‹ฌ๊ฐํ•œ ์ •๋„์— ๋”ฐ๋ผ ๋ ˆ๋ฒจ ๋‹จ์œ„๋กœ ๋‚˜๋‰˜์–ด์ ธ ์žˆ๋‹ค. ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF ๊ธฐ๋ณธ ๋ ˆ๋ฒจ์€ DEBUG์ด๋‹ค. ๋ ˆ๋ฒจ Log4j Logback ์ •์˜ ALL โž– โž– ๋ชจ๋“  ๋ ˆ๋ฒจ์˜ ๋กœ๊ทธ๊ฐ€ ํ•„.. 2023. 3. 5.
Spring Security๋ž€? Goal 1. Spring Security๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•Œ์•„๋ณด๊ธฐ 2. ์ธ์ฆ๊ณผ ์ธ๊ฐ€์˜ ์ฐจ์ด ์‚ดํŽด๋ณด๊ธฐ Spring Security๋ž€? ์ธ์ฆ(authentication)๊ณผ ์ธ๊ฐ€(authorization) ์ œ๊ณต ๋ฐ ๊ถŒํ•œ ์ œ์–ด์— ํ•„์š”ํ•œ ํ•„ํ„ฐ์˜ ๋ชจ์Œ์ด๋ฉฐ ํšŒ์› ๊ด€๋ฆฌ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„  ํ•„์ˆ˜์ด๋‹ค ์™ธ๋ถ€ ๊ณต๊ฒฉ์œผ๋กœ๋ถ€ํ„ฐ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ณดํ˜ธ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์Šคํ”„๋ง์˜ ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค ์„œ๋ธ”๋ฆฟ ํ•„ํ„ฐ ์ฒด์ธ์„ ๊ตฌ์„ฑํ•˜๋Š”๋ฐ ํ•„ํ„ฐ ์ฒด์ธ์ด๋ž€ ์—ฌ๋Ÿฌ๊ฐœ์˜ ํ•„ํ„ฐ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค ์ธ์ฆ vs. ์ธ๊ฐ€ ์šฉ์–ด ๋œป ๊ด€๋ จ ์ธํ„ฐํŽ˜์ด์Šค/ํด๋ž˜์Šค ์ธ์ฆ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ์ •๋ณด์™€ DB์— ์žˆ๋Š” ์ •๋ณด๋ฅผ ๋น„๊ตํ•ด์„œ ์‹ ์›์„ ํ™•์ธํ•˜๋Š” ๊ณผ์ • AuthenticationManager (์ด๊ฑธ ์„ค์ •ํ•ด์ค˜์•ผํ•จ), Authentication ์ธ๊ฐ€ ์ธ์ฆ์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ€์ง„ ๊ถŒํ•œ์ด ํ™•์ธ๋œ ํ›„ ํ•ด๋‹น ์‚ฌ์šฉ.. 2023. 3. 1.
์˜ค๋ฒ„๋กœ๋”ฉ๊ณผ ์˜ค๋ฒ„๋ผ์ด๋”ฉ์˜ ์ฐจ์ด Goal 1. ์˜ค๋ฒ„๋กœ๋”ฉ๊ณผ ์˜ค๋ฒ„๋ผ์ด๋”ฉ์˜ ์ฐจ์ด์  ์„ค๋ช…ํ•˜๊ธฐ ์˜ค๋ฒ„๋กœ๋”ฉ vs. ์˜ค๋ฒ„๋ผ์ด๋”ฉ ์ฐจ์ด์  ์˜ค๋ฒ„๋กœ๋”ฉ ์˜ค๋ฒ„๋ผ์ด๋”ฉ ์ •์˜ ํ•œ ํด๋ž˜์Šค ๋‚ด์— ๊ฐ™์€ ์ด๋ฆ„์„ ๊ฐ€์ง„ ๋ฉ”์„œ๋“œ๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ ์ •์˜ํ•˜๋Š” ๊ฒƒ ์ƒ์† ๋ฐ›์€ ๋ฉ”์„œ๋“œ๋ฅผ ์žฌ์ •์˜ํ•˜๋Š” ๊ฒƒ ๋ฉ”์„œ๋“œ ์ด๋ฆ„ ๊ฐ™์Œ ๊ฐ™์Œ ๋ฉ”์„œ๋“œ ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐœ์ˆ˜, ํƒ€์ž… ๋‹ค๋ฆ„ ๊ฐ™์Œ ์‹คํ–‰ ์ฝ”๋“œ ๋‹ค๋ฆ„ (๋งค๊ฐœ๋ณ€์ˆ˜๋ž‘ ํƒ€์ž…์ด ๋‹ฌ๋ผ์ง€๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅผ ์ˆ˜ ๋ฐ–์— ์—†์Œ) ๋‹ค๋ฆ„ ๋ฐ˜ํ™˜ ํƒ€์ž… ์ƒ๊ด€ ์—†์Œ ๊ฐ™์Œ ์–ด๋…ธํ…Œ์ด์…˜ ์—†์Œ @Override 2023. 2. 19.
์˜์กด์„ฑ, ์˜์กด๊ด€๊ณ„ ์ฃผ์ž… Goal 1. ์˜์กด์„ฑ / ์˜์กด๊ด€๊ณ„์™€ ์ฃผ์ž…์‹ ๋ฐฉ๋ฒ• ์•Œ์•„๋ณด๊ธฐ 2. ์ƒ์„ฑ์ž ์ฃผ์ž…์„ ๊ถŒ์žฅํ•˜๋Š” ์ด์œ  ์„ค๋ช…ํ•˜๊ธฐ ์˜์กด์„ฑ / ์˜์กด๊ด€๊ณ„๋ž€? A๊ฐ€ B๋ฅผ ์˜์กดํ•œ๋‹ค = B๊ฐ€ ๋ณ€ํ•˜๋ฉด A์—๊ฒŒ๋„ ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค ์ž๋ฐ”์—์„œ ํด๋ž˜์Šค ๊ฐ„ ์˜์กด๊ด€๊ณ„๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์€ 3๊ฐ€์ง€๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๋ฐฉ๋ฒ• ์„ค๋ช… ๊ถŒ์žฅ @Autowired ํ•„๋“œ ์ฃผ์ž…์‹ ๋ฐฉ๋ฒ• ์›๋ž˜ ์‚ฌ์šฉํ–ˆ์—ˆ๋Š”๋ฐ ์ด์ œ๋Š” IntelliJ์—์„œ ์ƒ์„ฑ์ž ์ฃผ์ž…์‹ ๋ฐฉ๋ฒ• ์“ฐ๋ผ๊ณ  ๊ฒฝ๊ณ  ๋œธ @Setter ์ˆ˜์ •์ž ์ฃผ์ž…์‹ ๋ฐฉ๋ฒ• Public ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด ์•„๋ฌด๋‚˜ ์ˆ˜์ • ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณด์•ˆ์„ฑ ๋ฌธ์ œ๊ฐ€ ์žˆ @RequiredArgsConstructor ์ƒ์„ฑ์ž ์ฃผ์ž…์‹ ๋ฐฉ๋ฒ• ***๊ฐ€์žฅ ๊ถŒ์žฅ ํ•˜๋Š” ๋ฐฉ๋ฒ•*** 1. ํ•„๋“œ ์ฃผ์ž…์‹ ๋ฐฉ๋ฒ• new ํ‚ค์›Œ๋“œ ์จ์„œ ์˜์กดํ•˜๊ฒŒ ๋˜๋ฉด Driver๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ์ด๋ฏธ ์–ด๋–ค ์ฐจ๋ฅผ ๊ฐ€์ง€๋Š”์ง€ ์ •ํ•ด์ ธ ์žˆ๊ธฐ ๋•Œ.. 2023. 2. 11.
Java, JIT Compiler, JVM Goal 1. ์ž๋ฐ”์˜ ์ปดํŒŒ์ผ ๊ณผ์ • ์ดํ•ดํ•˜๊ธฐ 2. JVM์˜ ์—ญํ•  ์„ค๋ช…ํ•˜๊ธฐ Q. ์ž๋ฐ” ์†Œ์Šค์ฝ”๋“œ๊ฐ€ ์ปดํŒŒ์ผ ๋˜๋Š” ๊ณผ์ •์„ ์„ค๋ช…ํ•ด ๋ณด์‹œ์˜ค. A. ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž๋ฐ” ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค (*.java) ์ž๋ฐ” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์†Œ์Šค์ฝ”๋“œ ํŒŒ์ผ์„ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋กœ ์ปดํŒŒ์ผ ํ•œ๋‹ค (*.class) ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ JVM (Java Virtual Machine)์˜ ํด๋ž˜์Šค ๋กœ๋”์— ์ „๋‹ฌํ•œ๋‹ค ํด๋ž˜์Šค ๋กœ๋”๋Š” ๋™์ ๋กœ๋”ฉ์„ ํ†ตํ•ด ํ•„์š”ํ•œ ํด๋ž˜์Šค๋“ค์„ ๋กœ๋”ฉ ๋ฐ ๋งํฌํ•˜์—ฌ JVM ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฐ๋‹ค ์‹คํ–‰ ์—”์ง„(์ธํ„ฐํ”„๋ฆฌํ„ฐ ๋˜๋Š” JIT ์ปดํŒŒ์ผ๋Ÿฌ)์€ JVM ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์˜จ ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋“ค์„ ๋ช…๋ น์–ด ๋‹จ์œ„๋กœ ํ•˜๋‚˜์”ฉ ๊ฐ€์ ธ์™€ ์‹คํ–‰ํ•œ๋‹ค ๐Ÿ“ ๋ฐ”์ดํŠธ์ฝ”๋“œ : ๊ฐ ๋ช…๋ น์–ด๋Š” 1๋ฐ”์ดํŠธ ํฌ๊ธฐ์˜ Opcode์™€ ์ถ”๊ฐ€ ํ”ผ์—ฐ์‚ฐ์ž๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š” ํŒŒ์ผ (์ปดํ“จํ„ฐ๊ฐ€ ์ฝ์„ ์ˆ˜ ์—†์Œ) ๐Ÿ“ ์ธํ„ฐํ”„๋ฆฌํ„ฐ : ๋ฐ”์ดํŠธ ์ฝ”๋“œ .. 2023. 2. 8.