zxcev
๐Ÿท๏ธ Tags
๐Ÿ”Ž Search
๐Ÿ“‚ All Posts

Flutter์˜ ๋ฏธ๋ž˜์— ๋Œ€ํ•œ ๊ฐœ์ธ์ ์ธ ์ƒ๊ฐ

Dec 2, 2023

์ตœ๊ทผ Flutter์— ํฅ๋ฏธ๊ฐ€ ์ƒ๊ฒจ์„œ ์กฐ๊ธˆ์”ฉ ๊ณต๋ถ€๋ฅผ ํ•˜๊ณ  ์žˆ๋‹ค. Flutter๋Š” ํ˜„์žฌ ๊ฐ€์žฅ ์ฃผ๋ชฉ๋ฐ›๋Š” ๋ฏธ๋ž˜์˜ ํฌ๋กœ์Šค ํ”Œ๋žซํผ ์•ฑ ํ”„๋ ˆ์ž„์›Œํฌ์ด๋ฉฐ, ์•ˆ๋“œ๋กœ์ด๋“œ, iOS, ์œˆ๋„์šฐ, ๋ฆฌ๋ˆ…์Šค, macOS, Web(ํ˜„์žฌ๋Š” ๋งค์šฐ ์ œํ•œ์ ), ์ž„๋ฒ ๋””๋“œ ๋“ฑ, ๋‹ค์–‘ํ•œ ํ™˜๊ฒฝ์—์„œ ๋™์ž‘ํ•˜๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ•˜๋‚˜์˜ ์ฝ”๋“œ ๋ฒ ์ด์Šค๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ๊ณผ, ์„ธ๊ณ„ ์ตœ๊ณ ์˜ ๊ธฐ์—… ์ค‘ ํ•˜๋‚˜์ธ ๊ตฌ๊ธ€์ด ๋’ค๋ฅผ ๋ด์ค€๋‹ค๋Š” ๊ฒƒ์ด ๋งค๋ ฅ์œผ๋กœ ๋‹ค๊ฐ€์™”๋‹ค. Flutter์— ์‚ฌ์šฉ๋˜๋Š” ์–ธ์–ด์ธ Dart์™€ ๋ฏธ๋ž˜์˜ OS Fuchsia์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ๊ฐœ์š”๋ฅผ ์•Œ์•„๋ณด๊ณ , ์™œ Flutter๊ฐ€ ๋ฏธ๋ž˜์ธ์ง€์— ๋Œ€ํ•œ ์ƒ๊ฐ์„ ๋‚จ๊ฒจ๋‘๋ ค๊ณ  ํ•œ๋‹ค.

Flutter

Dto, Domain์˜ ๋ณ€ํ™˜ ์œ„์น˜์— ๋Œ€ํ•ด์„œ

Nov 5, 2023

๋„๋ฉ”์ธ ๊ฐ์ฒด๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์ฒ˜๋ฆฌ, DTO๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก ์ด๋ผ๋Š” ๋ชฉ์ ์ด ์กด์žฌํ•œ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์•ž์„œ ์‚ดํŽด๋ดค๋˜ ๋‘ ๋ฐฉ๋ฒ•์€ ๋ชจ๋‘, '๋ณ€ํ™˜'์ด๋ผ๋Š” ๋‹ค๋ฅธ ์—ญํ• ์„ ๋‘˜ ์ค‘ ํ•˜๋‚˜์— ์ถ”๊ฐ€์ ์œผ๋กœ ๋ถ€์—ฌํ–ˆ๋‹ค. '์—ญํ•  ๋ถ„๋ฆฌ' ๊ด€์ ์—์„œ ๋ณด๋ฉด ํ•˜๋‚˜์˜ ๊ฐ์ฒด์— ํ•œ ๊ฐ€์ง€ ์—ญํ• ๋งŒ ๋ถ€์—ฌํ•ด์•ผ ํ•˜๋Š” SRP๊ฐ€ ์œ„๋ฐฐ๋œ ๊ฒƒ์ด๋‹ค. ์šฐ์•„ํ•œ ํ…Œํฌ์ฝ”์Šค 5๊ธฐ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ฐธ๊ณ ํ•ด๋ณด๋‹ˆ, '๋ณ€ํ™˜'์ด๋ผ๋Š” ์—ญํ• ์„ Mapper๋ผ๋Š” ํด๋ž˜์Šค์— ์œ„์ž„ํ•˜๋„๋ก ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์—ˆ๋‹ค.

Java

Java, Kotlin์˜ ์ ‘๊ทผ ์ œ์–ด์ž ๊ฐœ๋… ์žฌ์ •๋ฆฝ

Nov 1, 2023

