๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Diary

2021 ์˜คํ”ˆ์†Œ์Šค ์ปจํŠธ๋ฆฌ๋ทฐ์…˜ ์•„์นด๋ฐ๋ฏธ๋ฅผ ๋งˆ์น˜๋ฉฐ

๋ฐ˜์‘ํ˜•

 

๐Ÿณ์ด์ „๊ธ€

https://codecollector.tistory.com/1098?category=1039078 

 

2021 ์˜คํ”ˆ์†Œ์Šค ์ปจํŠธ๋ฆฌ๋ทฐ์…˜ ์•„์นด๋ฐ๋ฏธ ํ”„๋กœ์ ํŠธ ์ง€์› ํ›„๊ธฐ

 ๋™๊ธฐ  ์—ฌ๋Ÿฌ it๊ธฐ์—…์„ ์ง€์›ํ•˜๋‹ค ์‹คํŒจ๋ฅผ ๋ง›๋ณด๊ณ  ํ•˜๋ฐ˜๊ธฐ ์ค€๋น„๋ฅผ ํ•˜๊ณ  ์žˆ์„ ๋•Œ ์ข‹์€ ๊ธฐํšŒ๊ฐ€ ์™”๋‹ค. ํ”„๋กœ์ ํŠธ ๊ฒฝํ—˜ ๋ฐ ๊ฐœ๋ฐœ๊ฒฝํ—˜์˜ ๋ถ€์žฌ๋กœ ์ธํ•ด ๋ฐฐ์›€์— ๋ชฉ๋งˆ๋ฅด๋‹ค ์˜คํ”ˆ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด ํ†ตํ•ฉ์ง€์›์„ผํ„ฐ๋ผ

codecollector.tistory.com

๐Ÿณ๋จธ๋ฆฌ๋ง

๊ธธ๋ฉด ๊ธด ์งง์œผ๋ฉด ์งง์•˜๋˜ ์ปจํŠธ๋ฆฌ๋ทฐ์…˜ ์•„์นด๋ฐ๋ฏธ ํ”„๋กœ์ ํŠธ๋Š” ๋๋‚ฌ๋‹ค. ํ•˜์ง€๋งŒ ์ด์ œ ์‹œ์ž‘์ด๋‹ค

 


๐Ÿ“• ํ™œ๋™

๐Ÿ“” Challenges (21. 8. 7. - 21. 8. 31)

์•„์˜ˆ ์•„๋ฌด๊ฒƒ๋„ ๋ชจ๋ฅด๋Š” rust๋ผ๋Š” ์–ธ์–ด์™€ ์ด๋ก ์ƒ์œผ๋กœ๋งŒ ๋ฐฐ์› ๋˜ dbms์˜ ๋™์ž‘๋ฐฉ์‹์„ code๋กœ ๋ณด๊ณ  ๊ตฌํ˜„ํ•ด๋ณด๋Š” ๊ฒƒ์ด๋ผ ๋„๋Œ€์ฒด ์–ด๋–ป๊ฒŒ ํ• ์ง€๋ฅผ ๋ชฐ๋ž๋‹ค. ์ผ๋‹จ ์—„๊ฒฉํ•œ rust์–ธ์–ด์˜ ์žฅ๋ฒฝ์— ๊ฐ‡ํ˜€ 1๋‹ฌ์„ ํ—ค๋งธ์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ๊ธ์ •์ ์œผ๋กœ ์ฐจ๊ทผํžˆ ์˜จ๋ผ์ธ ์ƒ์—์„œ ๋‚˜์™€์žˆ๋Š” ์ฑ…์„ ์ฝ๊ณ  ๊ณต๋ถ€ํ–ˆ๋‹ค. ์ฑ…๋„ ์ด๋ก ์—๋งŒ ๊ทธ์น˜์ง€ ์•Š๋Š” ์˜ˆ์ œ์™€ ํ•จ๊ป˜ ์นœ์ ˆํžˆ ์ดํ•ด๋ฅผ ๋•๊ธฐ ๋•Œ๋ฌธ์— ์ฆ๊ฒ๊ฒŒ ๋ฐฐ์šด ๊ฒƒ ๊ฐ™๋‹ค.

https://rinthel.github.io/rust-lang-book-ko/foreword.html

 

๋“ค์–ด๊ฐ€๊ธฐ ์•ž์„œ - The Rust Programming Language

