๋ฐ˜์‘ํ˜•

Programming 76

[JavaScript] DOM ์ ‘๊ทผ์„ ํ†ตํ•ด CSS Module์˜ className ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ• (react.js, next.js)

Intro ์•ˆ๋…•ํ•˜์„ธ์š”. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” DOM ์ ‘๊ทผ์„ ํ†ตํ•ด CSS Module์˜ classname์„ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค . How to solve the problem ์ €๋Š” next.js ์—์„œ ํŠน์ • className ์„ ๊ฐ€์ ธ์™€์„œ ์ œ๊ฑฐํ•ด์ค˜์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. CSS Module์„ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ํŒŒ์ผ ์ปดํฌ๋„ŒํŠธ๋งˆ๋‹ค ์•„๋ž˜์˜ ํ˜•์‹์œผ๋กœ styles์„ ๊ฐ€์ ธ์™€์„œ ์Šคํƒ€์ผ์„ ์ ์šฉํ•ด์คฌ์Šต๋‹ˆ๋‹ค. import styles from './styles.module.css' ์ฐธ๊ณ ๋กœ css module ๋‚ด๋ถ€ ํ”„๋กœ์„ธ์Šค๋Š” css ํด๋ž˜์Šค๋‚˜ css ํŒŒ์ผ์„ ํ†ตํ•ด ๊ทธ ํด๋ž˜์Šค์˜ ์ด๋ฆ„์„ ๊ณ ์œ ํ•˜๊ฒŒ ๋ฐ”๊ฟ”์ฃผ๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ importํ•˜๋Š” ๋ชจ๋“  css ํŒŒ์ผ์„ ๊ณ ์œ ํ•˜๊ฒŒ ๋งŒ๋“ค์–ด ์ค๋‹ˆ๋‹ค. ๋” ์ž์„ธํ•œ ๋‚ด์šฉ์ด ๊ถ๊ธˆํ•˜์‹  ๋ถ„๋“ค์€ ์ด ๊ธ€ [React ..

[Python] ์žฅ๊ณ  (Django) Error: That port is already in use ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

Intro ptyhon API Server ์‚ฌ์šฉ ์ค‘ ์•„๋ž˜์™€ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. Error: That port is already in use. Why? 1. ์ด๋ฏธ ๋„์–ด๋†“์€ ์„œ๋ฒ„๊ฐ€ ์ข…๋ฃŒ๋˜์ง€ ์•Š์•„์„œ ๊ฐ™์€ ํฌํŠธ์— ๋„์–ด ๋†“์„ ์ˆ˜ ์—†์„ ๋•Œ ํ•ด๋‹น ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. 2. ๋™์ผํ•œ ํฌํŠธ๋กœ ๋‹ค๋ฅธ ์„œ๋น„์Šค๊ฐ€ ์‚ฌ์šฉ ์ค‘์ผ ๋•Œ ํ•ด๋‹น ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. How to solve the problem ์ €์˜ ๊ฒฝ์šฐ 1๋ฒˆ ์ผ€์ด์Šค์˜€๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ ์ค‘์ด์˜€๋˜ 8000 ํฌํŠธ์™€ ๊ด€๋ จ๋œ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…๋ฃŒํ•˜๊ณ  ๋‹ค์‹œ ์‹คํ–‰์‹œ์ผœ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•˜์‹œ๋ฉด ํ•ด๋‹น ์—๋Ÿฌ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค :) sudo lsof -t -i tcp:8000 | xargs kill -9

Programming/Python 2023.02.13

[Kotlin] ์ฝ”ํ‹€๋ฆฐ ํ˜„์žฌ ๋‚ ์งœ DateTime ์—์„œ ์‹œ๊ฐ„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฒ•