default, protected๋Š” ์ž˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๊ณต๋ถ€ํ•  ๋•Œ ๋ช‡ ๋ฒˆ ๋ณด๊ณ  ๊ฐ๊ฐ์ ์œผ๋กœ ์‚ฌ์šฉํ•ด ์™”์—ˆ๋Š”๋ฐ, ์ด๋ฒˆ์— ์šฐ์•„ํ•œ ํ…Œํฌ์ฝ”์Šค ๋ฏธ์…˜์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์ž˜๋ชป ์ดํ•ดํ•˜๊ณ  ์žˆ๋˜ ๋ถ€๋ถ„์ด ์žˆ์–ด์„œ ๋‹ค์‹œ ํ•œ ๋ฒˆ ์งš๊ณ  ๋„˜์–ด๊ฐ€๋ ค๊ณ  ํ•œ๋‹ค.

Kotlin
Java

ํ”„๋ก ํŠธ๋ฅผ ์œ„ํ•œ JS Class ์›๋ฆฌ4

Oct 28, 2023

getter, setter๋Š” ํ•„๋“œ์— ์ง์ ‘ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด ํ•œ ๋ฒˆ ์šฐํšŒํ•ด์„œ ์ฝ๊ณ  ์“ฐ๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๊ฐ์ฒด ์ƒ์„ฑ ์‹œ์—๋Š” constructor์—์„œ, ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ์‹œ์—๋Š” setter์—์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ์œ ํšจํ•œ์ง€ ๊ฒ€์ฆํ•ด์„œ ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋ถ€ํ„ฐ ์†Œ๋ฉธ ์‹œ์ ๊นŒ์ง€ ์œ ํšจํ•จ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

JavaScript

ํ”„๋ก ํŠธ๋ฅผ ์œ„ํ•œ JS Class ์›๋ฆฌ3

Oct 28, 2023

์ง€๋‚œ ์‹œ๊ฐ„ ๋งˆ์ง€๋ง‰์— ๋ดค๋˜ __proto__์— ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ๋ถ„๋“ค์—๊ฒŒ ๋‘๋ ค์šด ์กด์žฌ๋กœ ๋‚จ์„ ๊ฒƒ ๊ฐ™์•„์„œ class์™€ __proto__๋ฅผ ์ง๊ด€์ ์œผ๋กœ ๋ฐ›์•„๋“ค์ผ ์ˆ˜ ์žˆ๋„๋ก ๋ณด์—ฌ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด ํด๋ž˜์Šค๋ฅผ ์ž‘์„ฑํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

JavaScript

ํ”„๋ก ํŠธ๋ฅผ ์œ„ํ•œ JS Class ์›๋ฆฌ2

Oct 27, 2023

๊ฐ์ฒด์ง€ํ–ฅ์—์„œ '๊ฐ์ฒด'๋ผ๋Š” ๊ฒƒ์€ ํ˜„์‹ค ์„ธ๊ณ„์˜ ์‚ฌ๋ฌผ์„ ์ฝ”๋“œ๋กœ ์˜ฎ๊ธด ๊ฒƒ์ด๋ฉฐ, '์‚ฌ๋ฌผ'์ด๋ผ๊ณ  ํ•˜๋ฉด ๋ฌด์ƒ๋ฌผ์„ ๋œปํ•˜๋Š” ๊ฒƒ ๊ฐ™์ง€๋งŒ, ๊ฐ์ฒด์ง€ํ–ฅ์—์„œ๋Š” '์ƒ๋ฌผ'์กฐ์ฐจ๋„ ๊ฐ์ฒด์— ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ Person์ด๋ผ๋Š” ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์—ˆ๋˜ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ˜„์‹ค ์„ธ๊ณ„์˜ ๊ฐ์ฒด๋Š” ์†์„ฑ๊ณผ ํ–‰๋™์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

JavaScript

ํ”„๋ก ํŠธ๋ฅผ ์œ„ํ•œ JS Class ์›๋ฆฌ1

Oct 27, 2023

๋ถ€๋ถ„์˜ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž ๋ถ„๋“ค์€ JS๋กœ ์‹œ์ž‘ํ•ด์„œ TS์— ์ •์ฐฉํ–ˆ๊ฑฐ๋‚˜ ์•„์ง TS๋ฅผ ๋งŒ๋‚˜๊ธฐ ์ „์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํŠน๋ณ„ํ•œ ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด React๋ฅผ ๋ฉ”์ธ ๊ธฐ์ˆ  ์Šคํƒ์œผ๋กœ ์žก์œผ์…จ์„ํ…๋ฐ, ์›ฌ๋งŒํ•˜๋ฉด class๋ฅผ ์‚ฌ์šฉํ•  ์ผ์ด ์•„์˜ˆ ์—†์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. React๊ฐ€ class ์ปดํฌ๋„ŒํŠธ์—์„œ ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ๋กœ ์ „ํ™˜ํ•œ์ง€ ์˜ค๋ž˜ ๋˜์—ˆ๊ณ , ์—ฌ์ „ํžˆ class ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜์•ผ ์žˆ๋‹ค์ง€๋งŒ ๊ฑฐ์˜ ์‚ฌ์žฅ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