ํ•ญ์ƒ ๊ทธ๋ ‡๊ฒŒ ๋ช…ํ™•์ง€๋Š” ์•Š์•˜์ง€๋งŒ, ๋Ÿฌ์ŠคํŠธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋Š” ๊ทผ๋ณธ์ ์œผ๋กœ ๊ถŒํ•œ ๋ถ„์‚ฐ์— ๊ด€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค: ์—ฌ๋Ÿฌ๋ถ„์ด ์–ด๋– ํ•œ ์ข…๋ฅ˜์˜ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์ค‘์ด๋˜ ๊ฐ„์—, ๋Ÿฌ์ŠคํŠธ๋Š” ์—ฌ๋Ÿฌ๋ถ„์—๊ฒŒ ๋” ๋ฉ€๋ฆฌ ๋ป—์–ด

rinthel.github.io

 

ํ•˜์ง€๋งŒ ํ•ญ์ƒ ํ…์ŠคํŠธ๋กœ๋งŒ ์ดํ•ดํ–ˆ๋‹ค๊ณ  ์—ฌ๊ธฐ๊ณ  ์ง์ ‘ ์ฝ”๋“œ๋ฅผ ์งœ๋Š” ์ˆœ๊ฐ„ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฌผ์ด ์‰ฝ๊ฒŒ ๋‚˜์˜ค์ง€ ์•Š๋Š”๋‹ค๋Š” ์ขŒ์ ˆ๊ฐ์„ ์•Œ๊ธฐ ๋•Œ๋ฌธ์— ๋‚ด๊ฐ€ ์™„์ „ํžˆ ์ดํ•ดํ–ˆ์Œ์„ ํ™•์‹ ํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์น˜๊ฐ€ ํ•„์š”ํ–ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ํ€ด์ฆˆ ํ˜•์‹์œผ๋กœ rust์˜ ๋ฌธ๋ฒ•์„ ์ตํžˆ๊ณ  ์ •๋‹ต์„ ์ถœ๋ ฅํ•ด๋ณผ ์ˆ˜ ์žˆ๋Š” repo๋ฅผ ๋ฉ˜ํ†  ๋ถ„ ์ค‘ ํ•œ ๋ถ„์ด ์•Œ๋ ค์ค˜์„œ ๋งŽ์€ ๋„์›€์„ ๋ฐ›์•˜๋‹ค.

 

https://github.com/rust-lang/rustlings

 

GitHub - rust-lang/rustlings: Small exercises to get you used to reading and writing Rust code!

:crab: Small exercises to get you used to reading and writing Rust code! - GitHub - rust-lang/rustlings: Small exercises to get you used to reading and writing Rust code!

github.com

 ํ•œ 2์ฃผ๊ฐ€ ์ง€๋‚˜์ž ์กฐ๊ธˆ์”ฉ ๋ณด์ด๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. project์˜ code๋“ค์ด 1์ค„ 2๋‘˜ ์”ฉ ๋ณด์ด๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ์–ด๋ ค์›€์€ ์žˆ์—ˆ๋‹ค. ๋ฌด์—‡์„ ๋ณด์™„ํ•ด์•ผํ• ์ง€, ๊ฐœ๋ฐœํ•  ์ ์€ ๋ฌด์—‡์ธ์ง€ ์ƒ๊ฐํ•ด์„œ pr์„ ๋‚ ๋ ค์•ผ ํ•˜๋Š” ์ค„ ์•Œ๊ณ  ๋ฉ˜๋ถ•์ด ์‚ด์ง ์˜ฌ๋ป” ํ–ˆ๋‹ค. ์ด๋Š” ๋ฉ˜ํ† ๋‹˜์ด ํ•ด๊ฒฐํ•ด ์ฃผ์…จ๋‹ค. ๋‚จ๋“ค์ด ์งœ๋†“์€ code๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ„๋‹จํžˆ ํ˜•ํƒœ๋งŒ ํ‰๋‚ด๋‚ด๋ฉด ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ„๋‹จํ•œ ํ•จ์ˆ˜๋ฅผ test code์™€ ํ•จ๊ป˜ ์ถ”๊ฐ€ํ•˜๋„๋ก ํ•จ์œผ๋กœ์จ git์ด ์–ด๋–ป๊ฒŒ ๋Œ์•„๊ฐ€๋Š”์ง€ ๋ณต์Šตํ•˜๊ณ (fork, clone, push, commit, push, pr, merge) ์„ฑ๊ณต์ ์œผ๋กœ ์ฒซ pr์„ ๋‚ ๋ฆฌ๊ณ  mergeํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. 

 

