λ°˜μ‘ν˜•

λΆ„λ₯˜ 전체보기 294

[Network] CIDRμ΄λž€?

Intro μ•ˆλ…•ν•˜μ„Έμš”. 이번 μ‹œκ°„μ—λŠ” Network의 CIDR 이 무엇인지 μ•Œμ•„λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€. CIDR CIDR은 Classless Inter-Domain Routing의 μ•½μžλ‘œ IP μ£Όμ†Œ ν• λ‹Ή 및 λΌμš°νŒ…μ—μ„œ μ‚¬μš©λ˜λŠ” λ°©λ²•μž…λ‹ˆλ‹€. λ„€νŠΈμ›Œν¬μ—μ„œ CIDR은 λ„€νŠΈμ›Œν¬ μ£Όμ†Œμ™€ 호슀트 μ£Όμ†Œ λΆ€λΆ„μ˜ μ€‘μš”ν•œ λΉ„νŠΈμˆ˜λ₯Ό μ •μ˜ν•˜λŠ”λ° μ‚¬μš©λ©λ‹ˆλ‹€. λ„€νŠΈμ›Œν¬ μ£Όμ†ŒλŠ” IPμ£Όμ†Œμ™€ μ€‘μš”ν•œ λΉ„νŠΈμ˜ 수의 μ‘°ν•©μœΌλ‘œ 쓰여진 접두사λ₯Ό μ‚¬μš©ν•˜μ—¬ ν‘œν˜„λ˜κ³  μžˆμŠ΅λ‹ˆλ‹€. Example CIDR ν‘œκΈ°λ²•μΈ 192.168.0.0/24 μ˜ˆμ‹œλ₯Ό 듀어보도둝 ν•˜κ² μŠ΅λ‹ˆλ‹€. μ ‘λ‘μ‚¬λŠ” 192.168.0 이고, μ€‘μš”ν•œ λΉ„νŠΈ μˆ«μžλŠ” 24μž…λ‹ˆλ‹€. μ΄λŠ” IP μ£Όμ†Œμ˜ 처음 24 λΉ„νŠΈκ°€ μ£Όμ†Œμ˜ λ„€νŠΈμ›Œν¬ 뢀뢄을 μœ„ν•΄ μ‚¬μš©λ˜λŠ” 것을 λœ»ν•©λ‹ˆλ‹€. 그리고 남은 8λΉ„νŠΈκ°€ μ£Όμ†Œμ˜ 호슀트..

[IT Term] μ„œλ²„λ¦¬μŠ€(Serverless)λž€ 무엇인가? (μ •μ˜, νŠΉμ§•, μž₯단점 비ꡐ)

Intro μ•ˆλ…•ν•˜μ„Έμš”. 이번 μ‹œκ°„μ—λŠ” μ„œλ²„λ¦¬μŠ€(serverless)의 μ˜λ―Έμ— λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. What's Serverless? μ„œλ²„λ¦¬μŠ€ (Serverless)의 λ‹¨μ–΄λ§Œ 보면, μ„œλ²„(Sever) + 리슀(Less)의 ν•©μ„±μ–΄λ‘œ μ„œλ²„κ°€ μ—†λ‹€λŠ” 뜻처럼 λ³΄μž…λ‹ˆλ‹€. ν•˜μ§€λ§Œ μ„œλ²„λ¦¬μŠ€λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 개발과 배포λ₯Ό μœ„ν•΄ μ„œλ²„ 인프라λ₯Ό μ„€μ •ν•˜κ³  관리할 ν•„μš”κ°€ μ—†λŠ” ν΄λΌμš°λ“œ μ»΄ν“¨νŒ… λͺ¨λΈμ„ μ˜λ―Έν•©λ‹ˆλ‹€. Characteristics of Serverless μ„œλ²„λ¦¬μŠ€λŠ” ν΄λΌμš°λ“œ 곡급 업체가 인프라λ₯Ό κ΄€λ¦¬ν•˜κΈ° λ•Œλ¬Έμ— μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ½”λ“œμ— 집쀑할 수 μžˆμŠ΅λ‹ˆλ‹€. μ„œλ²„λ¦¬μŠ€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ ν•„μš”ν•œ κ²½μš°μ—λ§Œ μ‹€ν–‰λ˜λ©°, μ‹€ν–‰λ˜λŠ” 각 ν•¨μˆ˜μ— λŒ€ν•΄ ν΄λΌμš°λ“œ 곡급 μ—…μ²΄μ—μ„œ μžλ™μœΌλ‘œ μŠ€μΌ€μΌλ§μ„ μ²˜λ¦¬ν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ 이유둜 μ„œλ²„λ¦¬μŠ€λŠ” λΉ„μš© 효율적이고..

[Flutter] μ‰¬μš΄ ν”ŒλŸ¬ν„° 0κ°• : ν”ŒλŸ¬ν„° μ„€μΉ˜ 4-step (λ§₯/μœˆλ„μš°)

이 글은 μ½”λ”©μ• ν”Œλ‹˜μ˜μ‰¬μš΄ ν”ŒλŸ¬ν„° κ°•μ’Œλ₯Ό λ°”νƒ•μœΌλ‘œ μ •λ¦¬ν•œ λ‚΄μš©μž…λ‹ˆλ‹€. Intro μƒˆλ‘œμš΄ μ‚¬μ΄λ“œ ν”„λ‘œμ νŠΈλ₯Ό μ‹œμž‘ν•˜λ©΄μ„œ Flutterλ₯Ό μ‚¬μš©ν•΄λ³΄κΈ°λ‘œ ν–ˆμŠ΅λ‹ˆλ‹€. FlutterλŠ” ν•œλ²ˆλ„ 닀뀄본 적이 μ—†κΈ° λ•Œλ¬Έμ— κ°•μ’Œ λ‚΄μš©μ„ κ°„λ‹¨νžˆ μ •λ¦¬ν•˜λ©° 곡뢀해보렀고 ν•©λ‹ˆλ‹€ :-) Flutter κ°œλ°œν™˜κ²½ μ…‹νŒ… 1. Flutter SDK λ‹€μš΄ https://docs.flutter.dev/get-started/install 2. Android Studio μ„€μΉ˜ https://developer.android.com/studio plugin λ©”λ‰΄μ—μ„œ Flutter ν”ŒλŸ¬κ·ΈμΈ 검색 ν›„ μ„€μΉ˜ SDK Manager λˆŒλŸ¬μ„œ Android SDK Command-line Tools μ„€μΉ˜ 3. ν™˜κ²½λ³€μˆ˜λ“±λ‘ 제 경우 터미널 이름이 zsh μ΄λ―€λ‘œ μ•„λž˜ ..

Framework/Flutter 2023.04.11

[TypeScript] Could not find a declaration file for module 였λ₯˜ 원인 및 ν•΄κ²° 방법

Intro μ•ˆλ…•ν•˜μ„Έμš”. νƒ€μž…μŠ€ν¬λ¦½νŠΈ μ‚¬μš© 쀑 λ‹€μŒμ˜ μ—λŸ¬κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. Could not find a declaration file for module Why? 이 였λ₯˜ λ©”μ‹œμ§€λŠ” μ—°κ²°λœ declaration file 이 μ—†λŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈ μ½”λ“œ μ•ˆμ— λͺ¨λ“ˆμ΄λ‚˜ 라이브러리λ₯Ό μ‚¬μš©ν•  λ•Œ λ°œμƒν•˜λŠ” μ „ν˜•μ μΈ 였λ₯˜μž…λ‹ˆλ‹€. declaration file(.d.ts)λŠ” λͺ¨λ“ˆμ΄λ‚˜ 라이브러리의 types, functions 및 기타 속성을 μ„€λͺ…ν•˜κ³  νƒ€μž…μŠ€ν¬λ¦½νŠΈκ°€ μ½”λ“œμ—μ„œ 이듀을 μ‚¬μš©ν•˜λŠ” 방법을 이해할 수 μžˆλ„λ‘ ν•©λ‹ˆλ‹€. λ”°λΌμ„œ μ„€μΉ˜λœ νŠΉμ • λͺ¨λ“ˆ/λΌμ΄λΈŒλŸ¬λ¦¬μ— λŒ€ν•œ type μ •μ˜κ°€ μ—†μ–΄ νƒ€μž…μŠ€ν¬λ¦½νŠΈμ—μ„œ 이해할 수 μ—†μœΌλ―€λ‘œ λ‹€μŒμ˜ 였λ₯˜κ°€ λ°œμƒν•œ κ²ƒμž…λ‹ˆλ‹€. How to solve the problem 이 였λ₯˜λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄μ„œλŠ”..

μ£Όλ‹ˆμ–΄ 개발자의 2023λ…„ 3μ›” 회고

Work μ„œλΉ„μŠ€ λ‚΄λΆ€ ν…ŒμŠ€νŠΈ 이번 달은 리뉴얼 μ›Ήμ•± κ°œλ°œμ„ 마치고 ν…ŒμŠ€νŠΈ 및 ν”Όλ“œλ°±μ΄ μ§„ν–‰λœ λ‹¬μ΄μ˜€μŠ΅λ‹ˆλ‹€. νŒ€ λ‚΄ 인원이 μΆ©λΆ„ν•˜μ§€ μ•Šλ‹€λ³΄λ‹ˆ ν…ŒμŠ€νŠΈ λ‚΄λΆ€μ—μ„œ ν…ŒμŠ€νŠΈν•  μΈμ›μ†ŒμŠ€λŠ” λΆ€μ‘±ν–ˆμŠ΅λ‹ˆλ‹€. 처음 ν…ŒμŠ€νŠΈλŠ” μ„œλΉ„μŠ€ 기획 κ²½ν—˜λ„ λ§ŽμœΌμ‹œκ³  ν…ŒμŠ€νŠΈλ„ 많이 ν•΄λ³΄μ…¨λ˜ νŒ€ λ‚΄μ˜ 기획자 λΆ„(λ™μ‹œμ— νŒ€μž₯λ‹˜)κ»˜μ„œ ν•΄μ£Όμ…¨μŠ΅λ‹ˆλ‹€. 사싀 μ €λŠ” ν˜„ νšŒμ‚¬μ˜ 도메인 지식이 λΆ€μ‘±ν•œ νŽΈμž…λ‹ˆλ‹€. μ „κΈ° κ΄€λ ¨λœ λ‚΄μš©μ΄λ‹€ λ³΄λ‹ˆ μ–΄λ–€ μ§€ν‘œκ°€ μœ μš©ν•˜κ³ , 무엇을 보기 μœ„ν•΄ 개발된 화면인지 이해가 μ•ˆλ  λ•Œκ°€ λ§Žλ”λΌκ³ μš”. κΈ°νšμžλΆ„κ»˜μ„œ 도메인 지식도 λ§ŽμœΌμ‹œκ³ , 정리도 잘 ν•΄μ£Όμ‹œκ³  잘 μ•Œλ €μ£Όμ…”μ„œ μ°Έ λ‹€ν–‰μ΄λΌλŠ” 생각이 λ“€μ—ˆμŠ΅λ‹ˆλ‹€. μ„œλΉ„μŠ€ 베타 ν…ŒμŠ€νŠΈ νŒ€ λ‚΄λΆ€ ν…ŒμŠ€νŠΈλ₯Ό 거친 ν›„, νƒ€λΆ€μ„œμ— 베타 ν…ŒμŠ€νŠΈ μ°Έμ—¬ 인원을 λͺ¨μ§‘ν•˜μ˜€μŠ΅λ‹ˆλ‹€. ν•΄λ‹Ή λΆ€μ„œλŠ” μ‹€μ§ˆμ μœΌλ‘œ ν•΄λ‹Ή ..

[Angular] SVG path element click 이벀트 ν•¨μˆ˜ μ‹€ν–‰ν•˜λŠ” 방법