JavaScript

[Java] ์šฐ์•„ํ•œํ…Œํฌ์ฝ”์Šค 1์ฃผ์ฐจ ๋ฏธ์…˜ ๊ตฌํ˜„ 1์ฐจ ๋ฆฌํŒฉํ† ๋ง ๊ณผ์ •

Oct 26, 2023

์šฐ์•„ํ•œํ…Œํฌ์ฝ”์Šค 6๊ธฐ 1์ฃผ์ฐจ 1์ฐจ ๋ฆฌํŒฉํ† ๋ง๊นŒ์ง€์˜ ๋ฏธ์…˜ ๊ตฌํ˜„ ๊ณผ์ • ๊ธฐ๋ก

Java
์šฐํ…Œ์ฝ”

[Kotlin] ์šฐ์•„ํ•œํ…Œํฌ์ฝ”์Šค 1์ฃผ์ฐจ ๋ฏธ์…˜ ๊ตฌํ˜„ ์ƒ์„ธ ๊ณผ์ • ๊ธฐ๋ก 1ํŽธ

Oct 26, 2023

์šฐ์•„ํ•œํ…Œํฌ์ฝ”์Šค 6๊ธฐ ํ”„๋ฆฌ์ฝ”์Šค 1์ฃผ์ฐจ ๋ฏธ์…˜์œผ๋กœ '์ˆซ์ž ์•ผ๊ตฌ ๊ฒŒ์ž„'์„ ์ง„ํ–‰ํ•˜๋ฉฐ ์—ฌ๋Ÿฌ ๋ฒˆ์˜ ๋ฆฌํŒฉํ† ๋ง์„ ์ง„ํ–‰ํ•ด๋ณด๋Š” ์ค‘์ธ๋ฐ, ๊ทธ ๊ณผ์ •์„ ๋ณต๊ธฐํ• ๊ฒธ ๊ธฐ๋กํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ๋ฐฑ์—”๋“œ๋กœ ์ง€์›ํ–ˆ์ง€๋งŒ ์ฝ”ํ‹€๋ฆฐ์— ํฅ๋ฏธ๊ฐ€ ์žˆ๊ธฐ๋„ ํ•˜๊ณ  ์ง€์›์ž ์ˆ˜๊ฐ€ ๊ฑฐ์˜ 10๋ฐฐ ์ฐจ์ด๊ฐ€ ๋‚˜์„œ ์ž๋ฐ”๋ณด๋‹ค๋Š” ์ฝ”ํ‹€๋ฆฐ ์ž๋ฃŒ๊ฐ€ ํ›จ์”ฌ ๋ถ€์กฑํ•  ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ•˜์—ฌ ๊ธ€์€ ์ฝ”ํ‹€๋ฆฐ์œผ๋กœ ์ž‘์„ฑํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค.

์šฐํ…Œ์ฝ”
Kotlin

์˜ˆ์™ธ์˜ ๋‹จ์ , ์˜ˆ์™ธ ์—†๋Š” ์˜ˆ์™ธ ์ƒํ™ฉ ์ฒ˜๋ฆฌ ๋ฐ ์ตœ์ ํ™”

Oct 23, 2023

Java๋Š” Exception์„ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด ์ค‘ ํ•˜๋‚˜์ธ ๊ฒƒ์œผ๋กœ ๋ณด์ธ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์ž˜๋ชป๋œ ์ž…๋ ฅ์„ ํ•˜๊ฑฐ๋‚˜, String->Integer ๋ณ€ํ™˜์— ์‹คํŒจํ•˜๋Š” ๋“ฑ์˜ ์ƒํ™ฉ์—์„œ๋„ IllegalArgumentException , NumberFormatException ๋“ฑ์˜ ์ ์ ˆํ•œ ์˜ˆ์™ธ๊ฐ€ ์ž˜ ๊ฐ–์ถฐ์ ธ ์žˆ๋‹ค. ์ผ์ƒ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” Exception์€ ์˜ˆ์™ธ ์ƒํ™ฉ์— ๋งž์ถฐ ์ ์ ˆํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๊ณ ๋งˆ์šด ์กด์žฌ์ด๊ธฐ๋„ ํ•˜์ง€๋งŒ, ํ•œํŽธ์œผ๋กœ๋Š” ์ƒ๋‹นํžˆ ๋น„์šฉ์ด ํฐ ์ž‘์—…์ด๊ธฐ๋„ ํ•˜๋‹ค.

Java

[Kotlin] ๊ฐ์ฒด ์ง€ํ–ฅ๊ณผ 4๋Œ€ ํŠน์„ฑ

Oct 22, 2023