Sql function REVERSE ๊ธฐ๋Šฅ ์ถ”๊ฐ€ (2021.08.07 ~ 2021.08.26) #265

Project์˜ ๊ฒฝ์šฐ ์ฒด๊ณ„์ ์œผ๋กœ ์ •๋ฆฌ๋˜์–ด ์žˆ๊ณ  ๊ตฌํ˜„๋˜์–ด ์žˆ์—ˆ๋˜ folder, file์„ ํ†ตํ•ด REVERSE ํ•จ์ˆ˜๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ถ”๊ฐ€. ํ•˜์ง€๋งŒ ์ „์ฒด์ ์ธ sql๋ฌธ๋“ค์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์ด ํ˜„์žฌ๋กœ์จ๋Š” table๊ณผ column์ด ๋งŒ๋“ค์–ด์ง„ ์ƒํƒœ์— ๋Œ€ํ•ด์„œ๋งŒ ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— column๋ช…์„ ํ•จ์ˆ˜์˜ parameter๋กœ ๋„˜๊ฒจ ๋ฌธ์ž์—ด์„ ๋’ค์ง‘์–ด ๋ฐ˜ํ™˜ํ•˜๋Š” ์ œํ•œ์ ์ธ ๊ธฐ๋Šฅ๋งŒ์„ ๋งŒ๋“ฆ. ๊ธฐ๋Šฅ ๊ตฌํ˜„ ํ›„ ๊ฒ€์ฆ์„ ์œ„ํ•ด integration test๋ฅผ ์ž‘์„ฑํ•ด ์ถ”๊ฐ€.

 

Rust function PartialEq, PartialOrd test ์ž‘์„ฑ ๋ฐ bug ์ˆ˜์ • (2021.08.26 ~ 2021.08.30) #329 #353

rust๋ฅผ ๊ณต๋ถ€ํ•˜๋Š” ํ•œํŽธ rust์—์„œ ์ง€์›ํ•˜๋Š” ๋‚ด์žฅํ•จ์ˆ˜์ธ PartialEq, PartialOrd ๋ฅผ customizingํ•ด๋†“์€ ๋ถ€๋ถ„์„ ๊ฒ€์ฆํ•˜๊ธฐ ์œ„ํ•œ unit test๋ฅผ ์ถ”๊ฐ€. ์ถ”๊ฐ€ํ•˜๋Š” ๊ณผ์ •์—์„œ bug๋ฅผ ๋ฐœ๊ฒฌํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. PartialEqํ•จ์ˆ˜๊ฐ€ sql๋ฌธ์„ parsingํ•œ ํ›„ ๋‚˜์˜จ ๋ฌธ์ž์—ด์„ ์—ฌ๋Ÿฌ data๋“ค(Boolean, Number, Text, Interval, Null)๋กœ ๋ถ„๋ฅ˜ํ•œ ํ›„ ๋‘ data๊ฐ€ ๊ฐ™์€์ง€๋ฅผ ๋น„๊ตํ•˜๋Š” ๊ธฐ๋Šฅ์ธ๋ฐ ์ •์ˆ˜ 12์™€ 12.0์„ ๋‹ค๋ฅด๊ฒŒ ํŒ๋‹จํ•˜๋Š” ์˜ค๋ฅ˜๋ฅผ ๋ฐœ๊ฒฌํ•ด ์ˆ˜์ •ํ•œ ํ›„ unit test code๋ฅผ ์ถ”๊ฐ€. ๋˜ํ•œ PartialOrd ํ•จ์ˆ˜๋Š” ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ถ„๋ฅ˜๋œ ๋‘ data๊ฐ’์— ๋Œ€ํ•ด ๊ฐ™์€์ง€, ํฐ์ง€, ์ž‘์€์ง€๋ฅผ ๋น„๊ตํ•ด Option<ordering> ํ˜•ํƒœ๋กœ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜์ด๋ฉฐ ์ด์— ๋Œ€ํ•ด unit test code๋ฅผ ์ถ”๊ฐ€.

 

