๋ฐฑ์—”๋“œ(Back-End) ๊ฐœ๋ฐœ/Java
์Šคํƒœํ‹ฑ (static) ์ด๋ž€?
2025.01.19
static : ์ •์ , ๊ณ ์ •๋œ ์ด๋ž€ ์˜๋ฏธ์ž๋ฐ”์—์„œ์˜ static ํ‚ค์›Œ๋“œ๋ž€? ํด๋ž˜์Šค, ์ •์  ๋ฉค๋ฒ„ => static ๋ณ€์ˆ˜, static ๋ฉ”์„œ๋“œ Static์˜ ํŠน์ง•- ๋ฉ”๋ชจ๋ฆฌ์— ๊ณ ์ •์ ์œผ๋กœ ํ• ๋‹น- ๊ฐ์ฒด ์ƒ์„ฑ ์—†์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ - static ๋ฉ”์„œ๋“œ ๋‚ด์—์„œ๋Š” ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ ์‚ฌ์šฉ ๋ถˆ๊ฐ€- ํ•œ๋ฒˆ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€๋ฉด ๋ฉ”๋ชจ๋ฆฌ์˜ static ์˜์—ญ์— ์ ์žฌ๋˜๊ณ , ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋  ๋•Œ ํ•ด์ œ๋จ => GC๊ฐ€ ํ•„ํ„ฐ๋ง ํ•˜์ง€ ๋ชปํ•จ public class Ex { public void test() { System.out.println("์ถœ๋ ฅ๋ ๊นŒ?"); } public static void main() { // test(); // ๋ฉ”์„ธ์ง€ ์ถœ๋ ฅ๋˜์ง€ ์•Š๊ณ , ์ปดํŒŒ์ผ ์—๋Ÿฌ ๋ฐœ์ƒ! }}  => ์ปดํŒŒ์ผ ์—๋Ÿฌ ๋ฐœ์ƒ ์ด์œ ..
๋ฐฑ์—”๋“œ(Back-End) ๊ฐœ๋ฐœ/Java
๊ธฐ๋ณธํ˜• ๋ณ€์ˆ˜ vs ์ฐธ์กฐํ˜• ๋ณ€์ˆ˜
2025.01.19
๋ณ€์ˆ˜๋ž€?: ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ํ• ๋‹น๋ฐ›์€ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„๋ฐ์ดํ„ฐํƒ€์ž…(์ž๋ฃŒํ˜•) ์ด๋ž€?: ์ ์žฌํ•  ๋ฐ์ดํ„ฐ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ €์žฅ๋˜๊ณ , ํ”„๋กœ๊ทธ๋žจ์—์„œ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌ๋˜์–ด์•ผ ํ•˜๋Š”์ง€ ๋ช…์‹œ์ ์œผ๋กœ ์•Œ๋ ค์ฃผ๋Š” ํ‚ค์›Œ๋“œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ ํฌ๊ฒŒ ๊ธฐ๋ณธํ˜• ํƒ€์ž… / ์ฐธ์กฐํ˜• ํƒ€์ž…์œผ๋กœ ๊ตฌ๋ถ„๋จ! ๊ธฐ๋ณธ ์ž๋ฃŒํ˜• 8๊ฐ€์ง€ 1 (byte)248์ •์ˆ˜ํ˜•byteshortintlong์‹ค์ˆ˜ํ˜•  floatdouble๋ฌธ์žํ˜• char  ๋…ผ๋ฆฌํ˜•boolean    ๊ธฐ๋ณธ ์ž๋ฃŒํ˜• ํŠน์ง•- null ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์—†๋‹ค. (๊ธฐ๋ณธ๊ฐ’์ด ์ •ํ•ด์ ธ ์žˆ์Œ)- ๋ณ€์ˆ˜ ์„ ์–ธ๊ณผ ๋™์‹œ์— ๋ฉ”๋ชจ๋ฆฌ ์ƒ์„ฑ- ๋ชจ๋“  ๊ฐ’ ํƒ€์ž…์€ ๋ฉ”๋ชจ๋ฆฌ์˜ ์Šคํƒ(Stack)์— ์ €์žฅ๋จ์ฐธ์กฐ ์ž๋ฃŒํ˜•๋ฐฐ์—ด ํƒ€์ž… / ์—ด๊ฑฐ ํƒ€์ž… / ํด๋ž˜์Šค / ์ธํ„ฐํŽ˜์ด์Šค ์ฐธ์กฐ ์ž๋ฃŒํ˜• ํŠน์ง•- ๊ธฐ๋ณธํ˜•๊ณผ ๋‹ฌ๋ฆฌ ์‹ค์ œ ๊ฐ’์ด ์ €์žฅ๋˜์ง€ ์•Š๊ณ , ์ž๋ฃŒ๊ฐ€ ์ €์žฅ๋œ ๊ณต๊ฐ„์˜ '์ฃผ์†Œ'๋ฅผ ์ €์žฅ..
๋ฐฑ์—”๋“œ(Back-End) ๊ฐœ๋ฐœ/Java
JAVA๋ž€? ์ž๋ฐ”์˜ ๊ตฌ๋™ ์›๋ฆฌ (JVM์˜ ํŠน์ง•)
2025.01.19
์ž๋ฐ”๋Š” ๊ฐ์ฒด ์ง€ํ–ฅ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด !! ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์˜ ๊ตฌ๋™์›๋ฆฌ 1. ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค (.java ํ™•์žฅ์ž์˜ ์†Œ์ŠคํŒŒ์ผ)2. ์ปดํŒŒ์ผ๋Ÿฌ(java.exe)๊ฐ€ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค. (.class ํ™•์žฅ์ž์˜ ํด๋ž˜์Šค ํŒŒ์ผ)3. ๋Ÿฐ์ฒ˜(java.exe)๋กœ ์ž๋ฐ” ๊ฐ€์ƒ๋จธ์‹ (JVM)์„ ๊ตฌ๋™์‹œํ‚จ๋‹ค.4. ์ž๋ฐ” ๊ฐ€์ƒ๋จธ์‹ (JVM)์ด ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ํ•ด์„ํ•˜๋ฉฐ ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋œ๋‹ค.( * bytecode๋Š” ์ž๋ฐ” ๊ฐ€์ƒ ๋จธ์‹ ์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ์–ธ์–ด๋กœ ๋ณ€ํ™˜๋œ ์ฝ”๋“œ. JVM๋งŒ ์„ค์น˜ ๋˜์–ด ์žˆ์œผ๋ฉด bytecode๋Š” ์–ด๋–ค ์šด์˜์ฒด์ œ์—์„œ๋ผ๋„ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋‹ค. )   ์ž๋ฐ” ๊ฐ€์ƒ ๋จธ์‹ (JVM)  * ๊ตฌ์„ฑ ์š”์†Œ 1. ํด๋ž˜์Šค ๋กœ๋”(Class Loader) : ํ•„์š”ํ•œ ํด๋ž˜์Šค ํŒŒ์ผ์„ ์ฐพ๊ณ  ๋™์ ์œผ๋กœ ๋กœ๋“œํ•˜์—ฌ ์‹คํ–‰ ์‹œ์— ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. ๋กœ๋“œ๋œ ..
๋ฐฑ์—”๋“œ(Back-End) ๊ฐœ๋ฐœ/Java
์ฟ ํ‚ค(Cookie) vs ์„ธ์…˜(Session)
2025.01.19
์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ†ต์‹ ์„ ํ•  ๋•Œ ์š”์ฒญ(Request)/์‘๋‹ต(Response)์„ ์ฃผ๊ณ  ๋ฐ›๋Š”๋‹ค.์ด ๋•Œ ํ†ต์‹ ์ด ์—ฐ์†์ ์œผ๋กœ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š๊ณ  ํ•œ ๋ฒˆ ํ†ต์‹ ์ด ๋˜๋ฉด ๋Š์–ด์ง„๋‹ค.๋”ฐ๋ผ์„œ, ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ˆ„๊ตฌ์ธ์ง€ ๊ณ„์† ์ธ์ฆ์„ ํ•ด์ค˜์•ผํ•œ๋‹ค.์ด๋Ÿฌํ•œ ๋ฒˆ๊ฑฐ๋กœ์›€์„ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ด '์ฟ ํ‚ค์™€ ์„ธ์…˜'์ด๋‹ค. ์ฟ ํ‚ค์™€ ์„ธ์…˜์˜ ์ฐจ์ด์ ์€ ํฌ๊ฒŒ ์ƒํƒœ ์ •๋ณด์˜ ์ €์žฅ ์œ„์น˜ ์ด๋‹ค.์ฟ ํ‚ค๋Š” 'ํด๋ผ์ด์–ธํŠธ(=๋กœ์ปฌPC)'์— ์ €์žฅํ•˜๊ณ , ์„ธ์…˜์€ '์„œ๋ฒ„'์— ์ €์žฅํ•œ๋‹ค.  ์ฟ ํ‚ค(Cookie)์„ธ์…˜(Session)์ €์žฅ์œ„์น˜ํด๋ผ์ด์–ธํŠธ(=์ ‘์†์ž PC)์›น ์„œ๋ฒ„ (ex. ํ†ฐ์บฃ HttpSession)๋งŒ๋ฃŒ์‹œ์ ์ฟ ํ‚ค ์ €์žฅ์‹œ ์„ค์ •(๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ข…๋ฃŒ๋˜์–ด๋„, ๋งŒ๋ฃŒ์‹œ์ ์ด ์ง€๋‚˜์ง€ ์•Š์œผ๋ฉด ์ž๋™ ์‚ญ์ œ ๋˜์ง€ ์•Š์Œ)๋ธŒ๋ผ์šฐ์ € ์ข…๋ฃŒ์‹œ ์‚ญ์ œ(๊ธฐ๊ฐ„ ์ง€์ • ๊ฐ€๋Šฅ)์šฉ๋Ÿ‰์ œํ•œ์ด 300๊ฐœ, ํ•˜๋‚˜์˜ ๋„๋ฉ”์ธ๋‹น 20๊ฐœ, ํ•˜๋‚˜์˜..
๋ฐฑ์—”๋“œ(Back-End) ๊ฐœ๋ฐœ/Java
๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(Object Oriented Programming, OOP) ์–ธ์–ด
2025.01.16
๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(OOP) ์ด๋ž€ ? ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (Object-Oriented Programming, OOP)์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ƒํ™” ์‹œ์ผœ ์ƒํƒœ์™€ ํ–‰์œ„๋ฅผ ๊ฐ€์ง„ ๊ฐ์ฒด๋กœ ๋งŒ๋“ค๊ณ , ๊ฐ์ฒด๋“ค๊ฐ„์˜ ์œ ๊ธฐ์ ์ธ ์ƒํ˜ธ์ž‘์šฉ์„ ํ†ตํ•ด ๋กœ์ง์„ ๊ตฌ์„ฑํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ๋ฒ•.(์ฐธ๊ณ ๋กœ, ์ ˆ์ฐจ ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ž€ ์ˆœ์ฐจ์ ์ธ ์ฒ˜๋ฆฌ๊ฐ€ ์ค‘์š”์‹œ๋˜๋ฉฐ ํ”„๋กœ๊ทธ๋žจ ์ „์ฒด๊ฐ€ ์œ ๊ธฐ์ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜๋„๋ก ๋งŒ๋“  ํ”„๋กœ๊ทธ๋ž˜๋ฐ, ๋ฐ˜๋ณต๋˜๋Š” ๋™์ž‘์„ ํ•จ์ˆ˜ ๋ฐ ํ”„๋กœ์‹œ์ € ํ˜•ํƒœ๋กœ ๋ชจ๋“ˆํ™”ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹)๊ฑฐ๊ธฐ์„œ ๋˜, ๊ฐ์ฒด(๋˜๋Š” ํด๋ž˜์Šค)๋ž€?  ํด๋ž˜์Šค : ์–ด๋–ค ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์ถ”์ƒํ™”๋ฅผ ๊ฑฐ์ณ ์ง‘๋‹จ์— ์†ํ•˜๋Š” ์†์„ฑ(attribute)๊ณผ ํ–‰์œ„๋ฅผ ๋ณ€์ˆ˜์™€ ๋ฉ”์„œ๋“œ๋กœ ์ •์˜ํ•œ ๊ฒƒ๊ฐ์ฒด(์ธ์Šคํ„ด์Šค) : ํด๋ž˜์Šค์—์„œ ์ •์˜ํ•œ ๊ฒƒ์„ ํ† ๋Œ€๋กœ ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹น๋œ ..