์‚ฐ์ฑ…์„ ๋‚˜๊ฐ€์„œ ์ฃผ๋ณ€์„ ๋‘˜๋Ÿฌ๋ณด๋ผ. ์ฃผ์œ„์— ๋ฌด์—‡์ด ๋ณด์ด๋Š”๊ฐ€. ๋‹น์‹ ์ด ์‚ฌ๋Š” ๊ณณ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒ ์ง€๋งŒ, ์ผ๋ฐ˜์ ์œผ๋กœ๋Š” ์ž๋™์ฐจ, ๋‚˜๋ฌด, ํ–‰์ธ, ์•„ํŒŒํŠธ ๋“ฑ์ด ์‰ฝ๊ฒŒ ๋ณด์ผ ๊ฒƒ์ด๋‹ค. ์ธ๊ฐ„์ด ์„ธ์ƒ์„ ์ธ์‹ํ•˜๋Š” ๋‹จ์œ„๋Š” ์œ„์™€ ๊ฐ™์ด ์‚ฌ๋ฌผ ๋‹จ์œ„๋‹ค. ์‚ฌ๋ฌผ์ด๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ์ƒ๋ช…์ฒด๊ฐ€ ์•„๋‹Œ ๋ฌผ๊ฑด์„ ๋œปํ•˜๋Š” ์˜๋ฏธ๋กœ ์ƒ๊ฐ๋  ์ˆ˜๋„ ์žˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์•„๋ž˜ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ์˜ 2๋ฒˆ์งธ ์˜๋ฏธ๋กœ ๋ฐ›์•„๋“ค์ด์ž.

Kotlin
OOP

C, Java์˜ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜

Sep 24, 2023

๋งค์šฐ ๊ฐ„๋‹จํ•˜์ง€๋งŒ ๊ทธ๋งŒํผ ์‹ค์ˆ˜ํ•˜๊ธฐ ์‰ฌ์›Œ์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜ ์ค‘ ํ•˜๋‚˜์ธ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜์— ๋Œ€ํ•ด์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์•Œ์•„๋ณด์ž. ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋Š” C, C++ ๋“ฑ์˜ Unmanaged Language์™€ Python, Java ๋“ฑ์˜ Managed Language ๋ชจ๋‘์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ Managed Language๋Š” Garbage Collector์— ์˜ํ•ด์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ž๋™์œผ๋กœ ํ•ด์ œํ•ด์ค€๋‹ค๊ณ  ์•Œ๋ ค์ ธ ์žˆ๋Š”๋ฐ, ์–ด๋–ป๊ฒŒ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ•œ ๋ฒˆ ์ฐจ๊ทผ์ฐจ๊ทผ ์•Œ์•„๋ณด๊ฒ ๋‹ค.

Memory
Java
C

[์šฐํ…Œ์ฝ” ๋ฏธ์…˜ ์—ฐ์Šต] 7. ํŽ˜์–ด ๋งค์นญ

Sep 17, 2023

๋ฏธ๋ฆฌ ์ƒ์„ฑ๋œ ํ”„๋ก ํŠธ์—”๋“œ, ๋ฐฑ์—”๋“œ ํฌ๋ฃจ๋ช…์ด resources ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด์— ์œ„์น˜ํ•˜๊ณ  ์žˆ๋‹ค. ํ”„๋ก ํŠธ, ๋ฐฑ์—”๋“œ ํฌ๋ฃจ๋ช…์„ ํŒŒ์ผ์—์„œ ์ฝ์–ด์™€์„œ List<String> ํƒ€์ž…์œผ๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ž‘์„ฑํ–ˆ๋‹ค.

์šฐํ…Œ์ฝ”

[์šฐํ…Œ์ฝ” ๋ฏธ์…˜ ์—ฐ์Šต] 6. ์žํŒ๊ธฐ

Sep 14, 2023

์šฐ์•„ํ•œ ํ…Œํฌ์ฝ”์Šค 4๊ธฐ ํ”„๋ฆฌ์ฝ”์Šค 3์ฃผ์ฐจ ์žํŒ๊ธฐ ๋ฏธ์…˜์„ ๋งŒ๋“ค์–ด๋ณด์ž. https://github.com/woowacourse/java-vendingmachine-precourse ์—ฐ์Šตํ•  ๋•Œ๋Š” ์œ„ Repository์—์„œ ๋นˆ ํ”„๋กœ์ ํŠธ๋ฅผ fork ํ˜น์€ clone ํ•˜์—ฌ ์ง„ํ–‰ํ•˜๋ฉด ๋œ๋‹ค. https://github.com/mainfn/java-vendingmachine-precourse ๋ณธ ๊ธ€์— ์‚ฌ์šฉ๋œ ์ฝ”๋“œ์˜ ์™„์„ฑ๋ณธ์€ ์œ„ Repository์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์šฐํ…Œ์ฝ”

[์šฐํ…Œ์ฝ” ๋ฏธ์…˜ ์—ฐ์Šต] 5. ๋ฉ”๋‰ด ์ถ”์ฒœ

Sep 13, 2023