๐Ÿ“” Masters (21. 9. 6. - 21. 11. 19)

 ์ฒœ์ฒœํžˆ ๋‹จ๊ณ„๋ฅผ ๋†’์—ฌ๊ฐ€๋ฉฐ unit test -> refactoring์œผ๋กœ ํ™•์žฅํ•ด ๋‚˜์•„๊ฐ€๋ฉฐ project์˜ coreํ•œ ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•˜๋„๋ก ํ•ด์ฃผ์…”์„œ ์ข‹๊ฒŒ ๋”ฐ๋ผ๊ฐˆ ์ˆ˜ ์žˆ์—ˆ๋‹ค. refactoring์€ ๊ฒฐ๊ตญ ๊ตฌ์กฐ๋Š” ์งœ์„œ draft pr๊นŒ์ง€๋Š” ๋‚ ๋ ธ์œผ๋‚˜ ๋””ํ…Œ์ผํ•œ rust์˜ ๋ฌธ๋ฒ•์„ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ ์žˆ์–ด ๊ฐ€๋กœ๋ง‰ํ˜€ ์˜คํ”„๋ผ์ธ์œผ๋กœ ๋ฉ˜ํ† ๋‹˜์ด ์งœ์ฃผ์…จ๋‹ค๋Š”๊ฑด ์•ˆ๋น„๋ฐ€. ์˜๊ด‘์˜ pair programming์ด์—ˆ์Šต๋‹ˆ๋‹ค.

 

Logical XOR๋ฅผ parser์— ์ถ”๊ฐ€ (2021.08.30 ~ 2021.09.17) #357 

bitwise operator์ธ ^๋Š” ๊ตฌํ˜„๋˜์–ด ์žˆ์œผ๋‚˜ ๋…ผ๋ฆฌ์ ์œผ๋กœ XORํ•˜๋Š” ๋ถ€๋ถ„์€ parser๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ์ง€ ์•Š์•„ ์ถ”๊ฐ€ํ•œ ๋’ค ์ œ๋Œ€๋กœ parsing์ด ๋˜๋Š”์ง€ test code๋ฅผ ์ž‘์„ฑ.

 

Boolean type์— ๋Œ€ํ•œ Logical XOR์˜ ๋™์ž‘์„ ๊ตฌํ˜„ (2021.08.30 ~ 2021.09.17) #354 

mariadb๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•ด Boolean type๋ผ๋ฆฌ์˜ ๋…ผ๋ฆฌ์  XOR๊ฐ€ ๋™์ž‘ํ•˜๋„๋ก ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€. sqlparser ์—์„œ ์ž๋ฃŒํ˜• INT์— ๋Œ€ํ•ด parsingํ•˜๋Š” ๋ฐฉ์‹์ด ๋ฐ”๋€Œ์–ด ๊ธฐ์กด project์ธ GlueSql๋„ update. GlueSql์€ sqlparser๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ.

 

Aggregation function๋ถ€๋ถ„ private enum์ด์šฉ, refactoring (2021.10.03 ~ 2021.11.14) #368

expr์—์„œ aggregation์ž„์„ ์•Œ์•˜์„ ๋•Œ count, sum, min, max๋ฅผ ์ˆ˜ํ–‰ํ•œ ๊ฒฐ๊ณผ ๊ฐ’์„ ๊ณตํ†ต์ ์œผ๋กœ 1๊ฐœ๋งŒ exportํ•˜๋Š” ํ•จ์ˆ˜๋กœ ๋™์ž‘ํ•˜๊ณ  ์žˆ๋Š” ๊ตฌ์กฐ์˜€์œผ๋ฉฐ ๋•Œ๋ฌธ์— avg๋Š” ์ค‘๊ฐ„๊ฐ’์„ ๋‘ ๊ฐœ(sum/count)์ €์žฅํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด๋ผ ๊ตฌํ˜„๋˜์–ด ์žˆ์ง€ ์•Š์•˜์Œ. ๋˜ํ•œ tuple๊ตฌ์กฐ๋กœ ์ค‘๊ฐ„๊ฐ’์„ ์ €์žฅํ–ˆ์„ ๋•Œ ๊ฐ’์˜ ์˜๋ฏธ๊ฐ€ ๋ถˆ๋ถ„๋ช…ํ•ด์ ธ enum์œผ๋กœ ๋งŒ๋“ค์–ด์ค˜์•ผ ๋˜์—ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ enum์œผ๋กœ ๊ตฌ๋ถ„๋œ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ด ์–ด๋–ค ๊ฐ’์ด ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๊ณ  ์–ด๋–ป๊ฒŒ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š”์ง€ ๋ช…ํ™•ํ•œ ๊ตฌ์กฐ์˜ ์ฝ”๋“œ๊ฐ€ ๋งŒ๋“ค์–ด์กŒ๋‹ค.

 

