λ°±μ—”λ“œ(Back-End) 개발/Java
μžλ°”μŠ€ν¬λ¦½νŠΈ / 슀크립트 μ–Έμ–΄
2025.01.19
μžλ°”μŠ€ν¬λ¦½νŠΈ(JavaScript)객체 기반의 슀크립트 ν”„λ‘œκ·Έλž˜λ° 언어이닀.이 μ–Έμ–΄λŠ” μ›Ή λΈŒλΌμš°μ € λ‚΄μ—μ„œ 주둜 μ‚¬μš©ν•˜λ©°, λ‹€λ₯Έ μ‘μš© ν”„λ‘œκ·Έλž¨μ˜ λ‚΄μž₯ κ°μ²΄μ—μ„œλ„ μ ‘κ·Όν•  수 μžˆλŠ” κΈ°λŠ₯을 κ°€μ§€κ³  μžˆλ‹€.λ˜ν•œ, Node.js와 같은 λŸ°νƒ€μž… ν™˜κ²½κ³Ό 같이 μ„œλ²„ ν”„λ‘œκ·Έλž˜λ°μ—λ„ μ‚¬μš©λœλ‹€. μŠ€ν¬λ¦½νŠΈ μ–Έμ–΄(= 슀크립트 ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄)μ‘μš©μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό μ œμ–΄ν•˜λŠ” 컴퓨터 ν”„λ‘œκ·Έλž˜λ° 언어이닀. μŠ€ν¬λ¦½νŠΈ μ–Έμ–΄λŠ” μ‘μš© ν”„λ‘œκ·Έλž¨κ³Ό λ…λ¦½ν•˜μ—¬ μ‚¬μš©λ˜κ³  일반적으둜 μ‘μš©ν”„λ‘œκ·Έλž¨μ˜ 언어와 λ‹€λ₯Έ μ–Έμ–΄λ‘œ μ‚¬μš©λ˜μ–΄ μ΅œμ’… μ‚¬μš©μžκ°€ μ‘μš© ν”„λ‘œκ·Έλž¨μ˜ λ™μž‘μ„ μ‚¬μš©μžμ˜ μš”κ΅¬μ— 맞게 μˆ˜ν–‰ν•  수 μžˆλ„λ‘ ν•΄μ€€λ‹€.- λΉ„(非)슀크립트 μ–Έμ–΄     : C, C++, Java λ“± => 컴파일 된 ν›„ λ…λ¦½μ μœΌλ‘œ μž‘λ™ν•˜λŠ” ν•˜λ‚˜μ˜ μ™„μ „ν•œ μ‘μš© ν”„λ‘œκ·Έλž¨- μŠ€ν¬λ¦½νŠΈμ–Έμ–΄    : 자..
λ°±μ—”λ“œ(Back-End) 개발/Java
HTTP ν”„λ‘œν† μ½œ
2025.01.19
HTTP(Hypertext Transfer Protocol) μ΄λž€? μ›Ήμ—μ„œ 데이터(HTMLλ¬Έμ„œ, 이미지, λ™μ˜μƒ, μ˜€λ””μ˜€, ν…μŠ€νŠΈ..)λ₯Ό μ£Όκ³ λ°›κΈ° μœ„ν•œ μ„œλ²„ - ν΄λΌμ΄μ–ΈνŠΈ λͺ¨λΈμ„ λ”°λ₯΄λŠ” ν”„λ‘œν† μ½œμ΄λ‹€. μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ ν”„λ‘œν† μ½œλ‘œ TCP기반의 ν”„λ‘œν† μ½œμ΄λ‹€. μ„œλ²„ - ν΄λΌμ΄μ–ΈνŠΈ λͺ¨λΈν΄λΌμ΄μ–ΈνŠΈμ—μ„œ μ„œλ²„λ‘œ μš”μ²­(request)λ₯Ό 보내면 μ„œλ²„λŠ” μš”μ²­μ„ μ²˜λ¦¬ν•˜μ—¬ ν΄λΌμ΄μ–ΈνŠΈλ‘œ 응닡(response)ν•œλ‹€. HTTP μš”μ²­κ³Ό 응닡HTTP μš”μ²­μ—λŠ” 헀더에 μ›Ήμ‚¬μ΄νŠΈ λ„λ©”μΈμ˜ 호슀트, μ–Έμ–΄, μ‚¬μš©μžμ˜ λΈŒλΌμš°μ € λ“± μ„œλ²„κ°€ ν•„μš”ν•œ 정보λ₯Ό μ „λ‹¬ν•œλ‹€.μš”μ²­μ— λ¬Έμ œκ°€ μ—†λ‹€λ©΄ μ„œλ²„λŠ” HTTP μƒνƒœμ½”λ“œ, 헀더에 ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ ν•„μš”ν•œ 정보λ₯Ό μ „λ‹¬ν•œλ‹€.λ§ˆμ§€λ§‰μœΌλ‘œ μ‘λ‹΅μ˜ BodyλŠ” λΈŒλΌμš°μ €κ°€ μš”μ²­ν•œ 데이터이닀. HTTP와 HTTPS의 차이점HTTP 톡..
λ°±μ—”λ“œ(Back-End) 개발/Java
μ œλ„€λ¦­(Generics) μ΄λž€? (+Wrapper 클래슀, μ»¬λ ‰μ…˜ ν”„λ ˆμž„μ›Œν¬)
2025.01.19
μžλ°”μ—μ„œ μ œλ„€λ¦­μ€ 클래슀 λ‚΄λΆ€μ—μ„œ μ‚¬μš©ν•  λ°μ΄ν„°νƒ€μž…μ„ μ™ΈλΆ€μ—μ„œ μ§€μ •ν•˜λŠ” 것!즉, μ œλ„€λ¦­μ„ μ‚¬μš©ν•˜λ©΄ 컴파일 μ‹œ 미리 νƒ€μž…μ΄ μ§€μ •λœλ‹€. μ‚¬μš©μ΄μœ ? νƒ€μž… μ•ˆμ „μ„± λ¦¬μŠ€νŠΈ 객체λ₯Ό 예λ₯Ό λ“€λ©΄..ArrayList List = new ArrayList(); // λ’·μͺ½μ˜ μ œλ„€λ¦­μ˜ νƒ€μž…μ€ μƒλž΅ κ°€λŠ₯리슀트 클래슀 μžλ£Œν˜•μ˜ νƒ€μž…μ€ String으둜 μ§€μ •λ˜μ–΄, λ¬Έμžμ—΄ λ°μ΄ν„°λ§Œ λ¦¬μŠ€νŠΈμ— 적재 κ°€λŠ₯함! μš°λ¦¬κ°€ λ³€μˆ˜λ₯Ό μ„ μ–Έν•  λ•Œ λ³€μˆ˜μ˜ νƒ€μž…μ„ μ§€μ •ν•΄μ£Όλ“―, μ œλ„€λ¦­μ€ 객체(Object)에 νƒ€μž…μ„ μ§€μ •ν•΄μ£ΌλŠ” 것이라고 보면 λœλ‹€. μ œλ„€λ¦­ νƒ€μž…μ˜ μ’…λ₯˜=> 일반적으둜 μ‚¬μš©λ˜λŠ” μ„ μ–Έλ˜λŠ” 방식이지 무쑰건 μ§€μΌœμ•Όν•˜λŠ” κ·œμΉ™μ€ μ•„λ‹˜ : Type : Key : Value : Element : Number : Result, , … λ“± μ—¬λŸ¬ 개의 λ§€κ°œλ³€μˆ˜λ₯Ό..
λ°±μ—”λ“œ(Back-End) 개발/Java
ν”„λ‘œμ„ΈμŠ€(Process) vs μŠ€λ ˆλ“œ(Thread) λž€?
2025.01.19
ν”„λ‘œμ„ΈμŠ€(Process)- cpu에 μ˜ν•΄ λ©”λͺ¨λ¦¬μ— 올렀져 싀행쀑인 ν”„λ‘œκ·Έλž¨ (일련의 λͺ…λ Ήμ–΄λ“€μ˜ μ§‘ν•©)- μžμ‹ λ§Œμ˜ λ©”λͺ¨λ¦¬ 곡간을 ν¬ν•¨ν•œ 독립적인 μ‹€ν–‰ ν™˜κ²½μ„ κ°€μ§€κ³  μžˆλ‹€.- μžλ°” JVM은 주둜 ν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€λ‘œ μ‹€ν–‰λ˜λ©° λ™μ‹œμ— μ—¬λŸ¬ μž‘μ—…μ„ μˆ˜ν–‰ν•˜κΈ° μœ„ν•΄μ„œ λ©€ν‹° μŠ€λ ˆλ“œλ₯Ό μ§€μ›ν•œλ‹€. μŠ€λ ˆλ“œ(Thread)- ν”„λ‘œμ„ΈμŠ€μ˜ μ‹€ν–‰ 뢀뢄을 λ‹΄λ‹Ήν•˜μ—¬ μ‹€μ§ˆμ μœΌλ‘œ μž‘μ—…μ„ μ‹€ν–‰ν•˜λŠ” λ‹¨μœ„- λͺ…λ Ήμ–΄λ₯Ό λ…λ¦½μ μœΌλ‘œ μ‹€ν–‰ν•  수 μžˆλŠ” ν•˜λ‚˜μ˜ 흐름- μžλ°”μ—μ„œλŠ” JVM에 μ˜ν•΄ κ΄€λ¦¬λœλ‹€.- ν”„λ‘œμ„ΈμŠ€λ‹Ή μ΅œμ†Œ ν•˜λ‚˜ μ΄μƒμ˜ μŠ€λ ˆλ“œκ°€ μ‘΄μž¬ν•œλ‹€.- 단일 μŠ€λ ˆλ“œ / λ©€ν‹° μŠ€λ ˆλ“œ- μŠ€λ ˆλ“œλŠ” ν”„λ‘œμ„ΈμŠ€ λ‚΄μ—μ„œ 각각 Stack만 λ”°λ‘œ ν• λ‹Ήλ°›κ³ , Code, Data, Heap μ˜μ—­μ€ 곡유   μŠ€λ ˆλ“œ 예제: 인증 메일 λ°œμ†‘ μš”μ²­ λ©”μ„œλ“œpublic MailAuthI..
λ°±μ—”λ“œ(Back-End) 개발/Java
읡λͺ… 클래슀(읡λͺ… 객체) λž€?
2025.01.19
읡λͺ….. 이름이 μ—†λ‹€.. λ³„λ‘œ κΈ°μ–΅λ˜μ§€ μ•Šμ•„λ„ 됨.. λ‚˜μ€‘μ— λ‹€μ‹œ 뢈러질 μ΄μœ κ°€ μ—†λ‹€..즉, ν”„λ‘œκ·Έλž¨μ—μ„œ μΌμ‹œμ μœΌλ‘œ ν•œλ²ˆλ§Œ μ‚¬μš©λ˜κ³  λ²„λ €μ§€λŠ” 객체, μž¬μ‚¬μš©λ˜μ§€ μ•ŠμŒ μ΅λͺ… ν΄λž˜μŠ€λŠ” μ„ μ–Έκ³Ό λ™μ‹œμ— μΈμŠ€ν„΄μŠ€ν™” λœλ‹€! = 읡λͺ… 객체읡λͺ… ν΄λž˜μŠ€λŠ” 주둜 λ‹¨μˆœν•œ μΈν„°νŽ˜μ΄μŠ€ κ΅¬ν˜„μ΄λ‚˜, μΆ”μƒν΄λž˜μŠ€ ν™•μž₯에 μ‚¬μš©λœλ‹€!이λ₯Ό 잘 ν™œμš©ν•˜λ©΄ μ½”λ“œλ₯Ό κ°„κ²°ν•˜κ³  λͺ…ν™•ν•˜κ²Œ λ§Œλ“¦ μ΅λͺ… 클래슀λ₯Ό μ‚¬μš©ν•˜λŠ” 이유- ν”„λ‘œκ·Έλž¨ λ‚΄μ—μ„œ μΌμ‹œμ (λ‹¨λ°œμ„±)으둜 ν•œλ²ˆλ§Œ μ‚¬μš©λ˜μ–΄μ•Ό ν•˜λŠ” 객체일 경우- μž¬μ‚¬μš©μ΄ μ—†κ³ , ν™•μž₯성을 ν™œμš©ν•˜λŠ”κ²ƒμ΄ μœ μ§€λ³΄μˆ˜μ— 더 λΆˆλ¦¬ν•  λ•Œ (클래슀λ₯Ό λ³„λ„λ‘œ λ§Œλ“€ ν•„μš”μ—†μ΄ μ½”λ“œμ—μ„œ 읡λͺ…객체λ₯Ό 생성/μ •μ˜ν•˜μ—¬ λ‹¨ ν•œλ²ˆμ˜ μ“°μž„μ„ λ‹€ν•˜κ³  μ†Œλ©Έ) μ΅λͺ…객체(읡λͺ…ν΄λž˜μŠ€) κ΅¬ν˜„ν•˜λŠ” 방법  1. λΆ€λͺ¨λ₯Ό 상속받은 μžμ‹ 읡λͺ… 클래슀 μ„ μ–Έ (μΆ”μƒν΄λž˜μŠ€ ν™•μž₯)..