๋ฏธ์…˜์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๊ฐ€์žฅ ์–ด๋ ค์šด ๋ถ€๋ถ„์ด ๊ธฐ๋Šฅ ๊ตฌํ˜„์„ ์ •ํ™•ํžˆ ์ดํ•ดํ•˜๊ณ  ์ œ๋Œ€๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๋ถ€๋ถ„์ธ ๊ฒƒ ๊ฐ™๋‹ค. ์ด ๋ถ€๋ถ„์„ ์ œ๋Œ€๋กœ ์ˆ™์ง€ํ•˜์ง€ ๋ชปํ•˜๋ฉด ์™„์„ฑ์— ๊ฐ€๊นŒ์›Œ์ ธ์„œ์•ผ ์ž˜๋ชป๋œ ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜๊ณ , ์ž‘์„ฑํ•œ ์ฝ”๋“œ์˜ ๋Œ€๋ถ€๋ถ„์„ ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋Š” ์ฐธ์‚ฌ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์šฐํ…Œ์ฝ”

[์šฐํ…Œ์ฝ” ๋ฏธ์…˜ ์—ฐ์Šต] 4. ๋‹ค๋ฆฌ ๊ฑด๋„ˆ๊ธฐ

Sep 8, 2023

์ด๋ฒˆ์— ๋งŒ๋“ค์–ด์•ผ ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์€ ๋‹ค๋ฆฌ ๊ฑด๋„ˆ๊ธฐ ๊ฒŒ์ž„์ด๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค๋ฆฌ์˜ ๊ธธ์ด N ์„ ์ž…๋ ฅํ•˜๋ฉด ๊ธธ์ด๊ฐ€ N ์ธ ๋‹ค๋ฆฌ๊ฐ€ ๋งŒ๋“ค์–ด์ง€๊ณ , ๋‹ค๋ฆฌ๋Š” List ํ˜•ํƒœ๋กœ ํ‘œํ˜„ํ•˜๋ฉฐ, ๊ฐ ์š”์†Œ๋Š” ์œ„, ์•„๋ž˜ ์ค‘ ํ•˜๋‚˜์˜ ์œ„์น˜๋ฅผ ์ €์žฅํ•œ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ "U" , "D" ์ค‘ ํ•˜๋‚˜์˜ ๋ฌธ์ž๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ํ•œ ์นธ์”ฉ ์ „์ง„ ํ•˜๋ฉด์„œ ๋‹ค๋ฆฌ์— ์ €์žฅ๋œ ์œ„์น˜์™€ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ , ๋งž์œผ๋ฉด "O" ๋ฅผ ๊ธฐ๋กํ•˜๊ณ , ํ‹€๋ฆฌ๋ฉด "X" ๋ฅผ ๊ธฐ๋กํ•œ๋‹ค.

์šฐํ…Œ์ฝ”

[์šฐํ…Œ์ฝ” ๋ฏธ์…˜ ์—ฐ์Šต] 3. ๋กœ๋˜

Sep 5, 2023

์šฐ์•„ํ•œ ํ…Œํฌ์ฝ”์Šค 4๊ธฐ ํ”„๋ฆฌ์ฝ”์Šค 3์ฃผ์ฐจ ๋ฏธ์…˜์ธ ๋กœ๋˜ ๋ฏธ์…˜์„ ๊ตฌํ˜„ ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. https://github.com/woowacourse-precourse/java-lotto ์—ฐ์Šตํ•  ๋•Œ๋Š” ์œ„ Repository์—์„œ ๋นˆ ํ”„๋กœ์ ํŠธ๋ฅผ fork ํ˜น์€ clone ํ•˜์—ฌ ์ง„ํ–‰ํ•˜๋ฉด ๋œ๋‹ค.

์šฐํ…Œ์ฝ”

[์šฐํ…Œ์ฝ” ๋ฏธ์…˜ ์—ฐ์Šต] 2. ์ˆซ์ž ์•ผ๊ตฌ ๊ฒŒ์ž„

Sep 3, 2023

์ž๋™์ฐจ ๊ฒฝ์ฃผ ๊ฒŒ์ž„์— ์ด์–ด ์ˆซ์ž ์•ผ๊ตฌ ๊ฒŒ์ž„์„ ๋งŒ๋“ค์–ด ๋ณด๋ ค๊ณ  ํ•œ๋‹ค. https://github.com/woowacourse/java-baseball-precourse ์œ„ ๊นƒํ—ˆ๋ธŒ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ clone or fork ํ•˜์—ฌ ์ง„ํ–‰ํ•˜๋ฉด ๋œ๋‹ค.

์šฐํ…Œ์ฝ”

[์šฐํ…Œ์ฝ” ๋ฏธ์…˜ ์—ฐ์Šต] 1. ์ž๋™์ฐจ ๊ฒฝ์ฃผ ๊ฒŒ์ž„

Sep 1, 2023