Unary operator plus, minusํ•จ์ˆ˜์— ๋Œ€ํ•œ unit test code ์ถ”๊ฐ€ (2021.11.14 ~ 2021.11.15) #406

์•ž์„  pr์— ๋Œ€ํ•œ code coverage๋ฅผ ํ™•์ธํ•ด๋ณด๋‹ˆ ๋‹จํ•ญ์—ฐ์‚ฐ์ž์˜ ํ•จ์ˆ˜์— ๋Œ€ํ•œ unit test๊ฐ€ ์ถ”๊ฐ€๋˜์–ด์žˆ์ง€ ์•Š์Œ์„ ํ™•์ธ. ๊ฐ„๋‹จํžˆ ์ถ”๊ฐ€ํ•ด ์˜ฌ๋ ธ๋‹ค.

 

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


๐Ÿ“• ์„ฑ๊ณผ ๋ฐ ๊ณ„ํš

๐Ÿ“” ์„ฑ๊ณผ

 rust๋ผ๋Š” ์ƒˆ๋กœ์šด ์–ธ์–ด๋ฅผ ์ ‘ํ•˜๊ฒŒ ๋œ ๋ถ€๋ถ„, ๊ธฐ์กด์— ๊ด€์‹ฌ์ด ์žˆ์—ˆ๋˜ sql์˜ ๋™์ž‘๋ฐฉ์‹์„ ๋‹จ๊ณ„์ ์ธ contribution์„ ํ†ตํ•ด ์ „์ฒด์ ์ธ flow๋‚˜ ๋ฌธ๋ฒ•์ ์ธ ๋ถ€๋ถ„์„ ์–ด๋Š์ •๋„ ์ดํ•ดํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๋˜ํ•œ ํ•™์Šต์—์„œ ๊ฐ€์žฅ ์ข‹์•„ํ•˜๋Š” ์ง์ ‘ ์ฒดํ—˜์„ ํ•˜๊ฒŒ ๋œ ์ ์ด ๋œป๊นŠ์—ˆ๋‹ค.

๋Š๊ผˆ๋˜ ์–ด๋ ค์›€ : rust๋ผ๋Š” ์–ธ์–ด๋Š” ์ •๋ง ์—„๊ฒฉํ–ˆ๋‹ค. null์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์œผ๋ฉฐ ๊ฐ parameter์— ๋ช…ํ™•ํ•œ type์„ ์„ ์–ธํ•ด์ค˜์•ผ ํ–ˆ์œผ๋ฉฐ ์†Œ์œ ๊ถŒ, Option, trait ๋“ฑ๋“ฑ ์ƒ๊ฐ๋ณด๋‹ค ๋ฌธ๋ฒ•์ด ๋‹ค๋ฅธ ์–ธ์–ด์— ๋น„ํ•ด ์ƒ์†Œํ–ˆ๊ณ  ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋‹ค๋ฃจ๊ธฐ์—๋Š” ์•„์ง ๋ถ€์กฑํ•œ ์ ์ด ๋งŽ์•˜๋‹ค.

