[GitHub] ๋ฏผ๊ฐํ•œ ์ •๋ณด ์™„์ „ ์‚ญ์ œ์™€ PR ํžˆ์Šคํ† ๋ฆฌ ์ •๋ฆฌ

[GitHub] ๋ฏผ๊ฐํ•œ ์ •๋ณด ์™„์ „ ์‚ญ์ œ์™€ PR ํžˆ์Šคํ† ๋ฆฌ ์ •๋ฆฌ

GitHub ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋ณด์•ˆ์ •์ฑ…์— ์œ„๋ฐ˜๋˜๊ฑฐ๋‚˜ ๋ฏผ๊ฐํ•œ ์ •๋ณด๋ฅผ ์‹ค์ˆ˜๋กœ ์—…๋กœ๋“œํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ํ•ด๋‹น ๋ธŒ๋žœ์น˜๋ฅผ ์ง€์šฐ๊ฑฐ๋‚˜ ์ปค๋ฐ‹ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ๋ฐ€์–ด๋ฒ„๋ ค๋„ ์ด๋ฏธ ๋จธ์ง€๋œ Pull Request๋ผ๋ฉด, ๊นƒํ—ˆ๋ธŒ UI์˜ closed request ํƒญ์—์„œ ํŒŒ์ผ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ํ™•์ธํ•˜๋ฉด ํ•ด๋‹น ๋‚ด์šฉ์ด ๊ทธ๋Œ€๋กœ ๋‚จ์•„ ์žˆ์–ด ๋ณ„๋„์˜ ์กฐ์น˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค. 1. ๋ฏผ๊ฐ์ •๋ณด ํŒŒ์ผ ์™„์ „ ์‚ญ์ œ (๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋ณต์ œ ๋ฐ ์žฌ์ƒ์„ฑ) 1-1. ๊ธฐ์กด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ํด๋ก  ๋ฐ ๋ฏผ๊ฐ ์ •๋ณด ์ œ๊ฑฐ git clone --mirror https://github.com/username/repo.git cd repo.git # BFG Repo-Cleaner ๋‹ค์šด๋กœ๋“œ curl -L -o bfg.jar https://repo1.maven.org/maven2/com/madgag/bfg/1.13.0/bfg-1.13.0.jar # ๋ฏผ๊ฐํ•œ ํŒŒ์ผ ๊นƒ ํžˆ์Šคํ† ๋ฆฌ์—์„œ ์™„์ „ ์ œ๊ฑฐ java -jar bfg.jar --delete-files 'test.properties(์‚ญ์ œํŒŒ์ผ๋ช…)' # Git Garbage Collection ์ˆ˜ํ–‰ ( Git reflog๋ฅผ ๋งŒ๋ฃŒ ์‹œํ‚ค๊ณ , ์“ฐ์ง€ ์•Š๋Š” ๊ฐ์ฒด ์‚ญ์ œ ) git reflog expire --expire=now --all git gc --prune=now --aggressive 1-2. ๊ธฐ์กด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ํด๋ฆฐ ๋œ ํžˆ์Šคํ† ๋ฆฌ ๊ฐ•์ œ ํ‘ธ์‹œ git push --force --all git push --force --tags ...

[PostgreSQL] ๋ฌธ์ž์—ด์—์„œ ๋‚ ์งœ/์‹œ๊ฐ„ ๋ณ€ํ™˜ ๋ฐ ์ฒ˜๋ฆฌ ๊ณผ์ •

[PostgreSQL] ๋ฌธ์ž์—ด์—์„œ ๋‚ ์งœ/์‹œ๊ฐ„ ๋ณ€ํ™˜ ๋ฐ ์ฒ˜๋ฆฌ ๊ณผ์ •

