์ „์ฒด ๊ธ€

๊ฐœ๋ฐœ ์ง€์‹์„ ์Œ“๊ณ  ๊บผ๋‚ด ์“ฐ๋Š” ๋ธ”๋กœ๊ทธ์ž…๋‹ˆ๋‹ค.
ํŠน์ • ์š”๊ฑด์—์„œ๋Š” ์ด๋ฒคํŠธ์˜ ์ˆœ์„œ๊ฐ€ ๋ฐ˜๋“œ์‹œ ๋ณด์žฅ๋˜์–ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.  ์ฒ ์ˆ˜๋Š” 100์›์„ ๊ฐ€์ง„ ์ƒํƒœ์—์„œ 100์›์„ ๋” ์ž…๊ธˆํ•˜๊ณ  200์›์„ ๊ฒฐ์ œํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ์–ด๋–ค ์ด์œ ๋กœ ๋จผ์ € ๋ฐœํ–‰๋œ(t=5)์ธ 100์› ์ž…๊ธˆ ์ด๋ฒคํŠธ๋ณด๋‹ค ๋‚˜์ค‘์— ๋ฐœํ–‰๋œ(t=10) 200์› ์ธ์ถœ ์ด๋ฒคํŠธ๊ฐ€ ๋จผ์ € ๋„์ฐฉํ–ˆ๋‹ค. ์ฒ ์ˆ˜๋Š” ์ž”์•ก ๋ถ€์กฑ์œผ๋กœ ๊ฒฐ์ œ๋ฅผ ์‹คํŒจํ•  ๊ฒƒ์ด๋‹ค !! ์ž์นซ ์ด๋ ‡๊ฒŒ ์ˆœ์„œ๊ฐ€ ์–ด๊ธ‹๋‚˜๊ฒŒ ๋„์ฐฉํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ์•ˆ ์ผ์–ด๋‚  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ ˆ๋Œ€ ์–ด๊ธ‹๋‚˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๋Š” ๋ณด์žฅ์€ ์—†๋‹ค. ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ, ๊ฒฐ๊ตญ ๋ถ€์ •ํ™•ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ค๋Š˜์€ ์ด๋Ÿฐ ๋น„์ˆœ์ฐจ ์ด๋ฒคํŠธ, ์ง€๊ฐ ์ด๋ฒคํŠธ์— ๋Œ€ํ•ด ๋งํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค. ์—ฌ๋Ÿฌ ํŒŒํ‹ฐ์…˜์—์„œ ์ด๋ฒคํŠธ๋ฅผ ์†Œ๋น„ํ•  ๊ฒฝ์šฐ, ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ ์ˆœ์„œ๋ฅผ ์–ด๋–ป๊ฒŒ ์ •ํ•  ๊ฒƒ์ธ์ง€?์ˆœ์„œ๊ฐ€ ์–ด๊ธ‹๋‚œ ์ด๋ฒคํŠธ, ์ง€๊ฐ ์ด๋ฒคํŠธ๋Š”..
๋ชจ๋†€๋ฆฌ์‹ ๊ธฐ๋ฐ˜์˜ ๋ ˆ๊ฑฐ์‹œ ์‹œ์Šคํ…œ์„ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ฒƒ์€ ์—ฌ๋Ÿฌ ๊ธฐ์—…์ด ์„ฑ์žฅํ•˜๋ฉด์„œ ์ƒˆ๋กœ์šด ๋น„์ฆˆ๋‹ˆ์Šค ์š”๊ฑด์„ ์ถฉ์กฑํ•ด์•ผ ํ•˜๊ฑฐ๋‚˜ ๊ทœ๋ชจ๋ฅผ ๋Š˜๋ฆด ๋•Œ ๋งŽ์ด ๊ฑฐ์ณ๊ฐ€๋Š” ๋‹จ๊ณ„์ด๋‹ค. ์˜ค๋Š˜์€ ์ด ๊ณผ์ •์—์„œ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•  ๋•Œ ํ•„์š”ํ•œ "๋ฐ์ดํ„ฐ ํ•ด๋ฐฉ"์— ๋Œ€ํ•ด ์–˜๊ธฐํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. 0. ๋ฐ์ดํ„ฐ ํ•ด๋ฐฉ์ด๋ž€?๋ฐ์ดํ„ฐํ•ด๋ฐฉ(data liberation)์€ ๊ต์ฐจ ๋„๋ฉ”์ธ ๋ฐ์ดํ„ฐ ์„ธํŠธ(cross-domain data set)๋ฅผ ์‹๋ณ„ํ•˜์—ฌ ๊ฐ ์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆผ์— ๋ฐœํ–‰ํ•˜๋Š” ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜์˜ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ „๋žต์ด๋‹ค. ๋‚˜๋Š” 'ํ•ด๋ฐฉ'์˜ ์˜๋ฏธ๋ฅผ '๋†“์•„์ฃผ๋‹ค'๋กœ ํ•ด์„ํ–ˆ๋Š”๋ฐ, ๊ธฐ์กด(๋ ˆ๊ฑฐ์‹œ) ๋น„์ฆˆ๋‹ˆ์Šค ๋„๋ฉ”์ธ์— ๋ฌถ์—ฌ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋“ค์„ ๋‹ค๋ฅธ ์„œ๋น„์Šค๊ฐ€ ์†Œ๋น„(์ด๋ฒคํŠธ ๋“ฑ)ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฐ์ดํ„ฐ๋ฅผ ์†Œ์‹ฑํ•˜๋Š” ๊ณผ์ •์ด๋ผ๊ณ  ํ•ด์„ํ–ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ํ•ด..
ยท BackEnd
๋ฐ์ดํ„ฐ ํ†ต์‹  ๊ตฌ์กฐ - EDA์˜ ์ด์œ ์—ฌ๋Ÿฌ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋กœ ๋ถ„๋ฆฌ๋œ ์„œ๋ฒ„๋“ค์˜ ํ†ต์‹ ์€ ๋ถˆ๊ฐ€ํ”ผํ•˜๋‹ค. ์„œ๋น„์Šค ๋‚ด์˜ ํ†ต์‹  ๊ตฌ์กฐ, ์„œ๋น„์Šค ๊ฐ„์˜ ํ†ต์‹  ๊ตฌ์กฐ๋Š” ์œ ์—ฐ์„ฑ, ํ™•์žฅ์„ฑ, ํšจ์œจ์„ฑ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ฒŒ ๋œ๋‹ค. ์‹œ๋‚˜๋ฆฌ์˜ค #1ํ•œ ํŒ€์—์„œ ์ƒˆ๋กœ์šด ๋น„์ฆˆ๋‹ˆ์Šค ์š”๊ฑด์„ ๊ตฌํ˜„ํ•˜๋ฉด์„œ ๋‘ ๋ฐฉ๋ฒ•์„ ๊ณ ๋ฏผํ•œ๋‹ค. ๊ธฐ์กด ํ”„๋กœ์ ํŠธ์— ์ถ”๊ฐ€ํ•œ๋‹ค์ด ์ƒํ™ฉ์—์„œ ๋น ๋ฅด๊ณ  ์‰ฌ์šด ๋ฐฉ๋ฒ•์ผ ๊ฒƒ์ด๋‹ค. ์ด๋ฏธ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ชจ๋‘ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๊ณ , ๋กœ๊น…, ๋ชจ๋‹ˆํ„ฐ๋ง, ๋ฐฐํฌ, ๋กค๋ฐฑ ํ”„๋กœ์„ธ์Šค ๋“ฑ ์—ฌ๋Ÿฌ ํ™˜๊ฒฝ์ด ๊ตฌ์ถ•๋˜์–ด ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ฉด์„œ ๊ธฐ์กด ์ฝ”๋“œ์™€ ์—ฎ์ด๋ฉฐ ๊ตฌํ˜„์ฒด ๋‚ด๋ถ€ ๊ฒฝ๊ณ„๊ฐ€ ๋ชจํ˜ธํ•ด์งˆ ์ˆ˜ ์žˆ๋‹ค. ๊ฒฐํ•ฉ๋„๋Š” ์˜ฌ๋ผ๊ฐ€๊ณ  ์‘์ง‘๋„๋Š” ๋–จ์–ด์ง€๋Š” ๊ฒƒ์ด๋‹ค. ์ƒˆ๋กœ์šด ์„œ๋น„์Šค๋กœ ๊ตฌํ˜„ํ•œ๋‹คํ™•์žฅ์„ฑ์„ ์ƒ๊ฐํ•œ๋‹ค๋ฉด ๋ชจ๋“ˆํ™”ํ•œ ๋…๋ฆฝ์ ์ธ ์‹œ์Šคํ…œ์ด ๋” ์ข‹์•„๋ณด์ด๊ธฐ๋„ ํ•œ๋‹ค. ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์€ ์˜› ๋ฐ์ดํ„ฐ๋„ ์ฐธ์กฐํ•ด์•ผ ..
0. ๋“ค์–ด๊ฐ€๋ฉฐDB์™€์˜ ํ†ต์‹  ๊ณผ์ •์—์„œ ๋ถ€ํ•˜๋ฅผ ์ค„์ด๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์ธ๋ฑ์Šค, ์ง€์—ฐ๋กœ๋”ฉ, ์บ์‹ฑ ๋“ฑ ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ•์„ ํ™œ์šฉํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์˜ค๋Š˜์€ ๊ธฐ์กด์— ์ž˜ ์ƒ๊ฐํ•ด๋ณด์ง€ ๋ชปํ–ˆ๋˜ ์—”ํ‹ฐํ‹ฐ ์กฐํšŒ ๋ฐฉ๋ฒ•์„ ๋งํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ํ‰์†Œ์— JPA๋ฅผ ์ด์šฉํ•ด์„œ ์—”ํ‹ฐํ‹ฐ๋ฅผ ์กฐํšŒํ•˜๊ณ  ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์— ์‘๋‹ตํ•  ๋•Œ, ๋ณดํ†ต์˜ ๊ฒฝ์šฐ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ–ˆ์—ˆ๋‹ค. public interface UserRepository extends JpaRepository { Optional findById(Long id); }@Builder@Getterpublic class UserResponseDto { Long id; String email; String name; public static UserResponseDto from(User u..
ยท BackEnd
0. ์‹œ์ž‘์ด๋ฒคํŠธ๋Š” ๊ฐ•๊ฒฐํ•ฉ์„ ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™” ๋“ฑ ์—ฌ๋Ÿฌ ์œ ์šฉํ•œ ์ƒํ™ฉ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ, ์–ธ์ œ๋‚˜ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹จ์ˆœํ•˜๊ฒŒ ์ด๋ฒคํŠธ๋ฅผ ๋ฐœํ–‰/๊ตฌ๋…์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ ์•ˆ์ „ํ•˜์ง€ ์•Š๋‹ค. ์—ฌ๊ธฐ์„œ "์•ˆ์ „ํ•˜๋‹ค"๋Š” ์—ฌ๋Ÿฌ ์กฐ๊ฑด์ด ์žˆ์„ ์ˆ˜ ์žˆ๊ฒ ๋‹ค. ๋ฉ”์„ธ์ง€ ๋ฐœํ–‰์ด ๋ณด์žฅ๋˜๋Š”์ง€๋ฐœํ–‰๋œ ๋ฉ”์„ธ์ง€๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ „๋‹ฌ๋˜์—ˆ๋Š”์ง€์ „๋‹ฌ๋œ ๋ฉ”์„ธ์ง€๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ฒ˜๋ฆฌ๋˜์—ˆ๋Š”์ง€์ค‘๋ณต ๋ฉ”์„ธ์ง€๊ฐ€ ์ค‘๋ณต ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์•˜๋Š”์ง€(ํ•„์š”ํ•œ ๊ฒฝ์šฐ) ๋ฉ”์„ธ์ง€์˜ ์ˆœ์„œ๊ฐ€ ๋ณด์žฅ๋˜์—ˆ๋Š”์ง€ ์ด๋ฒคํŠธ ๋ฐœํ–‰/๊ตฌ๋…์—์„œ ์‚ฌ์†Œํ•œ ์˜ค๋ฅ˜ ํ•˜๋‚˜๊ฐ€ ์‹ฌ๊ฐํ•œ ์˜ํ–ฅ์„ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์•ˆ์ „ํ•จ์€ ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค. ์˜ค๋Š˜์€ ์ด๋ฒคํŠธ ๋ฐœํ–‰ ๊ณผ์ •์—์„œ ๊ณ ๋ คํ•ด์•ผํ•  ์—ฌ๋Ÿฌ ์˜ˆ์™ธ ์ƒํ™ฉ์„ ์•Œ์•„๋ณด๊ณ , ๊ทธ์— ๋Œ€ํ•œ ๋Œ€์ฒ˜๋ฅผ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค. 1. ์˜ˆ์™ธ๋จผ์ €, ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์˜ˆ์™ธ๋“ค์„ ์‚ดํŽด๋ณด๊ฒ ๋‹ค. ๋„คํŠธ์›Œํฌ ๊ด€๋ จ ์˜ˆ..
1. Dart ์–ธ์–ด ์†Œ๊ฐœDart๋Š” Google์—์„œ ๊ฐœ๋ฐœํ•œ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋‹ค. ์›น, ๋ชจ๋ฐ”์ผ, ๋ฐ์Šคํฌํ†ฑ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋ฉฐ, ํŠนํžˆ Flutter ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์ฃผ์š” ์–ธ์–ด๋กœ ํ™œ์šฉ๋œ๋‹ค. 2. ํŠน์ง•1. ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐDart๋Š” ํด๋ž˜์Šค์™€ ๊ฐ์ฒด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ง€์›ํ•œ๋‹ค. ์ƒ์†, ์ธํ„ฐํŽ˜์ด์Šค, ๋ฏน์Šค์ธ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ, Dart๋Š” ๋‹จ์ผ ์ƒ์†๋งŒ์„ ํ—ˆ์šฉํ•˜๋Š”๋ฐ, ๋ฏน์Šค์ธ์„ ํ†ตํ•ด ๋‹ค์ค‘ ์ƒ์†๊ณผ ์œ ์‚ฌํ•œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. mixinmixin์€ ์—ฌ๋Ÿฌ ํด๋ž˜์Šค ๊ณ„์ธต์—์„œ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ์ •์˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์Œ๊ณผ ๊ฐ™์€ mixin๊ณผ ๊ธฐ๋ณธ ํด๋ž˜์Šค๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž.mixin Flyer { void fly() { print('Flying')..
ddonghyeo
๐Ÿ—ƒ๏ธ๊ฐœ๋ฐœ์Šคํƒ