์šฐ์•„ํ•œ ํ…Œํฌ์ฝ”์Šค 6๊ธฐ๋ฅผ ์ค€๋น„ํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๋ฏธ์…˜์„ ์—ฐ์Šต ์‚ผ์•„ ๋งŒ๋“ค์–ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ์—ฐ์Šตํ•  ๋•Œ๋Š” java-racingcar-precourse Repository๋ฅผ fork ํ˜น์€ clone ํ•˜์—ฌ ์ง„ํ–‰ํ•˜๋ฉด ๋œ๋‹ค.

์šฐํ…Œ์ฝ”

Spring์˜ 3๊ฐ€์ง€ DI ๋ฐฉ๋ฒ•

Aug 31, 2023

Spring

[Design Pattern] Template Method Pattern

Jul 5, 2023

GOF ๋””์ž์ธ ํŒจํ„ด์—์„œ๋Š” ํ…œํ”Œ๋ฆฟ ๋ฉ”์„œ๋“œ ํŒจํ„ด์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜ํ–ˆ๋‹ค.ํ…œํ”Œ๋ฆฟ ๋ฉ”์„œ๋“œ ๋””์ž์ธ ํŒจํ„ด์˜ ๋ชฉ์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. "์ž‘์—…์—์„œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ณจ๊ฒฉ์„ ์ •์˜ํ•˜๊ณ  ์ผ๋ถ€ ๋‹จ๊ณ„๋ฅผ ํ•˜์œ„ ํด๋ž˜์Šค๋กœ ์—ฐ๊ธฐํ•ฉ๋‹ˆ๋‹ค. ํ…œํ”Œ๋ฆฟ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ•˜์œ„ ํด๋ž˜์Šค๊ฐ€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ตฌ์กฐ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ ๋„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํŠน์ • ๋‹จ๊ณ„๋ฅผ ์žฌ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค."

Java
Design Pattern

Java ์ƒ์„ฑ์ž์— this๊ฐ€ ์กด์žฌํ•˜๊ณ  return์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์ด์œ  ๋ถ„์„

Jun 23, 2023

Java๋กœ ์œ„์™€ ๊ฐ™์ด Person์ด๋ผ๋Š” ๊ฐ„๋‹จํ•œ ํด๋ž˜์Šค๋ฅผ ์ž‘์„ฑํ–ˆ๋‹ค. ์ธ์ž 2๊ฐœ์งœ๋ฆฌ ์ƒ์„ฑ์ž๋ฅผ ๋งŒ๋“ค์—ˆ์œผ๋‹ˆ ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋Š” ์ž๋™ ์ƒ์„ฑ๋˜์ง€ ์•Š์„ ๊ฒƒ์ด๊ณ , ์œ„์™€ ๊ฐ™์ด ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ๋œ๋‹ค. Person์˜ ์ƒ์„ฑ์ž๋ฅผ ์กฐ๊ธˆ ๋” ๊นŠ๊ฒŒ ์‚ดํŽด๋ณด์ž.

Java

C์–ธ์–ด IO System Call

Jun 15, 2023

disk ์ƒ์— ์กด์žฌํ•˜๋Š” ํŒŒ์ผ์„ openํ•˜๋Š” syscall ํŒŒ์ผ ์—ด๊ธฐ์— ์‹คํŒจํ•  ๊ฒฝ์šฐ -1 ์„ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ, ์„ฑ๊ณต ์‹œ OS์— ์˜ํ•ด ํ• ๋‹น๋œ fd ์ •์ˆ˜ ๋ฐ˜ํ™˜

C
Linux

ํŒŒ์ผ ๋ฐ ๋””๋ ‰ํ† ๋ฆฌ ๊ถŒํ•œ

Jun 13, 2023

๋ชจ๋“  ํŒŒ์ผ ๋ฐ ๋””๋ ‰ํ† ๋ฆฌ๋Š” ๊ถŒํ•œ์ด ์กด์žฌํ•˜๋ฉฐ, ์ด๋ฅผ permission ๋˜๋Š” mode๋ผ๊ณ  ํ•จ

C
Linux

๊ฒŒ์ž„์œผ๋กœ ๊ตฌํ˜„ํ•ด๋ณด๋Š” Dependency Injection

Jun 13, 2023

๋‹ค๋“ค ํ•œ ๋ฒˆ์ฏค ๋“ค์–ด๋ดค์„ ๋ฒ•ํ•œ ์œ ๋ช… MMORPG ๊ฒŒ์ž„, ๋ฉ”์ดํ”Œ์Šคํ† ๋ฆฌ์—๋Š” ๋ชจํ—˜๊ฐ€๋ผ๋Š” ์ง๊ตฐ์ด ์กด์žฌํ•œ๋‹ค. ๋ชจํ—˜๊ฐ€๋Š” ๊ฐ์ž ์ž์‹ ๋งŒ์˜ ๋ฌด๊ธฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ด๋ฅผ ํ† ๋Œ€๋กœ ๊ฐ„๋‹จํ•œ ํด๋ž˜์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด์„œย DI์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž.

