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

๐ŸŒฑ CS Study13

๋กœ๊ทธ ๋ ˆ๋ฒจ 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. ์ฝœ๋ฐฑ์ง€์˜ฅ์—์„œ ๋ฒ—์–ด๋‚  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ• ์•Œ์•„๋ณด๊ธฐ ์ฝœ๋ฐฑํ•จ์ˆ˜๋ž€? ์ฝœ๋ฐฑํ•จ์ˆ˜๋ž€ ๊ฐ„๋‹จํ•˜๊ฒŒ ์–˜๊ธฐํ•˜์ž๋ฉด ์ฝ”๋“œ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ์‹คํ–‰๋˜๋Š” ๋ถ€๋ถ„์ด๋‹ค ๋น„๋™๊ธฐ๋กœ ์ฒ˜๋ฆฌ๋˜๋Š” ํ”„๋กœ์„ธ์Šค๋“ค์€ ์ฝœ๋ฐฑํ•จ์ˆ˜๋ฅผ ํ•˜๋‚˜์”ฉ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์„œ Web API์—์„œ ์‹คํ–‰๋œ ๋น„๋™๊ธฐ ํ•จ์ˆ˜๋“ค์ด ์–ธ์ œ ๋๋‚ฌ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๋‹ค Web API์—์„œ ๋๋‚œ ๋น„๋™๊ธฐ ํ•จ์ˆ˜๋“ค์˜ ์ฝœ๋ฐฑํ•จ์ˆ˜๋“ค์ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์—์„œ ์‹คํ–‰๋˜๋„๋ก ์ด๋ฒคํŠธ ๋ฃจํ”„(event loop)๊ฐ€ ํ•˜๋‚˜์”ฉ ์ฒ˜๋ฆฌํ•œ๋‹ค ์ฝœ๋ฐฑ์ง€์˜ฅ์ด๋ž€? ์ฝœ๋ฐฑํ•จ์ˆ˜ ์•ˆ์— ์ฝœ๋ฐฑํ•จ์ˆ˜ ์•ˆ์— ์ฝœ๋ฐฑํ•จ์ˆ˜ ์•ˆ์— ์ฝœ๋ฐฑํ•จ์ˆ˜ ์•ˆ์— … ์—ฌ๋Ÿฌ ์ฝœ๋ฐฑํ•จ์ˆ˜๋“ค์ด ๊ด„ํ˜ธ ์•ˆ์— ๊ด„ํ˜ธ ์•ˆ์— ๊ด„ํ˜ธ ์•ˆ์— ๊ณ„์† ๋“ค์–ด๊ฐ€ ์žˆ๋Š” ์ฝ”๋“œ ํ˜•ํƒœ๋ฅผ ์ฝœ๋ฐฑ์ง€์˜ฅ์ด๋ผ๊ณ  ํ•œ๋‹ค ์ด๋Ÿฐ ๊ฒฝ์šฐ ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ๋„ ๋–จ์–ด์ง€๊ณ  ์‹ค์ˆ˜ ์œ„ํ—˜๋„ ์ปค์ง„๋‹ค ์ฝœ๋ฐฑ์ง€์˜ฅ ๋Œ€์ฒ˜ ๋ฐฉ๋ฒ• Promise (ES6 ๋ฒ„์ „๋ถ€ํ„ฐ).. 2023. 2. 16.
๋น„๋™๊ธฐ์™€ ๋™๊ธฐ Goal 1. ๋น„๋™๊ธฐ์™€ ๋™๊ธฐ ์ฝ”๋“œ์˜ ์ฐจ์ด ์ดํ•ดํ•˜๊ธฐ ๋น„๋™๊ธฐ vs. ๋™๊ธฐ ์ฐจ์ด์  ๋น„๋™๊ธฐ ๋™๊ธฐ ์ •์˜ ์š”์ฒญํ•œ ํ›„์— ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ๋™์‹œ์— ๋‹ค๋ฅธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ์‹ ์‹œ๊ฐ„๊ณผ ๊ด€๊ณ„์—†์ด ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์ด ์˜ฌ ๋•Œ๊นŒ์ง€ ํ”„๋กœ๊ทธ๋žจ ์ˆ˜ํ–‰์„ ๋ฉˆ์ถ”๊ณ  ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋ฐฉ์‹ ์šฉ๋„ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ํ”ํžˆ ์‚ฌ์šฉ ์ˆœ์ฐจ์ ์œผ๋กœ ์ง„ํ–‰๋˜์–ด์•ผ ํ•˜๋Š” ์ž‘์—… ์ฒ˜๋ฆฌ ์Šค๋ ˆ๋“œ ์Šค๋ ˆ๋“œ๋‚˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ๊ฐ€ ํ•œ๋ฒˆ์— ๋Œ๊ณ  ์žˆ์Œ ํ•œ๋ฒˆ์— ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋งŒ ์ง„ํ–‰ ์—”์ง„ ๋ธŒ๋ผ์šฐ์ €๋‚˜ Node.js์—์„œ ์šด์˜ํ•˜๋Š” Web API์—์„œ ์‹คํ–‰ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์œผ๋กœ ์‹คํ–‰ ์ฝ”๋“œ ์ž‘์„ฑ ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ•œ๋ฒˆ์— ๋Œ์•„๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— ๋กœ์ง์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Œ ์ˆœ์ฐจ์ ์œผ๋กœ ์ง„ํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ดํ•ด๊ฐ€ ์‰ฝ๊ณ  ์ž‘์„ฑํ•˜๊ธฐ ์‰ฌ์›€ 2023. 2. 15.
์˜์กด์„ฑ, ์˜์กด๊ด€๊ณ„ ์ฃผ์ž… 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.
ํ”„๋กœ์„ธ์Šค(Process) vs. ์Šค๋ ˆ๋“œ (Thread) Goal 1. ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ์˜ ์ฐจ์ด์  ์„ค๋ช…ํ•˜๊ธฐ 2. ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์Šค ๋Œ€์‹  ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  ์ดํ•ดํ•˜๊ธฐ Q. ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ์˜ ์ฐจ์ด๋Š” ๋ฌด์—‡์ธ๊ฐ€? A. ํ”„๋กœ์„ธ์Šค๋ž€ ์šด์˜์ฒด์ œ(OS)๋กœ๋ถ€ํ„ฐ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น ๋ฐ›์•„ ์‹คํ–‰ ๋˜๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ์ž‘์—… ๋‹จ์œ„๋ฅผ ์–˜๊ธฐํ•˜๊ณ , ์Šค๋ ˆ๋“œ๋Š” ์ด๋Ÿฌํ•œ ํ”„๋กœ์„ธ์Šค์˜ ์ž์›์„ ์ชผ๊ฐœ์„œ ์‚ฌ์šฉํ•˜๋Š” ์‹คํ–‰ ๋‹จ์œ„์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค๋Š” 1๊ฐœ ์ด์ƒ์˜ ์Šค๋ ˆ๋“œ๋กœ ์‹คํ–‰๋˜๊ณ , ์ž์‹ ๋งŒ์˜ ๊ณ ์œ ํ•œ ์ฃผ์†Œ๊ณต๊ฐ„์„ ํ• ๋‹น ๋ฐ›์Šต๋‹ˆ๋‹ค. ์Šค๋ ˆ๋“œ๋Š” ์ด ์ค‘์— stack๋งŒ ๋”ฐ๋กœ ํ• ๋‹น ๋ฐ›๊ณ  ๋‚˜๋จธ์ง€ ์˜์—ญ์€ ์Šค๋ ˆ๋“œ๋ผ๋ฆฌ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ์  ํ”„๋กœ์„ธ์Šค ์Šค๋ ˆ๋“œ ์ •์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น ๋ฐ›์•„ ์‹คํ–‰๋˜๋Š” ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋žจ์˜ ์ž‘์—… ๋‹จ์œ„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ• ๋‹น ๋ฐ›์€ ์ž์›์„ ์ด์šฉํ•˜๋Š” ์‹คํ–‰ ๋‹จ์œ„ (์ฆ‰, 1๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๋Š” 1๊ฐœ ์ด์ƒ์˜ ์Šค๋ ˆ๋“œ๋ฅผ ๊ฐ€์ง) ์‹œ์Šคํ…œ ์ž์› OS๋กœ๋ถ€ํ„ฐ ๊ณ ์œ ํ•œ.. 2023. 2. 7.
๋‹จ๋ฝ ํ‰๊ฐ€ (short-circuit evaluation) ๋‹จ๋ฝ ํ‰๊ฐ€ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž ์ค‘ and์™€ or์—๋Š” ๋‹จ๋ฝ ํ‰๊ฐ€๋ผ๋Š” ๊ฒƒ์ด ์ž‘์šฉํ•œ๋‹ค. ์ด ์›๋ฆฌ๋Š” ์ƒ๊ฐ๋ณด๋‹ค ๋งŽ์ด ๋ณผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์•Œ์•„๋‘๋ฉด ์—๋Ÿฌ ์žก๋Š”๋ฐ ์œ ์šฉํ•˜๋‹ค. ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…ํ•˜์ž๋ฉด ๋‹จ๋ฝ ํ‰๊ฐ€๋Š” ์ฒซ๋ฒˆ์งธ ๊ฐ’์—์„œ ์ด๋ฏธ ๋ฐ˜ํ™˜ ๊ฐ’์ด ํ™•์‹คํ•ด์กŒ๋‹ค๋ฉด ๋‘๋ฒˆ์งธ ๊ฐ’์€ ํ™•์ธํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด๋‹ค. A Operator A and/or B Output Notes True and True and 'rabbit' rabbit ์ฒซ๋ฒˆ์งธ ๊ฐ’์ด True๋ฉด ๋‘๋ฒˆ์งธ ๊ฐ’์— ๋‹จ๋ฝ ํ‰๊ฐ€๊ฐ€ ์ ์šฉ ๋ผ ๋‘๋ฒˆ์งธ ๊ฐ’์„ ๋ฌด์กฐ๊ฑด ๋ฐ˜ํ™˜ํ•œ๋‹ค. False False and 'rabbit' False and์—์„œ๋Š” ์–‘์ชฝ ๋ชจ๋‘ True๊ฐ€ ๋˜์–ด์•ผ True๋ฅผ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ฒซ๋ฒˆ์งธ ๊ฐ’์ด False๊ฐ€ ๋‚˜์˜ค๋ฉด ๋‹จ๋ฝ ํ‰๊ฐ€๊ฐ€ ์ ์šฉ ๋ผ ์ฒซ๋ฒˆ์งธ ๊ฐ’์ธ False๊ฐ€ ๋ฐ˜ํ™˜๋œ๋‹ค. True or Tr.. 2022. 7. 26.