2023๋…„ 3์›” 21์ผ JDK 20์ด ๋ฆด๋ฆฌ์ฆˆ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
ยท
Languages/JAVA
JDK 20 ๋ฆด๋ฆฌ์ฆˆ 2023๋…„ 3์›” 21์ผ JDK 20์ด ๋ฆด๋ฆฌ์ฆˆ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฆด๋ฆฌ์Šค์—๋Š” ์ƒˆ๋กœ์šด ํ”„๋ฆฌ๋ทฐ ๋ฐ ์ธํ๋ฒ ์ด์…˜ ๋ผ์šด๋“œ์™€ ํ•จ๊ป˜ Project Amber , Project Loom ๋ฐ Project Panama ์— ๋Œ€ํ•œ ์ง€์†์ ์ธ ๊ธฐ์—ฌ๋ฅผ ์ œ๊ณตํ•˜๋Š” JEP๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค . ์—ฌ๊ธฐ์—์„œ ์ด๋Ÿฌํ•œ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ค‘ ๋ช‡ ๊ฐ€์ง€๋ฅผ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค. JDK 20์—๋Š” Project Valhalla๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” JEP๊ฐ€ ์—†๋‹ค๋Š” ์ ์€ ์ฃผ๋ชฉํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค . Oracle์€ Java ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๋ฐ ๊ฐ€์ƒ ๋จธ์‹  ๋ฒ„์ „ 20 ์„ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค . ์ด ์ตœ์ข… ๊ธฐ๋Šฅ ์„ธํŠธ์˜ 7๊ฐœ JEP์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. JEP 429: ๋ฒ”์œ„ ๊ฐ’(์ธํ๋ฒ ์ดํ„ฐ) JEP 429: Scoped Values (Incubator) JEP 429: Scoped ..
[html] iframe ์†์„ฑ ๋ฐ ์‚ฌ์šฉ๋ฒ• ์ •๋ฆฌ
ยท
Languages/Html
: ์ธ๋ผ์ธ ํ”„๋ ˆ์ž„ ์š”์†Œ HTML ์š”์†Œ๋Š” ์ค‘์ฒฉ ๋ธŒ๋ผ์šฐ์ง• ๋งฅ๋ฝ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์š”์†Œ๋กœ, ํ˜„์žฌ ๋ฌธ์„œ ์•ˆ์— ๋‹ค๋ฅธ HTML ํŽ˜์ด์ง€๋ฅผ ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค. ์‹œ๋„ํ•ด๋ณด๊ธฐ ์‚ฝ์ž…๋œ ๋ธŒ๋ผ์šฐ์ง• ๋งฅ๋ฝ์€ ๊ฐ์ž ์ž์‹ ๋งŒ์˜ ์„ธ์…˜ ๊ธฐ๋ก๊ณผ ๋ฌธ์„œ๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ธŒ๋ผ์šฐ์ง• ๋งฅ๋ฝ์„ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” ๋งฅ๋ฝ์€ "๋ถ€๋ชจ ๋ธŒ๋ผ์šฐ์ง• ๋งฅ๋ฝ"์ด๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ๋ถ€๋ชจ๋ฅผ ๊ฐ€์ง€์ง€ ์•Š๋Š”, ์ฆ‰ ์ตœ์ƒ์œ„ ๋ธŒ๋ผ์šฐ์ง• ๋งฅ๋ฝ์€ ๋Œ€๊ฐœ ๋ธŒ๋ผ์šฐ์ € ์ฐฝ์œผ๋กœ์„œ, Window ๊ฐ์ฒด๋กœ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๊ฒฝ๊ณ : ๊ฐ๊ฐ์˜ ๋ธŒ๋ผ์šฐ์ง• ๋งฅ๋ฝ์€ ์™„์ „ํ•œ ๋ฌธ์„œ ํ™˜๊ฒฝ์ด๋ฏ€๋กœ, ํŽ˜์ด์ง€์— ์„ ์ถ”๊ฐ€ํ•  ๋•Œ๋งˆ๋‹ค ๋ฉ”๋ชจ๋ฆฌ ๋ฐ ๊ธฐํƒ€ ์ปดํ“จํ„ฐ ์ž์› ์‚ฌ์šฉ๋Ÿ‰์ด ๋Š˜์–ด๋‚ฉ๋‹ˆ๋‹ค. ์ด๋ก ์ƒ์œผ๋กœ๋Š” ์›ํ•˜๋Š” ๋งŒํผ ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์„ฑ๋Šฅ ๋ฌธ์ œ๊ฐ€ ์—†๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”. allow ์— ๋Œ€ํ•œ ๊ธฐ๋Šฅ ์ •์ฑ…์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ •์ฑ…์€ ์š”์ฒญ์˜ ์ถœ์ฒ˜(์˜ˆ: ๋งˆ์ดํฌ, ์นด๋ฉ”๋ผ, ๋ฐฐํ„ฐ๋ฆฌ, ์›น..
TypeScript๋ž€?
ยท
Languages/TypeScript
ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ž€? ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ ๊ทธ ์ด์ƒ TypeScript๋Š” ํŽธ์ง‘๊ธฐ์™€์˜ ๊ธด๋ฐ€ํ•œ ํ†ตํ•ฉ์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด JavaScript์— ์ถ”๊ฐ€ ๊ตฌ๋ฌธ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ํŽธ์ง‘๊ธฐ ์ดˆ๊ธฐ์— ์˜ค๋ฅ˜๋ฅผ ํฌ์ฐฉํ•ฉ๋‹ˆ๋‹ค. ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฐ๊ณผ TypeScript ์ฝ”๋“œ๋Š” JavaScript๋กœ ๋ณ€ํ™˜๋˜์–ด JavaScript๊ฐ€ ์‹คํ–‰๋˜๋Š” ๋ชจ๋“  ๊ณณ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค : ๋ธŒ๋ผ์šฐ์ €, Node.js ๋˜๋Š” Deno ๋ฐ ์•ฑ์—์„œ. ๋Œ€๊ทœ๋ชจ์—์„ฑ์˜ ์•ˆ์ „ TypeScript๋Š” JavaScript๋ฅผ ์ดํ•ดํ•˜๊ณ  ์œ ํ˜• ์ถ”๋ก ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ถ”๊ฐ€ ์ฝ”๋“œ ์—†์ด ํ›Œ๋ฅญํ•œ ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ์œ„ํ•œ ์œ ํ˜• ์Šคํฌ๋ฆฝํŠธ TypeScript๋Š” JavaScript์™€ ํŠน์ดํ•œ ๊ด€๊ณ„์— ์žˆ์Šต๋‹ˆ๋‹ค. TypeScript๋Š” JavaScript์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ๊ณผ TypeScript์˜ ์œ ํ˜• ์‹œ์Šคํ…œ ์œ„์— ์ถ”..
Kotlin ์ด๋ž€
ยท
Languages/Kotlin
Kotlin์€ ๊ฐ„๊ฒฐํ•˜๊ณ  ์•ˆ์ „ํ•˜๋ฉฐ ์œ ์ง€ ๊ด€๋ฆฌ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ๋ฅผ ๋” ์‰ฝ๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์ตœ์‹  ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ์€ Kotlin์˜ ๊ฐ€์žฅ ์œ ์šฉํ•œ ๊ธฐ๋Šฅ ์ค‘ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค. Null ์•ˆ์ „์„ฑ: Kotlin์—๋Š” ์ปดํŒŒ์ผ ํƒ€์ž„์— null ํฌ์ธํ„ฐ ์˜ˆ์™ธ๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ์œ ํ˜• ์‹œ์Šคํ…œ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜ ์—†์ด null ๊ฐ’์„ ์‰ฝ๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” nullable ํ˜•์‹ ์‹œ์Šคํ…œ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ ์ฝ”๋“œ์˜ ์•ˆ์ „์„ฑ๊ณผ ์‹ ๋ขฐ์„ฑ์„ ๊ฐœ์„ ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ํ™•์žฅ ํ•จ์ˆ˜: Kotlin์˜ ํ™•์žฅ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐœ๋ฐœ์ž๊ฐ€ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ ๋„ ๊ธฐ์กด ํด๋ž˜์Šค์— ์ƒˆ ํ•จ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋” ๊ฐ„๊ฒฐํ•˜๊ณ  ์ฝ๊ธฐ ์‰ฌ์šด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ฝ”๋“œ ์ค‘๋ณต์„ ์ค„์ด๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜..
[Python] Tensorflow 2 ๊ฐœ๋ฐœํ™˜๊ฒฝ ์…‹ํŒ… on Windows 11
ยท
Languages/Python
PS C:\Users\aaa> python Python 3.11.0 (main, Oct 24 2022, 18:26:48) [MSC v.1933 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import struct >>> print(struct.calcsize("P")*8) 64 PS C:\Users\aaa> choco install cuda Chocolatey v1.2.1 Installing the following packages: cuda By installing, you accept licenses for the packages. Progress: Downloadin..
[javascript] object ๋‚ด์— json string์„ object๋กœ ๋ณ€ํ™˜
ยท
Languages/JavaScript
toJson(target :any) { Object.keys(target).forEach(function (key: string) { try { target[key] = JSON.parse(target[key]); } catch (e) { target[key] = target[key]; } }); return target; }
[kotlin]let ์—ฌ๋Ÿฌ๊ฐœ ์ฒดํฌํ•˜๊ธฐ
ยท
Languages/Kotlin
ํ•ด๋‹น ๋ฐฉ๋ฒ•์„ ์›ํ• ๋• ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. inline fun safeLet(p1: T1?, p2: T2?, block: (T1, T2)->R?): R? { return if (p1 != null && p2 != null) block(p1, p2) else null } inline fun safeLet(p1: T1?, p2: T2?, p3: T3?, block: (T1, T2, T3)->R?): R? { return if (p1 != null && p2 != null && p3 != null) block(p1, p2, p3) else null } inline fun safeLet(p1: T1?, p2: T2?, p3: T3?, p4: T4?, block: (T1, T2, T3, T4)->R?): R? ..
[Kotlin] java static method ์ฝ”ํ‹€๋ฆฐ ๋ฌธ๋ฒ•
ยท
Languages/Kotlin
์ž๋ฐ” : class Foo { public static int a() { return 1; } } ์ฝ”ํ‹€๋ฆฐ : class Foo { companion object { fun a() : Int = 1 } } From the docs: https://kotlinlang.org/docs/reference/object-declarations.html#companion-objects kotlinlang.org Companion Objects An object declaration inside a class can be marked with the companion keyword: class MyClass { companion object Factory { fun create(): MyClass = MyClass()..
[Kotlin] ์ฝ”ํ‹€๋ฆฐ val์™€ var ์ฐจ์ด
ยท
Languages/Kotlin
val(๊ฐ’์„ ๋œปํ•˜๋Š” value) ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅํ•œ ์ฐธ์กฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ณ€์ˆ˜๋‹ค. val๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋Š” ์ผ๋‹จ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  ๋‚˜๋ฉด ์žฌ๋Œ€์ž…์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ์ž๋ฐ”๋กœ ๋งํ•˜์ž๋ฉด final ๋ณ€์ˆ˜์— ํ•ด๋‹นํ•œ๋‹ค. var(๋ณ€์ˆ˜๋ฅผ ๋œปํ•˜๋Š” variable) ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ ์ฐธ์กฐ๋‹ค. ์ด๋Ÿฐ ๋ณ€์ˆ˜์˜ ๊ฐ’์€ ๋ฐ”๋€” ์ˆ˜ ์žˆ๋‹ค. ์ž๋ฐ”์˜ ์ผ๋ฐ˜ ๋ณ€์ˆ˜์— ํ•ด๋‹นํ•œ๋‹ค. ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅํ•œ ์ฐธ์กฐ์™€ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด๋ฅผ ๋ถ€์ˆ˜ ํšจ๊ณผ๊ฐ€ ์—†๋Š” ํ•จ์ˆ˜์™€ ์กฐํ•ฉํ•ด ์‚ฌ์šฉํ•˜๋ฉด ์ฝ”๋“œ๊ฐ€ ํ•จ์ˆ˜ํ˜• ์ฝ”๋“œ์— ๊ฐ€๊นŒ์›Œ์ง„๋‹ค. ์ฝ”ํ‹€๋ฆฐ ์ธ์•ก์…˜ - 65p
[Nodejs] NPM ์„ค์น˜๋œ ํŒจํ‚ค์ง€ ๋ฆฌ์ŠคํŠธ ํ™•์ธ
ยท
Languages/JavaScript
npm list -g --depth=0 npm: ๋…ธ๋“œ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ ํ•ด์ฃผ๋Š” ํˆด ์ž…๋‹ˆ๋‹ค. list -g: ์„ค์น˜๋œ ํŒจํ‚ค์ง€๋ฅผ ํŠธ๋ฆฌํ˜•ํƒœ๋กœ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ( -g ์˜ต์…˜์ด ์—†์œผ๋ฉด ํ˜„์žฌ ํด๋”์— ์„ค์น˜๋œ ํŒจํ‚ค์ง€๋งŒ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.) depth 0 / โ€” depth=0: ํŒจํ‚ค์ง€์— ์˜์กด์„ฑ์ด ๊ฑธ๋ฆฐ ๋ชจ๋“  ํŒจํ‚ค์ง€๋ฅผ ๋ณด์—ฌ์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ณ ๋กœ ์ตœ์ƒ๋‹จ ํŠธ๋ฆฌ์˜ ํŒจํ‚ค์ง€๋งŒ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.