OOP
Java

C์–ธ์–ด ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ

Jun 11, 2023

main ํ•จ์ˆ˜๋Š” ํ”„๋กœ์„ธ์Šค์˜ ์‹œ์ž‘์ด์ž ๋์ด๋ฉฐ, ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹œ์ž‘๋  ๋•Œ๋ถ€ํ„ฐ ์ข…๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ์ฝœ์Šคํƒ์˜ ์ตœํ•˜๋‹จ์— ์กด์žฌ.

C

๊ฐ์ฒด ์ง€ํ–ฅ๊ณผ 4๋Œ€ ํŠน์„ฑ

Jun 10, 2023

์ธ๊ฐ„์€ ์„ธ์ƒ์˜ ๋ชจ๋“  ๊ฒƒ์„ ์‚ฌ๋ฌผ ๋‹จ์œ„๋กœ ๋ฐ”๋ผ๋ณธ๋‹ค. ์‚ฐ์ฑ…์„ ๋‚˜๊ฐ€์„œ ์ฃผ๋ณ€์„ ๋‘˜๋Ÿฌ๋ณด๋ผ. ์ฃผ์œ„์— ๋ฌด์—‡์ด ๋ณด์ด๋Š”๊ฐ€. ๋‹น์‹ ์ด ์‚ฌ๋Š” ๊ณณ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒ ์ง€๋งŒ, ์ผ๋ฐ˜์ ์œผ๋กœ๋Š” ์ž๋™์ฐจ, ๋‚˜๋ฌด, ํ–‰์ธ, ์•„ํŒŒํŠธ ๋“ฑ์ด ์‰ฝ๊ฒŒ ๋ณด์ผ ๊ฒƒ์ด๋‹ค. ์ธ๊ฐ„์ด ์„ธ์ƒ์„ ์ธ์‹ํ•˜๋Š” ๋‹จ์œ„๋Š” ์œ„์™€ ๊ฐ™์ด ์‚ฌ๋ฌผ ๋‹จ์œ„๋‹ค. ์‚ฌ๋ฌผ์ด๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ์ƒ๋ช…์ฒด๊ฐ€ ์•„๋‹Œ ๋ฌผ๊ฑด์„ ๋œปํ•˜๋Š” ์˜๋ฏธ๋กœ ์ƒ๊ฐ๋  ์ˆ˜๋„ ์žˆ๋‹ค.

Java
OOP

C๋กœ LinkedList ๊ตฌํ˜„ํ•˜๊ธฐ

Jun 7, 2023

์ง€๊ธˆ๊นŒ์ง€ ๋งŒ๋“ค์—ˆ๋˜ Stack, Queue, Dynamic Array ๋“ฑ์˜ ์ž๋ฃŒ ๊ตฌ์กฐ๋“ค์€ ๋ชจ๋‘ Static Array๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ค์–ด์กŒ๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ ๋ฐ์ดํ„ฐ, ์ฆ‰ ๋ชจ๋“  ์š”์†Œ๋“ค์ด Heap ์ƒ์˜ ์—ฐ์†๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ์ €์žฅ๋˜์—ˆ๋‹ค. LinkedList๋Š” ๊ทผ๋ณธ์ ์œผ๋กœ ์ง€๊ธˆ๊นŒ์ง€ ๋งŒ๋“ค์—ˆ๋˜ ์ž๋ฃŒ ๊ตฌ์กฐ์™€๋Š” ๊ฒฐ์„ ๋‹ฌ๋ฆฌ ํ•˜๋Š”๋ฐ, ์š”์†Œ๊ฐ€ ์—ฐ์†๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ์ฐจ๋ก€๋Œ€๋กœ ์ €์žฅ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, Heap ์ƒ์— ๊ฐ ์š”์†Œ๋“ค์ด ์ž„์˜๋กœ ๋ถ„ํฌ๋˜์–ด ์žˆ๋‹ค.

C

C๋กœ Dynamic Array ๊ตฌํ˜„ํ•˜๊ธฐ

Jun 6, 2023

C์—์„œ ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ Stack์— ์ €์žฅ๋œ๋‹ค. ๋ฐฐ์—ด์€ Stack์— ์ƒ์„ฑ๋˜๋ฉฐ, Static Array์ด๊ธฐ ๋•Œ๋ฌธ์— ํฌ๊ธฐ๋Š” ํ•ญ์ƒ ๊ณ ์ •์ด๋‹ค. ์š”์†Œ 4๊ฐœ๋กœ ์ดˆ๊ธฐํ™” ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•ญ์ƒ ๊ธธ์ด๋Š” 4, ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ ์ƒ์—์„œ ์ฐจ์ง€ํ•˜๋Š” ํฌ๊ธฐ๋Š” sizeof(int) * 4 ๋กœ 16byte์ผ ๊ฒƒ์ด๋‹ค.

C

C๋กœ Queue ๊ตฌํ˜„ํ•˜๊ธฐ

Jun 5, 2023

Queue๋Š” Stack๊ณผ ๋‹ฌ๋ฆฌ FIFO(first in first out) ๋ฐฉ์‹์˜ ์ž๋ฃŒ๊ตฌ์กฐ๋‹ค. push , pop ์ด ์•„๋‹Œ enqueue , dequeue ๋ผ๋Š” ์šฉ์–ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. Stack๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ Static Array ๊ธฐ๋ฐ˜์ด๋ฉฐ, enqueue ๋Š” Stack์˜ push ๊ณผ ๋™์ผํ•˜๊ฒŒ last index + 1์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ์ƒˆ๋กœ์šด ๊ฐ’์„ ํ• ๋‹นํ•œ๋‹ค.

C

C๋กœ Stack ๊ตฌํ˜„ํ•˜๊ธฐ

Jun 4, 2023

Stack์€ ์•„์ฃผ ๋‹จ์ˆœํ•˜๋ฉด์„œ๋„ ๊ฐ•๋ ฅํ•œ ์ž๋ฃŒ ๊ตฌ์กฐ๋‹ค. ์‚ฌ์‹ค Stack์˜ ๊ตฌ์กฐ๋Š” ๋ฐฐ์—ด๊ณผ ์™„์ „ํžˆ ๋™์ผํ•˜๋‹ค. ๋ฐฐ์—ด๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์—ฐ์†๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ช‡ ๊ฐ€์ง€ ์ œ์•ฝ์ด ์ถ”๊ฐ€๋˜๋Š”๋ฐ, ๋ฐฐ์—ด๊ณผ ๋‹ฌ๋ฆฌ ์š”์†Œ ์ถ”๊ฐ€, ์ œ๊ฑฐ ์‹œ ์›ํ•˜๋Š” index๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์—†๊ณ , ๋ฐ˜๋“œ์‹œ ๋งจ ์œ„์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•ด์•ผ ํ•œ๋‹ค.

C

C-Style ๋ฌธ์ž์—ด๊ณผ C๋กœ ๋ฌธ์ž์—ด ์œ ํ‹ธ ํ•จ์ˆ˜ ์ง์ ‘ ๋งŒ๋“ค๊ธฐ

Jun 3, 2023

C์–ธ์–ด์˜ ๋ฌธ์ž์—ด์€ ๋น„๊ต์  ์ตœ์‹  ์–ธ์–ด์ธ Go, Rust ๋“ฑ๊ณผ ๋‹ฌ๋ฆฌ ๋ฐฐ์—ด์— ๋ถˆ๊ณผํ•˜๋‹ค. C์—๋Š” ๋ณ„๋„์˜ ๋ฌธ์ž์—ด ํƒ€์ž…์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— C์—์„œ์˜ ๋ฌธ์ž์—ด์„ ๋ฌธ์ž ๋ฐฐ์—ด๋กœ ํ‘œํ˜„๋˜๋ฉฐ, ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด ๋ฌธ๋ฒ•์œผ๋กœ ์ƒ์„ฑํ•œ ๋ฌธ์ž์—ด์€ ๋ฌธ์ž ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•˜๊ฒŒ ๋œ๋‹ค.

C

๊ตฌ์กฐ์ฒด์™€ ๋ฉ”๋ชจ๋ฆฌ ๋ทฐ

Jun 2, 2023

๊ตฌ์กฐ์ฒด๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ณ€์ˆ˜๋ฅผ ํ•ฉ์ณ์„œ ํ•˜๋‚˜๋กœ ๋ฌถ์€ ๋ณ€์ˆ˜์˜ ์ง‘ํ•ฉ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ์กฐ์ฒด๋กœ ๋ฌถ๋Š” ์ด์œ ๋Š” ์ธ๊ฐ„์ด ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ณ  ์œ ์ง€๋ณด์ˆ˜๋„ ๋”์šฑ ์šฉ์ดํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

C

Clion ๋ฉ”๋ชจ๋ฆฌ ๋ทฐ ์‚ฌ์šฉ๋ฒ•

Jun 1, 2023

IDE

Expression, Statement์˜ ์ฐจ์ด

May 31, 2023

Expression์€ ํ‘œํ˜„์‹, Statement๋Š” ๋ช…๋ น๋ฌธ์ด๋ผ ๋ถ€๋ฅธ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•  ๋•Œ, ์ผ์ƒ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฐœ๋…์ด๋‹ค. ์ฒ˜์Œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋ฐฐ์šธ ๋•Œ ํ—ท๊ฐˆ๋ฆด ์ˆ˜ ์žˆ๋Š” ๊ฐœ๋…์ด๊ธฐ ๋•Œ๋ฌธ์— ํ™•์‹คํžˆ ์ •๋ฆฌํ•ด ๋‘๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

Fundamental