์„ฑ์žฅ : code์ž์ฒด๋ฅผ ์งœ๋Š” ๊ฒƒ ๋ฟ๋งŒ์•„๋‹ˆ๋ผ ๊ฐœ๋ฐœ ์™ธ์ ์ธ ๋ถ€๋ถ„์—์„œ ๋งŽ์€ ์„ฑ์žฅ์„ ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ํ˜‘์—…๋ฐฉ์‹, ์˜์‚ฌ์†Œํ†ต ๋ถ€๋ถ„์—์„œ ๋งŽ์ด ๋ฐฐ์› ๋‹ค. ์„œ๋กœ์˜ ์˜๊ฒฌ์„ ์กฐ์œจํ•˜๊ณ  ๋‚ด๊ฐ€ ์ดํ•ดํ•œ ๋‚ด์šฉ๊ณผ ๋ชจ๋ฅด๋Š” ๋ถ€๋ถ„์„ ๋ช…ํ™•ํžˆ ์„ค๋ช…ํ•ด ์ƒํ˜ธ๊ฐ„ ์ดํ•ดํ•˜๋Š” ๋ถ€๋ถ„์— ์˜ค์ฐจ๊ฐ€ ์—†๋„๋ก ํ–ˆ๋‹ค. ์˜จ๋ผ์ธ ํšŒ์˜๋Š” ๋Š๊น€ํ˜„์ƒ์œผ๋กœ ์•ฝ๊ฐ„ ๋ถˆํŽธํ–ˆ์ง€๋งŒ ์˜๊ฒฌ์„ ์ ๊ทน์ ์œผ๋กœ ๊ณต์œ ํ•˜๊ณ  ์„œ๋กœ ๋งํ•˜๋Š” ๋ฐฉ์‹์— ์‹ ๊ฒฝ์“ฐ๋ฉด์„œ ์›ƒ์œผ๋ฉฐ ์ž˜ ์ง„ํ–‰ํ•œ ๊ฒƒ ๊ฐ™์•„ ๋ฟŒ๋“ฏํ•จ์„ ๋Š๊ผˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋ƒฅ ๊ฒ‰ํ•ฅ๊ธฐ๋กœ ์‚ฌ์šฉํ–ˆ๋˜ github๊ฐ€ ์™œ ํ˜‘์—…ํˆด์ด๊ณ  ์–ด๋–ค ๋ถ€๋ถ„์— ์žˆ์–ด ์œ ์šฉํ•œ์ง€ ์ง์ ‘ fetch, push, merge๋ฅผ ํ•˜๋ฉด์„œ ์ฒด๋“ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

๊ณ„์†ํ•˜๋‹ค๋ณด๋‹ˆ..

๋ฒ„์Šค? ๋ฅผ ํƒ”์ง€๋งŒ ํ•จ๊ป˜ ํ•ด์ฃผ์‹  ๋ถ„๋“ค. ๋ฐœํ‘œ๋ฅผ ์ง์ ‘ ํ•ด์ฃผ์‹  ๋ถ„๋“ค ๋ฆฌ๋“œ๋ฉ˜ํ‹ฐ ๋ถ„๋“ค, ๋ฉ˜ํ† ๋‹˜์—๊ฒŒ ๋„ˆ๋ฌด๋„ ๋งŽ์€ ๋„์›€์„ ๋ฐ›์•˜๋‹ค. ํ•ญ์ƒ ๊ฐ์‚ฌํ•˜๋‹ค.

์ตœ์šฐ์ˆ˜์ƒ ์ˆ˜์ƒ

๐Ÿ“” ๊ณ„ํš

gluesql์€ ์ด์ œ ์‹œ์ž‘์ด๋‹ค ๋งค์ฃผ 1ํšŒ ์ •๊ธฐ ์˜คํ”„๋ผ์ธ ๋ชจ์ž„์„ ํ•˜๊ธฐ๋กœ ํ–ˆ์œผ๋ฉฐ project์— ์• ์ •์ด ์ƒ๊ฒผ๊ณ  ๋๊นŒ์ง€ ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ๊ธฐ์—ฌ์ž์ฒด์—์„œ ์˜ค๋Š” ์„ฑ์ทจ๊ฐ๊ณผ ๋ฟŒ๋“ฏํ•จ์ด ์ข‹์€ ์›๋™๋ ฅ์œผ๋กœ ์ž‘์šฉํ•ด ๋งŽ์€ ์„ฑ์žฅ์„ ํ–ˆ๋‹ค. ๋”์šฑ ์„ฑ์žฅํ•˜๊ธฐ ์œ„ํ•ด ๊ณต๋ถ€ํ•˜๊ณ  ๋…ธ๋ ฅํ•  ๊ฒƒ์ด๋‹ค. ๋˜ํ•œ ์ด project๊ฐ€ ๋๋‚˜๊ฒŒ ๋˜๋ฉด ๋‹ค๋ฅธ open source์—๋„ ์ฐธ์—ฌํ•ด ์ ๊ทน์ ์œผ๋กœ ๊ธฐ์—ฌํ•˜๊ณ  ์‹ถ๋‹ค.