1. ๋ฌธ์ž์—ด์—์„œ ๋‚ ์งœ/์‹œ๊ฐ„์œผ๋กœ์˜ ๋ณ€ํ™˜ PostgreSQL์˜ ๋‚ ์งœํ˜•ํƒœ์˜ ์นผ๋Ÿผ์„ ์กฐํšŒํ•  ๋•Œ, ์ข…์ข… ์ •ํ™•ํ•œ ๋‚ ์งœ ํ˜•ํƒœ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ๋ฌธ์ž์—ด, ํ˜น์€ ์ˆซ์ž ํ˜•ํƒœ๋กœ ๊ฐ„ํŽธํ•˜๊ฒŒ ์กฐํšŒํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 2024/05/02 ์ดํ›„์˜ ๊ฐ’์„ ์กฐํšŒํ•  ๋•Œ ๋‹ค์Œ ๋‘ ๊ฐ€์ง€ ์กฐํšŒ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. date_column > '20240502' date_column > TO_DATE('20240502', 'YYYYMMDD') ์˜ˆ์ œ์™€ ๊ฐ™์ด PostgreSQL์€ ์ผ๋ จ์˜ ๋ฌธ์ž/์ˆซ์ž์—ด์„ ์กฐ๊ฑด์— ๋งž๋Š” ๋‚ ์งœํ˜•์œผ๋กœ ์ž๋™์œผ๋กœ ๋””์ฝ”๋”ฉ์„ ํ•ด์ฃผ๋Š”๋ฐ, ๋ฌธ์ž์—ด์„ ์ธ์‹ํ•˜๋Š” ์ƒ์„ธ ๊ณผ์ •์„ ์ˆœ์„œ๋Œ€๋กœ ์•Œ์•„๋ณด์ž. 2. ๋ฌธ์ž์—ด์—์„œ ๋‚ ์งœ/์‹œ๊ฐ„์œผ๋กœ์˜ ๋””์ฝ”๋”ฉ ๊ณผ์ • 2-1. ๋ฌธ์ž์—ด์„ ํ† ํฐ์œผ๋กœ ๋ถ„๋ฆฌํ•˜๊ณ  ๊ฐ ํ† ํฐ์„ ์‹œ๊ฐ„, ์‹œ๊ฐ„๋Œ€, ๋˜๋Š” ์ˆซ์ž๋กœ ๋ถ„๋ฅ˜ํ•œ๋‹ค. ์˜ˆ์ œ๋“ค์—์„œ๋Š” ์ •์ƒ์ ์œผ๋กœ ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„์ด ๋ณ€ํ™˜๋˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ•์ œ๋กœ TIMESTAMP ๋ฐ DATE๋กœ ํ˜• ๋ณ€ํ™˜์„ ํ•˜์˜€์ง€๋งŒ, ๋‚ ์งœ ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ์™€ ๋ฌธ์ž์—ด ๊ทธ๋Œ€๋กœ๋ฅผ ๋น„๊ตํ•˜์—ฌ๋„ ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„ ๋น„๊ต๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ...

[๋””์ž์ธํŒจํ„ด] ์ „๋žต(Strategy) ํŒจํ„ด์˜ ๊ฐœ๋…, ์˜ˆ์ œ, ์žฅ๋‹จ์ , ํ™œ์šฉ

[๋””์ž์ธํŒจํ„ด] ์ „๋žต(Strategy) ํŒจํ„ด์˜ ๊ฐœ๋…, ์˜ˆ์ œ, ์žฅ๋‹จ์ , ํ™œ์šฉ

1. ์ „๋žต(Strategy) ํŒจํ„ด์ด๋ž€? Strategy๋Š” ์ „๋žต์ด๋ผ๋Š” ๋œป์œผ๋กœ ์ ์„ ํ•ด์น˜์šฐ๋Š” ์ž‘์ „, ๊ฒŒ์ž„์„ ์ด๊ธฐ๋Š” ์ „๋žต, ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋‚˜๊ฐ€๋Š” ๋ฐฉ๋ฒ• ๋“ฑ์˜ ์˜๋ฏธ๊ฐ€ ์žˆ๊ณ , ํŠนํžˆ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ์‹์ธ "์•Œ๊ณ ๋ฆฌ์ฆ˜"์„ ์˜๋ฏธํ•œ๋‹ค. ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ์€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์กด์žฌํ•˜๋ฉฐ, ํŠน์ • ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ๊ตฌํ˜„๋œ๋‹ค. Strategy ํŒจํ„ด์—์„œ๋Š” ์ด๋ฏธ ๊ตฌํ˜„ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‰ฝ๊ฒŒ ๋ชจ๋‘ ๊ต์ฒดํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ์Šค์œ„์น˜๋ฅผ ๋ˆ„๋ฅด๋“ฏ ์‰ฝ๊ฒŒ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋ฐ”๊ฟ”์„œ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด๊ฒฐํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๋Š” ํŒจํ„ด์ด Strategy ํŒจํ„ด์ด๋‹ค. 2. ์ „๋žต(Strategy) ํŒจํ„ด์˜ ๊ตฌ์กฐ ์ „๋žต ํŒจํ„ด์˜ ๊ตฌ์กฐ์™€ ์˜ˆ์ œ์—์„œ ๊ฐ ์š”์†Œ๊ฐ€ ์–ด๋–ค ์—ญํ• ์„ ํ•˜๋Š”์ง€ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋จผ์ € ์‚ดํŽด๋ณด์ž. ...

