λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

πŸ’» DEV94

[JavaScript] 클래슀 (Class) μžλ°”μŠ€ν¬λ¦½νŠΈλ₯Ό λΉ„λ‘―ν•œ μ—¬λŸ¬ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ—λŠ” "클래슀", ν•œκ΅­μ–΄λ‘œ λ²ˆμ—­ν•˜λ©΄ "λΆ„λ°˜, 개체ꡰ" μ΄λΌλŠ” κ°œλ…μ΄ μ‘΄μž¬ν•œλ‹€. 이 κ°œλ…μ€ "객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°" 과도 κΉŠμ€ 연관성을 가지고 μžˆμ–΄, κ°œλ°œμžλ‘œμ¨λŠ” μ•Œμ•„λ‘μ–΄μ•Ό ν•  ν•„μˆ˜ 상식이기도 ν•˜λ‹€. ν΄λž˜μŠ€λŠ” 말 κ·ΈλŒ€λ‘œ ν•˜λ‚˜μ˜ κ·Έλ£Ή, λ˜λŠ” 묢음이라고 μƒκ°ν•˜λ©΄ νŽΈν•˜λ‹€.κ°€λ Ή, '이름', '성별', 'λ‚˜μ΄' λΌλŠ” 속성이 있고, '이름 λΆ€λ₯΄κΈ°', '개λͺ…ν•˜κΈ°', 'λ‚˜μ΄ κ³„μ‚°ν•˜κΈ°' λ“±μ˜ λ©”μ„œλ“œ (κΈ°λŠ₯) 이 μžˆλ‹€κ³  ν•˜μž. '이름' 속성과 '이름 λΆ€λ₯΄κΈ°', '개λͺ…ν•˜κΈ°' λ©”μ„œλ“œλ₯Ό ν•˜λ‚˜λ‘œ κ·Έλ£Ήν™”ν•˜μ—¬ κ΄€λ¦¬ν•˜λŠ” 것이 이듀을 κ°œλ³„μ μœΌλ‘œ λΆ„μ‚°μ‹œν‚€λŠ” 것보닀 훨씬 μž‘μ—…μ— μš©μ΄ν•  것이닀. μ΄λ ‡κ²Œ λΉ„μŠ·ν•œ κΈ°λŠ₯을 ν•˜κ±°λ‚˜ 속성을 κ°–λŠ” μš”μ†Œλ“€μ„ ν•˜λ‚˜μ˜ 객체에 λ‹΄μ•„ μ‚¬μš©ν•˜κ³  관리할 수 μžˆλ„λ‘ ν•˜λŠ” 자료ꡬ쑰.. 2021. 12. 12.
[Network] GSLB (Global Server Load Balancing) GSLB λŠ” Global server load balancing, λ˜λŠ” Global service load balancing 의 μ•½μ–΄λ‘œ, 도메인을 μ΄μš©ν•œ λ‘œλ“œλ°ΈλŸ°μ‹± κ΅¬ν˜„ κΈ°μˆ μ΄λ‹€. κ°œλ…μ„ ꡬ체적으둜 μ•Œμ•„λ³΄κΈ° 전에 λ¨Όμ € λ‘œλ“œλ°ΈλŸ°μ‹±μ˜ μ˜λ―Έμ™€ μ’…λ₯˜λΆ€ν„° κ°„λž΅νžˆ μ•Œμ•„λ³΄μž. ✨ λ‘œλ“œλ°ΈλŸ°μ‹± κ°œμš” λ‘œλ“œλ°ΈλŸ°μ‹±μ΄λž€ "λΆ€ν•˜ λΆ„μ‚°"으둜, 쀑앙 μž₯μΉ˜μ—μ„œ μžμ› λ˜λŠ” λΆ€ν•˜λ₯Ό μ—¬λŸ¬ 개둜 λ‚˜λˆ„μ–΄ μ‹€μ œ μž‘μ—…μ„ μ²˜λ¦¬ν•˜λŠ” κΈ°μˆ μ΄λ‹€. κ°€λ Ή, ν•˜λ‚˜μ˜ μ„œλ²„μ— λͺ¨λ“  μš”μ²­μ΄ λͺ°λ¦¬μ§€ μ•Šλ„λ‘ μ€‘κ°„μ—μ„œ μš”μ²­μ„ μΌμ •ν•˜κ²Œ λ‚˜λˆ„μ–΄ μ—¬λŸ¬ λŒ€μ— μˆœμ„œλŒ€λ‘œ λ³΄λ‚΄μ£ΌλŠ” μ„œλ²„κ°€ μžˆλ‹€λ©΄, ν•΄λ‹Ή μ„œλ²„κ°€ λ‘œλ“œλ°ΈλŸ°μ„œμ˜ 역할을 ν•˜λŠ” 것이닀. λ‘œλ“œλ°ΈλŸ°μ‹± κΈ°μˆ μ€ κΈ°λŠ₯κ³Ό 역할에 따라 크게 3가지 μ’…λ₯˜λ‘œ λ‚˜λ‰œλ‹€. πŸ“ SLB (Server Load Balancing) - ν•˜λ‚˜μ˜ μ„œλ²„μ— 트.. 2021. 11. 10.
[CS] REST API κ°œμš” ✨ REST API κ°œμš” REST API λŠ” Representational State Transfer API 의 μ•½μžμ΄λ‹€. REST 와 API λŠ” λ”°λ‘œ κ΅¬λΆ„ν•΄μ„œ μƒκ°ν•˜λ©΄ 쒋은데, REST λŠ” ν•˜λ‚˜μ˜ 아킀텍쳐 (방법둠) 에 가깝닀. κ·Έλ ‡κΈ° λ•Œλ¬Έμ— λͺ‡ 가지 μ£Όμš” 원칙듀이 μ‘΄μž¬ν•˜λ©°, 이λ₯Ό 잘 지킨 API λ₯Ό "RESTful" ν•˜λ‹€κ³  ν‘œν˜„ν•œλ‹€. API λŠ” Application Programming Interface 의 μ•½μžλ‘œ, μ„œλ²„κ°€ ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ μ œκ³΅ν•˜λŠ” λ¦¬μ†ŒμŠ€ ν™œμš© 방법이 λ‹΄κΈ΄ μΈν„°νŽ˜μ΄μŠ€μ΄λ‹€. πŸ“ API API λ₯Ό 처음 λ“€μœΌλ©΄ μ„œλ²„, DB 의 κ°œλ…κ³Ό ν—·κ°ˆλ¦΄ 수 μžˆλ‹€. ν•˜μ§€λ§Œ API λŠ” μ„œλ²„λ„ DB 도 μ•„λ‹ˆλ‹€. μ„œλ²„μ™€ DB κ°€ μ œκ³΅ν•˜λŠ” 데이터 λ˜λŠ” κΈ°λŠ₯에 μ ‘κ·Όν•  수 μžˆλ„λ‘ ν•΄μ£ΌλŠ” μ•ˆλ‚΄νŒμ— 가깝닀. κ°€λ Ή, vo.. 2021. 11. 4.
[Network] DNS κ°œμš”μ™€ λ™μž‘ 방식 ✨ DNS κ°œμš” DNS λŠ” Domain Name System 의 μ•½μžμ΄λ‹€. λͺ¨λ“  μ„œλ²„μ—λŠ” 고유의 IP μ£Όμ†Œκ°€ ν• λ‹Ήλ˜λŠ”λ°, μ‚¬μš©μžλ“€μ΄ νŠΉμ • μ‚¬μ΄νŠΈμ— 접속할 λ•Œλ§ˆλ‹€ 이 μ£Όμ†Œλ₯Ό μ™Έμ›Œμ„œ λ“€μ–΄κ°€λŠ” 것은 νž˜λ“  일이닀. λ•Œλ¬Έμ— 각 IP μ£Όμ†Œμ— λ¬Έμžμ—΄λ‘œ κ΅¬μ„±λœ 도메인 (domain) 을 연결지어 ν™œμš©ν•œλ‹€. 예λ₯Ό λ“€μ–΄ μ‚¬μš©μžμ˜ 둜컬 IP μ£Όμ†ŒλŠ” 127.0.0.1 인데, 맀번 이 일련의 숫자λ₯Ό λΈŒλΌμš°μ €μ— 치고 λ“€μ–΄κ°€λŠ” 것보닀 localhost.com μ΄λΌλŠ” 직관적인 도메인 μ£Όμ†Œλ₯Ό μ°Ύμ•„ λ“€μ–΄κ°€λŠ” 것이 훨씬 νŽΈν•  것이닀. 이것이 도메인이 ν•„μš”ν•œ μ΄μœ μ΄λ‹€. DNS λŠ” 이처럼 컴퓨터듀이 λ¬Έμžμ—΄ 도메인을 ν†΅ν•΄μ„œλ„ μ΅œμ’… λͺ©μ μ§€κΉŒμ§€ 도달할 수 μžˆλ„λ‘ IP μ£Όμ†Œμ™€ 도메인을 맀핑해놓은 μ£Όμ†Œ 체계이닀. 보톡 'url' 을 ν•˜λ©΄ http:/.. 2021. 10. 28.
[Javascript] Generator (μ œλ„€λ ˆμ΄ν„°) πŸ“ Intro μ§€λ‚œ κΈ€μ—μ„œ λ‹€λ£¨μ—ˆλ˜ Iterator 와 μΈμ ‘ν•˜κ²Œ μ‚¬μš©λ˜λŠ” κ°œλ… 쀑 ν•˜λ‚˜κ°€ λ°”λ‘œ generator (μ œλ„€λ ˆμ΄ν„°) 이닀. μ œλ„€λ ˆμ΄ν„°λŠ” ES6μ—μ„œ λ„μž…λ˜μ–΄, μ½”λ“œ λΈ”λ‘μ˜ 싀행을 μΌμ‹œ μ€‘μ§€ν–ˆλ‹€κ°€ ν•„μš”ν•œ μ‹œμ μ— μž¬κ°œν•  수 μžˆλŠ” νŠΉμˆ˜ν•œ ν•¨μˆ˜μ΄λ‹€. 이번 κΈ€μ—μ„œλŠ” generator funciton κ³Ό generator의 ν™œμš© 방법을 μ‚΄νŽ΄λ³΄κ³ μž ν•œλ‹€. ✨ Generator MDN μ—μ„œ μ •μ˜ν•˜λŠ” generator λŠ” "generator function (μ œλ„€λ ˆμ΄ν„° ν•¨μˆ˜) λ‘œλΆ€ν„° λ°˜ν™˜λœ 값이며 iterable, iterator protocol 을 μ€€μˆ˜ν•˜λŠ” κ°’" 이닀. μœ„μ˜ μ •μ˜μ—μ„œ ν‘œκΈ°λœ Generator function 의 μ£Όμš” νŠΉμ§•μ€ λ‹€μŒκ³Ό κ°™λ‹€. 1. ν•¨μˆ˜ 호좜자 (caller) μ—κ²Œ ν•¨μˆ˜ μ‹€ν–‰μ˜ μ œμ–΄.. 2021. 10. 26.
[Network] NAT/PAT ✨ NAT (Network Address Translation) 와 PAT (Port Address Translation) NAT λŠ” 주둜 νšŒμ‚¬λ‚˜ 톡신사 μž₯λΉ„μ—μ„œ μ‚¬μš©λ˜λ©°, 말 κ·ΈλŒ€λ‘œ λ„€νŠΈμ›Œν¬μ˜ μ£Όμ†Œλ₯Ό λ³€ν™˜ν•˜λŠ” κΈ°μˆ μ΄λ‹€. κΈ°λ³Έμ μœΌλ‘œλŠ” ν•˜λ‚˜μ˜ λ„€νŠΈμ›Œν¬ μ£Όμ†Œλ₯Ό λ‹€λ₯Έ ν•˜λ‚˜λ‘œ λ³€ν™˜ν•˜λ‚˜ (1:1), μ΄λŠ” IP μ£Όμ†Œκ°€ κ³ κ°ˆλ˜λŠ” 문제λ₯Ό μ΄ˆλž˜ν•  수 μžˆμ–΄ μ—¬λŸ¬κ°œμ˜ μ£Όμ†Œλ₯Ό ν•˜λ‚˜μ˜ μ£Όμ†Œλ‘œ λ³€ν™˜ν•˜κΈ°λ„ ν•œλ‹€. μ΄λ•Œ, ν›„μžλ₯Ό NPAT (ν˜Ήμ€ PAT) 기술이라고 μΉ­ν•œλ‹€. πŸ“NAT 기술의 μ‚¬μš©λ‘€ - 사섀 IP 곡인 IP μ „ν™˜ (κ°€μž₯ 빈번) - 사섀 IP 사섀 IP μ „ν™˜ - 곡인 IP 곡인 IP μ „ν™˜ - IPv4 IPv6 μ „ν™˜ (AFT: Address Family Translation 기술, NAT 의 일쒅) ✨ NAT 의 μš©λ„μ™€ ν•„.. 2021. 10. 21.
[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] ν”Όλ³΄λ‚˜μΉ˜ 수 πŸ“ 문제 μ„€λͺ… ν”Όλ³΄λ‚˜μΉ˜ μˆ˜λŠ” F(0) = 0, F(1) = 1일 λ•Œ, 1 μ΄μƒμ˜ n에 λŒ€ν•˜μ—¬ F(n) = F(n-1) + F(n-2) κ°€ μ μš©λ˜λŠ” 수 μž…λ‹ˆλ‹€. 예λ₯Όλ“€μ–΄ F(2) = F(0) + F(1) = 0 + 1 = 1 F(3) = F(1) + F(2) = 1 + 1 = 2 F(4) = F(2) + F(3) = 1 + 2 = 3 F(5) = F(3) + F(4) = 2 + 3 = 5 와 같이 μ΄μ–΄μ§‘λ‹ˆλ‹€. 2 μ΄μƒμ˜ n이 μž…λ ₯λ˜μ—ˆμ„ λ•Œ, n번째 ν”Όλ³΄λ‚˜μΉ˜ 수λ₯Ό 1234567으둜 λ‚˜λˆˆ λ‚˜λ¨Έμ§€λ₯Ό λ¦¬ν„΄ν•˜λŠ” ν•¨μˆ˜, solution을 μ™„μ„±ν•΄ μ£Όμ„Έμš”. πŸ“ μ œν•œ 사항 n은 2 이상 100,000 μ΄ν•˜μΈ μžμ—°μˆ˜μž…λ‹ˆλ‹€. πŸ“ μž…μΆœλ ₯ 예 n return 3 2 5 5 πŸ“ μž…μΆœλ ₯ 예 μ„€λͺ… ν”Όλ³΄λ‚˜μΉ˜μˆ˜λŠ” 0λ²ˆμ§ΈλΆ€ν„° 0, 1, 1.. 2021. 10. 14.
[Javascript] Iterable (μ΄ν„°λŸ¬λΈ”) πŸ“ Intro Iterate λŠ” 'λ°˜λ³΅ν•˜λ‹€' λŠ” 사전적 의미λ₯Ό 가지고 μžˆλŠ” μš©μ–΄λ‘œ, ν”„λ‘œκ·Έλž˜λ°μ—μ„œλŠ” 주둜 '반볡 κ°€λŠ₯ν•œ 객체' λ₯Ό μ˜λ―Έν•œλ‹€. μžλ°”μŠ€ν¬λ¦½νŠΈμ—λ§Œ μ‘΄μž¬ν•˜λŠ” κ°œλ…μ€ μ•„λ‹ˆμ§€λ§Œ, μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ μ΄ν„°λŸ¬λΈ” κ°œλ…μ„ ν•™μŠ΅ν•˜λ©΄ λ‹€λ₯Έ ν”„λ‘œκ·Έλž˜λ° μš©μ–΄μ—λ„ μ‰½κ²Œ μ μš©ν•  수 μžˆλ‹€. ✨ ES6 에 μΆ”κ°€λœ Iterable ECMAScript λŠ” μžλ°”μŠ€ν¬λ¦½νŠΈλ₯Ό ν‘œμ€€ν™”ν•˜κ³  ν† λŒ€λ₯Ό κ΅¬μ„±ν•˜κΈ° μœ„ν•΄ λ§Œλ“€μ–΄μ§„ ν‘œμ€€ν™”λœ 슀크립트 ν”„λ‘œκ·Έλž˜λ° 언어이며, ES6은 6번째 ECMAScript 버전을 μ˜λ―Έν•œλ‹€. ES6 은 2015년에 μ œμ •λ˜μ—ˆλŠ”λ°, μ΄μ „κΉŒμ§€ λ¬Έμ œκ°€ λ˜μ—ˆλ˜ λ§Žμ€ 뢀뢄듀이 ν•΄κ²°λ˜κ³  κΈ°λŠ₯이 λŒ€κ±° μΆ”κ°€λ˜μ–΄ μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ 가독성과 μœ μ§€λ³΄μˆ˜μ„±μ„ ν–₯μƒν–ˆλ‹€. ES6μ—λŠ” 기쑴에 μ—†μ—ˆλ˜ Scope, parameter handling, ꡬ쑰뢄.. 2021. 10. 13.
[Real MySQL] 02_μ„€μΉ˜μ™€ μ„€μ • λ°±μ—”λ“œ 지식 쀑 λΆ€μ‘±ν•˜λ‹€κ³  μ—¬κ²¨μ§€λŠ” DB λ₯Ό 더 ν•™μŠ΅ν•˜κΈ° μœ„ν•΄ Real MySQL μ„œμ μ„ 읽기 μ‹œμž‘ν–ˆλ‹€. μ•žμœΌλ‘œ μ—¬λŸ¬ 차둀에 걸쳐 μ±…μ˜ λ‚΄μš©μ„ 정리해 λ‚˜κ°€κ³ μž ν•œλ‹€. 이번 κΈ€μ—μ„œλŠ” MySQL μ„€μΉ˜ 이후 μ„œλ²„λ₯Ό μ‹œμž‘ν•˜λŠ” λ‹¨κ³„μ—μ„œ μ•Œμ•„λ‘μ–΄μ•Ό ν•˜λŠ” λͺ‡ 가지 λͺ…령어와 κ°œλ…μ„ μš”μ•½ν•΄λ³Έλ‹€. ✨ μ„œλ²„ μ—°κ²° 방법 MySQL μ„œλ²„μ— μ ‘μ†ν•˜λŠ” 방법은 터미널에 mysql λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•˜λŠ” 것인데, 이 λ•Œ λͺ…λ Ήμ–΄μ˜ μ„ΈλΆ€ λ‚΄μš©μ΄ μ„Έ κ°€μ§€λ‘œ λ‚˜λ‰˜κ²Œ λœλ‹€. 첫 번째 방법은 MySQL μ†ŒμΌ“ νŒŒμΌμ„ μ΄μš©ν•΄ μ ‘μ†ν•˜λŠ” 것이닀. mysql -u root -p --host=localhost --socket=/tmp/mysql.sock πŸ’‘ μ†ŒμΌ“μ΄λž€, ν•˜λ‚˜ μ΄μƒμ˜ 단말에 μœ„μΉ˜ν•œ 두 개의 λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€κ°€ 톡신할 수 μžˆλ„λ‘ ν•˜λŠ” μΌμ’…μ˜ 쒅착점이닀... 2021. 10. 13.