Intro ์•ˆ๋…•ํ•˜์„ธ์š”. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ์ฝ”ํ‹€๋ฆฐ์—์„œ ํ˜„์žฌ ๋‚ ์งœ DateTime ์—์„œ ์‹œ๊ฐ„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. How to implement ์šฐ์„  LocalDateTime ์„ ํ†ตํ•ด ํ˜„์žฌ ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„์„ ๊ตฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์ดํ›„ plusHours ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด ์›ํ•˜๋Š” ๊ฐ’๋งŒํผ ์‹œ๊ฐ„์„ ๋”ํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. import java.time.LocalDate import java.time.LocalDateTime fun main(args: Array) { val todayDateTime: LocalDateTime = LocalDateTime.now() println("Current date and time: $todayDateTime") println("Add 9 Hour date and time: ${today..

Programming/Kotlin 2023.02.13

[Python] ํŒŒ์ด์ฌ None์˜ ์˜๋ฏธ, ํŠน์ง•๊ณผ ์˜ˆ์‹œ ์‚ดํŽด๋ณด๊ธฐ

Intro ์•ˆ๋…•ํ•˜์„ธ์š”. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ํŒŒ์ด์ฌ์˜ None ํ‚ค์›Œ๋“œ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด ํŒŒ์ด์ฌ์œผ๋กœ ๋˜์–ด ์žˆ๋Š” API ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋ถ„์„ ์ค‘, ์ฟผ๋ฆฌ ์กฐํšŒ์‹œ None์ด๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. Null ์ด๋ž‘์€ ๋‹ค๋ฅธ ๊ฐœ๋…์ธ๊ฐ€ ์‹ถ์–ด ๊ตฌ๊ธ€๋ง์„ ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค. None ๋ณ€์ˆ˜์— None ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, ํ•ด๋‹น ๋ณ€์ˆ˜์—๋Š” ์•„๋ฌด ๊ฐ’์ด ์—†๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ €ํฌ๊ฐ€ ์ตํžˆ ์•Œ๊ณ  ์žˆ๋Š” Null๊ณผ ๊ฐ™์€ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ๋‹ค๋งŒ ํŒŒ์ด์ฌ์—์„œ๋Š” None ์ด๋ผ๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž…์œผ๋กœ์˜ ๊ฐ์ฒด๋กœ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. None Characteristic bool ํ‰๊ฐ€ ์‹œ false ๋ฐ˜ํ™˜ ๋นˆ ๋ฌธ์ž์—ด, 0, False ์™€ ๋‹ค๋ฆ„ None ๊ทธ ์ž์ฒด์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์ง€๋‹˜ None ๋งŒ์ด only None์ด ๋  ์ˆ˜ ์žˆ์Œ Example vari..

Programming/Python 2023.02.08

[Html] Password field is not contained in a form Error ์˜ค๋ฅ˜ ์›์ธ ๋ฐ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

Intro ์•ˆ๋…•ํ•˜์„ธ์š”. Html Input ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋˜ ๋„์ค‘ ์•„๋ž˜์™€ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€์Šต๋‹ˆ๋‹ค . Password field is not contained in a form Why? ๊ตฌ๊ธ€๋ง์„ ํ•ด๋ณด๋‹ˆ, Input ํƒœ๊ทธ๊ฐ€ From ํƒœ๊ทธ ์•ˆ์— ์œ„์น˜ํ•˜์ง€ ์•Š์•„ ์ƒ๊ธฐ๋Š” ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค. ์‚ฌ์‹ค ๊ฒฝ๊ณ (warning) ํ‘œ์‹œ๋ผ์„œ ์ฝ”๋“œ ์ˆ˜์ •์„ ํ•ด์ฃผ์ง€ ์•Š์•„๋„ ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š์ง€๋งŒ, ์ฝ˜์†”์ฐฝ์— ๊ณ„์† warning ํ‘œ์‹œ๊ฐ€ ๋˜์–ด์žˆ๋Š” ๊ฒƒ์ด ๋งˆ์Œ์— ๊ฑธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜์ •์„ ํ•ด๋ณด๋„๋ก ํ•ฉ์‹œ๋‹ค! ๐Ÿ™ƒ How to solve the problem ์•„๋ž˜์™€ ๊ฐ™์ด Html ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๋ฉด ๋”์ด์ƒ ๋‹ค์Œ์˜ ์˜ค๋ฅ˜๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Conclusion Html์€ ์‰ฌ์šฐ๋ฉด์„œ๋„ ์–ด๋ ต๊ณ , ์–ด๋ ค์šฐ๋ฉด์„œ๋„ ์‰ฌ์šด ์กด์žฌ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.๐Ÿ˜‡

Programming/Html 2023.01.30

[JavaScript] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ Object array ํŠน์ • ํ•„๋“œ ๊ธฐ์ค€ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ๋ฒ•

Intro ์•ˆ๋…•ํ•˜์„ธ์š”. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” JavaScript ์—์„œ Object array ๋ฅผ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. How to do ์•„๋ž˜์˜ ์˜ค๋ธŒ์ ํŠธ ์–ด๋ ˆ์ด๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ด…์‹œ๋‹ค. const objectArray = [ { name: 'aa', year: 2008 }, { name: 'bb', year: 2004 }, { name: 'cc', year: 2003 }, { name: 'dd', year: 1996 }, { name: 'ee', year: 1995 }, { name: 'ff', year: 2015 } ]; javascript์˜ sort() ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด์„œ year ํ•„๋“œ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ์„ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. objectArray.sort((x, y) => x.year - y.yea..

[Kotlin] ์ฝ”ํ‹€๋ฆฐ ๋ฆฌ์ŠคํŠธ list ํŠน์ • ํ•„๋“œ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ(DESC) ์ •๋ ฌํ•˜๋Š” ๋ฐฉ๋ฒ•

Intro ์•ˆ๋…•ํ•˜์„ธ์š”. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ์ฝ”ํ‹€๋ฆฐ์—์„œ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. How to do ์ฝ”ํ‹€๋ฆฐ ๋‚ด์žฅ ํ•จ์ˆ˜์ธ sortedByDescending ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๋Š”๋ฐ์š”, ๋‚ด๋ฆผ์ฐจ์ˆœ์— ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ํŠน์ • ํ•„๋“œ ๊ฐ’์„ ๋„ฃ์–ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. result.sortedByDescending { it.date } https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/sorted-by-descending.html

Programming/Kotlin 2023.01.20

[Kotlin] ์ฝ”ํ‹€๋ฆฐ ๋ฌธ์ž์—ด ๊ต์ฒดํ•˜๊ธฐ / ๋ฌธ์ž์—ด์˜ ํŠน์ • ์ธ๋ฑ์Šค์— ๋ฌธ์ž ๋ฐ”๊พธ๋Š” ๋ฐฉ๋ฒ•

Intro ์•ˆ๋…•ํ•˜์„ธ์š”. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ์ฝ”ํ‹€๋ฆฐ ๋ฌธ์ž์—ด (string)์˜ ํŠน์ • ์ธ๋ฑ์Šค ๋ฌธ์ž ๋ฐ”๊พธ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. How to do ์ธ๋ฑ์Šค ๋ฌธ์ž ๋ฐ”๊พธ๋Š” ๋งŽ์€ ๋ฐฉ๋ฒ•์ด ์žˆ๊ฒ ์ง€๋งŒ, ์ €๋Š” substring() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ง„ํ–‰ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด "20230116"์ด๋ผ๋Š” ๋ฌธ์ž์—ด์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ด…์‹œ๋‹ค. ์—ฌ๊ธฐ์„œ ์ธ๋ฑ์Šค 4 ์œ„์น˜์— "12"๋กœ ๋ฐ”๊พธ๊ธฐ ์œ„ํ•ด ์•„๋ž˜์™€ ๊ฐ™์ด ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค. substring() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ต์ฒดํ•  ๋ฌธ์ž๋ฅผ ๋ถ„๋ฆฌํ•˜๊ณ , + ์—ฐ์‚ฐ์ž๋ฅผ ํ†ตํ•ด ๋‚˜๋จธ์ง€ ๋ฌธ์ž์—ด์„ ๋”ํ•ด์ค๋‹ˆ๋‹ค. println()์„ ํ†ตํ•ด ๋‚˜์˜จ ๊ฒฐ๊ณผ๋Š” "20231216" ์ž…๋‹ˆ๋‹ค. "01"์ด "12"๋กœ ์ž˜ ๋ฐ”๋€Œ์–ด ๋™์ž‘ํ•˜๊ณ  ์žˆ๋„ค์š” :) fun main() { var string = "20230116" val char = "12..

Programming/Kotlin 2023.01.16

[Kotlin] ์ฝ”ํ‹€๋ฆฐ mutableList ์ˆ˜์ • ๋ฐ ์‚ญ์ œํ•˜๋Š” ๋ฐฉ๋ฒ•

Intro ์•ˆ๋…•ํ•˜์„ธ์š”. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ์ฝ”ํ‹€๋ฆฐ์—์„œ mutableList ๋ฅผ ์ˆ˜์ • ๋ฐ ์‚ญ์ œํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. MutableList ์ฝ”ํ‹€๋ฆฐ์—์„œ ์ˆ˜์ • ๋ฐ ์‚ญ์ œ ๋“ฑ๊ณผ ๊ฐ™์€ ์ž‘์—…์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” List๊ฐ€ ์•„๋‹Œ, mutableList๋กœ ์„ ์–ธํ•ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ val, var ๋ณ€์ˆ˜๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋Š”๋ฐ์š”, val๋Š” ์ฝ๊ธฐ๋งŒ ๊ฐ€๋Šฅํ•˜๊ณ , var์€ ์ฝ๊ธฐ ๋ฐ ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. How to do ์•„๋ž˜ ์ฝ”๋“œ์™€ ๊ฐ™์ด ์ˆ˜์ • ํ˜น์€ ์‚ญ์ œ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜์ •ํ•˜๊ณ  ์‹ถ์„ ๊ฒฝ์šฐ, ํ•ด๋‹น ์ธ๋ฑ์Šค์— ์ƒˆ๋กœ์šด ๊ฐ’์„ ๋„ฃ์–ด์ฃผ๋ฉด ๋˜๊ณ , ์‚ญ์ œ๋ฅผ ํ•˜๊ณ  ์‹ถ์„ ๊ฒฝ์šฐ removeAt() ๋ฉ”์†Œ๋“œ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์‚ญ์ œํ•˜๊ณ ์ž ํ•˜๋Š” ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ๋ฅผ ๋„ฃ์–ด์ค๋‹ˆ๋‹ค. fun main() { val list: MutableList = mutableListOf() lis..

Programming/Kotlin 2023.01.16

[Kotlin] ๋‚ ์งœ Date ์‹œ์ž‘์ผ๋ถ€ํ„ฐ ์ข…๋ฃŒ์ผ๊นŒ์ง€ ํ•˜๋ฃจ์”ฉ ์ฆ๊ฐ€์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•, ์ฝ”ํ‹€๋ฆฐ ๋ฐ˜๋ณต๋ฌธ ๋Œ๋ฆฌ๊ธฐ

Intro ์•ˆ๋…•ํ•˜์„ธ์š”. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ์ฝ”ํ‹€๋ฆฐ์—์„œ ์‹œ์ž‘์ผ๋ถ€ํ„ฐ ์ข…๋ฃŒ์ผ๊นŒ์ง€ ํ•˜๋ฃจ์”ฉ ์ฆ๊ฐ€์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. How to do datesUntil() ๋ฉ”์„œ๋“œ์™€, plusDays() ๋ฉ”์„œ๋“œ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์‹œ์ž‘์ผ๋ถ€ํ„ฐ ์ข…๋ฃŒ์ผ๊นŒ์ง€ 1์”ฉ ์ฆ๊ฐ€์‹œ์ผœ์ค๋‹ˆ๋‹ค. /** * You can edit, run, and share this code. * play.kotlinlang.org */ import java.time.LocalDate; fun main() { LocalDate.of(2023, 1, 14) .datesUntil(LocalDate.of(2023, 1, 19).plusDays(1)) .forEach { it -> println(it) } } ์ฝ”๋“œ ์‹คํ–‰ ๊ฒฐ๊ณผ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. 2023-01-14 2023-0..

Programming/Kotlin 2023.01.14
๋ฐ˜์‘ํ˜•