[PostgreSQL] ROWNUM ์‚ฌ์šฉ๊ณผ ์ˆœ๋ฒˆ ๋ถ€์—ฌํ•˜๊ธฐ - ROW_NUMBER(), RANK(), DENSE_RANK()

[PostgreSQL] ROWNUM ์‚ฌ์šฉ๊ณผ ์ˆœ๋ฒˆ ๋ถ€์—ฌํ•˜๊ธฐ - ROW_NUMBER(), RANK(), DENSE_RANK()

1. ์ˆœ๋ฒˆ ๋ถ€์—ฌํ•˜๊ธฐย PostgreSQL์—์„œ๋Š” ๊ฐ ๋ฐ์ดํ„ฐ์— ์˜๋ฏธ ์žˆ๋Š” ์ˆœ๋ฒˆ์„ ๋ถ€์—ฌํ•˜๊ธฐ ์œ„ํ•ด ROW_NUMBER(), RANK(), DENSE_RANK() ํ•จ์ˆ˜๋ฅผ ์ œ๊ณตํ•œ๋‹ค.ย ROW_NUMBER() OVER(PARTITION BY * ORDER BY * ) RANK() OVER(PARTITION BY * ORDER BY * ) DENSE_RANK() OVER(PARTITION BY * ORDER BY * ) ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ์ž์„ธํ•œ ์‚ฌ์šฉ๋ฒ•์„ ์•Œ์•„๋ณด์ž. (2. ํ…Œ์ŠคํŠธ ํ…Œ์ด๋ธ” & ๋ฐ์ดํ„ฐ ์ƒ์„ฑ ์ฐธ๊ณ ) ์˜ˆ์ œ์—์„œ ์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ 1-1. ROW_NUMBER() 1-1-1. ๋‹จ์ผ ๊ทธ๋ฃน ์ˆœ๋ฒˆ ๋ถ€์—ฌ SELECT ROW_NUMBER() OVER (ORDER BY BRAND) AS ROWNUM, * FROM TEST_COMPLEX_GROUP; ...

[PostgreSQL] ๋ฒ„์ „ ํ™•์ธ: ํ•„์š”์„ฑ๊ณผ 4๊ฐ€์ง€ ๋ฐฉ๋ฒ•

[PostgreSQL] ๋ฒ„์ „ ํ™•์ธ: ํ•„์š”์„ฑ๊ณผ 4๊ฐ€์ง€ ๋ฐฉ๋ฒ•

1. ๋ฒ„์ „ ํ™•์ธ์ด ์™œ ํ•„์š”ํ•œ๊ฐ€ PostgreSQL๋ฅผ ์•ˆ์ •์ ์œผ๋กœ ์šด์˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ณด์•ˆ ํŒจ์น˜์™€ ์—…๋ฐ์ดํŠธ๋ฅผ ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค. ๋˜ํ•œ ํŠน์ • ๊ธฐ๋Šฅ์ด๋‚˜ ํ˜ธํ™˜์„ฑ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๊ธฐ ์œ„ํ•ด์„œ๋„ ๋ฒ„์ „ ์ •๋ณด๋ฅผ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ํ˜„์žฌ ๋ฒ„์ „ ๋ฐ ๊ณต์‹ ๋ฌธ์„œ์˜ ๋ฒ„์ „ ๊ด€๋ฆฌ ๋‚ด์šฉ์„ ์ฃผ๊ธฐ์ ์œผ๋กœ ํ™•์ธํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.ย 2. PostgreSQL ๋ฒ„์ „ ํ™•์ธ ๋ฐฉ๋ฒ• 2-1. SQL ์ฟผ๋ฆฌ ์‹คํ–‰: VERSION() PostgreSQL ์ฟผ๋ฆฌ๋กœ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ฒ„์ „ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์„œ๋ฒ„์˜ ๋ฒ„์ „์ •๋ณด๋ฅผ ํฌํ•จํ•œ ์ƒ์„ธ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ...