๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๊ฐœ๋ฐœ ์„ค์ •

๋‘ ๊ฐœ์˜ ํŒŒ์ผ ๋น„๊ตํ•˜๊ธฐ(IntelliJ, Mac)

by ์ฃผ๋ฐœ2 2021. 12. 28.
๋ฐ˜์‘ํ˜•

๐Ÿ“Ž ๋‘ ๊ฐœ์˜ ํŒŒ์ผ ๋น„๊ตํ•˜๊ธฐ - ์ธํ…”๋ฆฌ์ œ์ด(IntelliJ), ๋งฅ(Mac OS)

ํ‰์†Œ์— ํŒŒ์ผ A์™€ ํŒŒ์ผ B๊ฐ€ ๋ฌด์—‡์ด ๋‹ค๋ฅธ์ง€ ํ™•์ธํ•ด๋ณด๊ณ  ์‹ถ์„๋•Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ‰์†Œ ํŒŒ์ผ A์™€ ํŒŒ์ผ B๊ฐ€ ๋ฌด์—‡์ด ๋‹ค๋ฅธ์ง€ ํ™•์ธํ•ด๋ณด๊ณ  ์‹ถ์„๋•Œ๊ฐ€ ์กด์žฌํ•˜๋Š”๋ฐ์š”, ์ด๋Ÿฐ ๊ฒฝ์šฐ ๋ฉ”๋ชจ์žฅ ๊ฐ™์€๊ณณ์— ๋ถ™์—ฌ๋„ฃ๊ณ  ํ™•์ธํ•ด๋ณด๋ฉด ์œก์•ˆ์œผ๋กœ ํŒ๋ณ„ํ•˜๊ธฐ ํž˜๋“ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.

์œ„ ์‚ฌ์ง„์€ ์ž‘๊ฒŒ ๋‚˜์™”์ง€๋งŒ, ๋ฌด์Šจ ์ฐจ์ด๊ฐ€ ์žˆ๋Š”์ง€ ํ•œ ์ค„์”ฉ ๋น„๊ตํ•ด๋ณด๋ฉฐ ํŒ๋‹จํ•˜๋Š”๊ฑด ๋„ˆ๋ฌด๋‚˜ ๋น„ํšจ์œจ์ ์ธ๋ฐ์š”,

์ด๋Ÿฐ ๊ฒฝ์šฐ ์ธํ…”๋ฆฌ์ œ์ด, ๋งฅOS ๋“ฑ ๋‹ค์–‘ํ•œ ํ™˜๊ฒฝ์—์„œ ๋น„๊ต๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

(์œˆ๋„์šฐ๋„ ํŠน์ • ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋น„๊ตํ–ˆ์—ˆ๋Š”๋ฐ ์ด๋ฆ„์ด ๊ธฐ์–ต์ด ์•ˆ๋‚˜๋„ค์š” ใ… )

 

๋จผ์ € ์ธํ…”๋ฆฌ์ œ์ด์—์„œ ๋‘ ํŒŒ์ผ ๋น„๊ต๋ฅผ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

๐Ÿ“Ž ์ธํ…”๋ฆฌ์ œ์ด(IntelliJ)์—์„œ ๋‘ ํŒŒ์ผ ๋น„๊ตํ•˜๊ธฐ

ํ™•์ธํ•ด๋ณด๊ณ  ์‹ถ์€ ํŒŒ์ผ์€ util ํŒจํ‚ค์ง€ ํ•˜์œ„์— ์กด์žฌํ•˜๋Š” test1, test2 ํ…์ŠคํŠธ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.

 

์œ„ ๋‘ ํŒŒ์ผ์„ ํด๋ฆญํ•œ ์ฑ„ command + d(Window: Ctrl + d)๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ™•์ธํ•ด๋ณด๋ฉด ์œ„ ์‚ฌ์ง„๊ณผ ๊ฐ™์ด ์ƒˆ๋กœ์šด ์ฐฝ์ด ์ƒ๊ธฐ๋ฉฐ ๋‹ค๋ฅธ ๋ถ€๋ถ„์€ ํ™•์ธํ•˜๊ธฐ ์‰ฝ๊ฒŒ ํ‘œ์‹œ๊ฐ€ ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

Git์—์„œ ์ปค๋ฐ‹ํ•  ๋•Œ ๋น„๊ต ๋‚ด์—ญ์„ ์‚ดํŽด๋ณด๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ํ˜•์‹์œผ๋กœ ๊ตฌ์„ฑ์ด ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

๐Ÿ“Ž Mac OS์—์„œ ๋‘ ํŒŒ์ผ ๋น„๊ตํ•˜๊ธฐ

ํ„ฐ๋ฏธ๋„์—์„œ ๋‘ ํŒŒ์ผ์ด ์กด์žฌํ•˜๋Š” ๊ฒฝ๋กœ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

(๋‘ ํŒŒ์ผ์€ ๋™์ผํ•œ ๊ฒฝ๋กœ์— ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.)

 

๊ทธ ํ›„ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

diff -w file1 file2

 

์ž…๋ ฅํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ…์ŠคํŠธ๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

1c1
< Join
---
> subquery
71c71
<         children2_.id as id1_2_1_,
---
>         children3_.id as id1_2_1_,
79,87c79,87
<         children2_.created_at as created_2_2_1_,
<         children2_.updated_at as updated_3_2_1_,
<         children2_.bookmark_count as bookmark4_2_1_,
<         children2_.emoji as emoji5_2_1_,
<         children2_.index as index6_2_1_,
<         children2_.name as name7_2_1_,
<         children2_.parent_id as parent_i8_2_1_,
<         children2_.parent_id as parent_i8_2_0__,
<         children2_.id as id1_2_0__
---
>         children3_.created_at as created_2_2_1_,
>         children3_.updated_at as updated_3_2_1_,
>         children3_.bookmark_count as bookmark4_2_1_,
>         children3_.emoji as emoji5_2_1_,
>         children3_.index as index6_2_1_,
>         children3_.name as name7_2_1_,
>         children3_.parent_id as parent_i8_2_1_,
>         children3_.parent_id as parent_i8_2_0__,
>         children3_.id as id1_2_0__
90,94d89
<     inner join
<         account_folder accountfol1_
<             on (
<                 folder0_.id=accountfol1_.folder_id
<             )
96,97c91,92
<         folder children2_
<             on folder0_.id=children2_.parent_id
---
>         folder children3_
>             on folder0_.id=children3_.parent_id
99c94,104
<         accountfol1_.account_id=?
---
>         folder0_.id in (
>             select
>                 accountfol1_.folder_id
>             from
>                 account_folder accountfol1_ cross
>             join
>                 folder folder2_
>             where
>                 accountfol1_.folder_id=folder2_.id
>                 and accountfol1_.account_id=?
>         )
101c106
<         children2_.index asc
---
>         children3_.index asc

์œ„์™€๊ฐ™์ด ์—ฌ๋Ÿฌ ๊ธฐํ˜ธ ๋ฐ ์ˆซ์ž, ์•ŒํŒŒ๋ฒณ๋“ค์ด ๋‚˜์˜ค๊ฒŒ ๋˜๋Š”๋ฐ ๋ฌด์Šจ ์˜๋ฏธ์ธ์ง€ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

์•ŒํŒŒ๋ฒณ(a, c, d)

  • a : add(์ถ”๊ฐ€๋œ ๋ถ€๋ถ„)
  • c : change(๋ณ€๊ฒฝ๋œ ๋ถ€๋ถ„)
  • d: delete(์‚ญ์ œ๋œ ๋ถ€๋ถ„)

 

1c1
< Join
---
> subquery

  • ์•ŒํŒŒ๋ฒณ(c)๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ขŒ์ธก์€ ์™ผ์ชฝ ํŒŒ์ผ(test1)์„ ์˜๋ฏธํ•˜๊ณ , ์šฐ์ธก์€ ์˜ค๋ฅธ์ชฝ ํŒŒ์ผ(test2)๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
  • ์ฆ‰, test1 ํŒŒ์ผ์˜ ์ฒซ ๋ฒˆ์งธ ๋ผ์ธ์€ test2 ํŒŒ์ผ์˜ ์ฒซ ๋ฒˆ์งธ ๋ผ์ธ์ด ๋ณ€๊ฒฝ๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
  • ์™ผ์ชฝ ํŒŒ์ผ(<) ์€ Join์ด๋ฉฐ ์˜ค๋ฅธ์ชฝ ํŒŒ์ผ(>)์€ subquery๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

 

79,87c79,87

  • ์™ผ์ชฝ ํŒŒ์ผ์—์„œ 79 ~ 87 ๋ผ์ธ์€ ์˜ค๋ฅธ์ชฝ ํŒŒ์ผ์—์„œ 79 ~ 87 ๋ผ์ธ์œผ๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

 

90,94d89

  • ์™ผ์ชฝ ํŒŒ์ผ์—์„œ 90 ~ 94 ๋ผ์ธ์ด ์‚ญ์ œ๋˜์–ด์•ผ ์˜ค๋ฅธ์ชฝ ํŒŒ์ผ๊ณผ ๊ฐ™์•„์ง„๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.

 

101c106
<         children2_.index asc
---
>         children3_.index asc

  • ์™ผ์ชฝ ํŒŒ์ผ์—์„œ 101๋ผ์ธ์ด ์˜ค๋ฅธ์ชฝ ํŒŒ์ผ์—์„œ 106 ๋ผ์ธ์œผ๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

 

Mac์—์„œ๋Š” ํ…์ŠคํŠธ๋ฅผ ํ†ตํ•ด ๋‘ ํŒŒ์ผ๊ฐ„ ์ฐจ์ด์ ์„ ๋‚˜ํƒ€๋‚ด์ค€๋‹ค๋ฉด, ์ธํ…”๋ฆฌ์ œ์ด์—๋Š” ์ง์ ‘ ์‹œ๊ฐ์„ ํ†ตํ•ด ์ฐจ์ด์ ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€