Intro μ•ˆλ…•ν•˜μ„Έμš”. μ•΅κ·€λŸ¬μ—μ„œ SVG path element에 click 이벀트 ν•¨μˆ˜ μ‹€ν–‰ν•˜λŠ” 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€. My Case 제 μΌ€μ΄μŠ€μ˜ 경우 νŠΉμ • SVG μš”μ†Œλ₯Ό ν΄λ¦­ν–ˆμ„ λ•Œ ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜λ„λ‘ ν•˜κ³  μ‹Άμ—ˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ μ•„λž˜μ™€ 같이 κ΅¬ν˜„ν•˜μ˜€μŠ΅λ‹ˆλ‹€. svg νŒŒμΌμ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. ts νŒŒμΌμ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. @ViewChild('myPath') myPath: ElementRef; handleClick() { console.log("handleClick!!"); } ν•˜μ§€λ§Œ, svg 파일의 path μš”μ†Œλ₯Ό 클릭해도 handleClick ν•¨μˆ˜κ°€ λ™μž‘ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. Why? 클릭 μ΄λ²€νŠΈκ°€ λ°œμƒν•˜μ§€ μ•ŠλŠ” λ¬Έμ œλŠ” 쑰건이 μΆ©μ‘±ν•˜μ§€ μ•Šμ•˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€. 클릭 이벀트λ₯Ό μ²˜λ¦¬ν•˜κΈ° μœ„ν•΄μ„œλŠ” ν•΄λ‹Ή μš”μ†Œ..

Framework/Angular 2023.04.10

[Web] RESTful APIλž€?

Intro μ•ˆλ…•ν•˜μ„Έμš”. 이번 μ‹œκ°„μ—λŠ” RESTful API에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. RESTful API (REST API) RESTful APIλž€ Representational State Transfer(ν‘œν˜„ μƒνƒœ 전이) 아킀텍쳐λ₯Ό λ”°λ₯΄λŠ” APIμž…λ‹ˆλ‹€. RESTλŠ” μ›Ή 기반 μ‹œμŠ€ν…œμ—μ„œ λ¦¬μ†ŒμŠ€λ₯Ό μ •μ˜ν•˜κ³ , 이λ₯Ό HTTP ν”„λ‘œν† μ½œμ„ 톡해 CRUD(Create, Read, Update, Delete) μž‘μ—…μ„ μˆ˜ν–‰ν•˜κΈ° μœ„ν•œ κ·œμΉ™μ΄λ‚˜ μ œμ•½ 쑰건을 μ œκ³΅ν•©λ‹ˆλ‹€. RESTful API νŠΉμ§• HTTP ν”„λ‘œν† μ½œμ„ μ‚¬μš©ν•˜μ—¬ ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„ κ°„μ˜ 톡신을 μ²˜λ¦¬ν•©λ‹ˆλ‹€. ν΄λΌμ΄μ–ΈνŠΈλŠ” URL을 톡해 μ„œλ²„μ˜ λ¦¬μ†ŒμŠ€μ— μ ‘κ·Όν•˜κ³ , HTTP λ©”μ†Œλ“œ(GET, POST, PUT, DELETE λ“±)λ₯Ό μ‚¬μš©ν•˜μ—¬ ν•΄λ‹Ή λ¦¬μ†ŒμŠ€λ₯Ό μ‘°μž‘ν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ ..

[Web] JWT(JSON Web Token)λž€?

Intro μ•ˆλ…•ν•˜μ„Έμš”. 이번 μ‹œκ°„μ—λŠ” JWT(JSON Web Token) 에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. JWT(JSON Web Token) JWTλž€ 인증 및 κΆŒν•œ λΆ€μ—¬λ₯Ό μœ„ν•΄ μ‚¬μš©λ˜λŠ” ν‘œμ€€ 기반의 데이터 ν˜•μ‹μž…λ‹ˆλ‹€. JWTλŠ” JSON ν˜•μ‹μœΌλ‘œ ν‘œν˜„λ˜λ©°, 데이터λ₯Ό μ•ˆμ „ν•˜κ²Œ μ „μ†‘ν•˜κ³  κ²€μ¦ν•˜κΈ° μœ„ν•œ 디지털 μ„œλͺ…이 ν¬ν•¨λ©λ‹ˆλ‹€. JWT ꡬ쑰 JWTλŠ” μ„Έ 가지 파트둜 κ΅¬μ„±λ©λ‹ˆλ‹€. 헀더, νŽ˜μ΄λ‘œλ“œ, μ„œλͺ…μž…λ‹ˆλ‹€. 헀더 (Headder) ν—€λ”λŠ” ν† ν°μ˜ νƒ€μž…κ³Ό μ‚¬μš©λ˜λŠ” ν•΄μ‹± μ•Œκ³ λ¦¬μ¦˜μ„ μ§€μ •ν•˜λŠ” 역할을 ν•©λ‹ˆλ‹€. νŽ˜μ΄λ‘œλ“œ (Payload) νŽ˜μ΄λ‘œλ“œλŠ” 토큰에 포함될 데이터λ₯Ό μ •μ˜ν•©λ‹ˆλ‹€. μ„œλͺ… (Signature) μ„œλͺ…은 헀더와 νŽ˜μ΄λ‘œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ μƒμ„±λ˜λ©°, 이λ₯Ό μ΄μš©ν•΄ λ°μ΄ν„°μ˜ 무결성 (λ°μ΄ν„°μ˜ μ •ν™•μ„±, 일관성, μœ νš¨μ„±μ΄ μœ μ§€λ˜λŠ” ..

[React] λ¦¬μ•‘νŠΈ innerHtml ν‘œμ‹œν•˜κΈ° (dangerouslySetInnerHTML)μ‚¬μš© 주의점 및 λ³΄μ•ˆ 방법

Intro μ•ˆλ…•ν•˜μ„Έμš”. λ¦¬μ•‘νŠΈμ—μ„œ innerHtml을 ν‘œμ‹œν•˜λŠ” 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. μ΅œκ·Όμ— μŠ€λ§ˆνŠΈμ—λ””ν„° κ΄€λ ¨ν•œ μž‘μ—…μ„ μ§„ν–‰ν•˜κ³  μžˆμ—ˆμŠ΅λ‹ˆλ‹€. 에디터에 μ €μž₯된 λ‚΄μš©μ΄ κ·ΈλŒ€λ‘œ html tag둜 μ €μž₯되고, μ €μž₯된 html tagλ₯Ό κ·ΈλŒ€λ‘œ 화면에 ν‘œμ‹œν•΄μ•Ό ν–ˆμ£ . μ €μž₯된 이 innerHtmlλ₯Ό μ–΄λ–»κ²Œ ν‘œμ‹œν•΄μ•Ό ν• κΉŒμš”? ν•¨κ»˜ μ•Œμ•„λ΄…μ‹œλ‹€ :) How to solve the problem Reactμ—μ„œ innerHtmlλ₯Ό ν‘œμ‹œν•˜λŠ” μœ„ν•΄μ„œλŠ” μ•„λž˜ μ½”λ“œμ™€ 같이 dangerouslySetInnerHTMLλ₯Ό ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. import React from 'react'; function MyComponent() { const sampleHtml = 'Hello world! '; return ( ); } μ—¬κΈ°μ„œ da..

Framework/React 2023.04.06

[React] λ‘œλ”©λ°”(loading bar) ν‘œμ‹œ 및 λ‘œλ”© 속도 μ‘°μ ˆν•˜λŠ” 방법 (+ setTimeout)

Intro μ•ˆλ…•ν•˜μ„Έμš”. 이번 μ‹œκ°„μ—λŠ” λ¦¬μ•‘νŠΈμ—μ„œ λ‘œλ”©λ°” ν‘œμ‹œ 및 λ‘œλ”© 속도λ₯Ό μ‘°μ ˆν•˜λŠ” 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. How to solve the problem λ‹€μŒμ˜ List μ»΄ν¬λ„ŒνŠΈκ°€ μžˆλ‹€κ³  κ°€μ •ν•΄λ΄…μ‹œλ‹€. handleFilterClickν•¨μˆ˜λ₯Ό 클릭 ν• λ•Œλ§ˆλ‹€ ν•„ν„°κΈ°λŠ₯이 μž‘λ™λ˜λŠ” λ‘œμ§μž…λ‹ˆλ‹€. ν•„ν„°λ₯Ό λˆ„λ₯Ό λ•Œλ§ˆλ‹€ ν•„ν„°κ°€ λœλ“―ν•œ λ™μž‘μ„ ν‘œν˜„ν•˜κΈ° μœ„ν•΄ λ‘œλ”©λ°”λ₯Ό 좔가보도둝 ν•˜κ² μŠ΅λ‹ˆλ‹€. const List: NextPage = () => { const {dataList, setDataList} = useLoginStore(); const [totalCtn, setTotalCtn] = useState(); const [filterStatus, setFilterStatus] = useState("ALL"); const..

Framework/React 2023.04.05
λ°˜μ‘ν˜•