2023. 3. 11. 20:48ใ๐ป์คํฐ๋ ๊ด๋ฆฌ/๐์๋ฒ ์ฌ์ด๋ ํ๋ก์ ํธ ์ฑ๋ฆฐ์ง
https://github.com/mooh2jj/side-project-challenge-study/tree/main/%EA%B9%80%EB%AC%B4%EA%B1%B4/week1
GitHub - mooh2jj/side-project-challenge-study: ์๋ฒ ์ฌ์ด๋ ํ๋ก์ ํธ ์ฑ๋ฆฐ์ง ์คํฐ๋์ ๋๋ค.
์๋ฒ ์ฌ์ด๋ ํ๋ก์ ํธ ์ฑ๋ฆฐ์ง ์คํฐ๋์ ๋๋ค. Contribute to mooh2jj/side-project-challenge-study development by creating an account on GitHub.
github.com
1) git-flow ๋ ๋ฌด์์ธ์ง ์ ๋ฆฌ
2) git ๋ํ์ ๋ช
๋ น์ด ์ ๋ฆฌ
3) MySQL์์ DB ํ
์ด๋ธ ์ค๊ณ์ ์ค์ ์์ ๊ฐ ์ ๋ฆฌ
์ฑ๋ฆฐ์ง) ๊ฐ ๊ฐ๋ณ๋ก ๋๋ฆฝ๋๋ค.
1. Git - flow๋ ๋ฌด์์ธ์ง ์ ๋ฆฌ
- ํ์
์๋ ํฌ๊ฒ 3๊ฐ์ง ๊ตฌ์ฑ์ด ์๋ค.
1. Fork ์ Pull Request ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
2. Organization ๊ณผ branch ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
3. Organization ๊ณผ ๋จ์ผ ๋ธ๋์น๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
1๋ฒ ๋ฐฉ๋ฒ์ ๋ค์์ repo๊ฐ ์์ฑ๋๋ค๋ ๋จ์ ์ด ์๋ค.
2๋ฒ ๋ฐฉ์์ master๋ธ๋์น๊ฐ ํญ์ ์์ ํ ๊ธฐ๋ฅ์ ๊ฐ์ถฐ์ผํ๋ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๋ค.
3๋ฒ ๋ฐฉ์์ ๋์ผํ repo๋ฅผ ์์
์ ํ๋ฉด ๋ค๋ฅธ ์ฌ๋์ด ์๊ฒฉ ์ ์ฅ์๋ก ์ฌ๋ฆฐ ์ปค๋ฐ์ ๋ก์ปฌ์ ๋ฐ์ํ์ง ๋ชปํ ๊ฒฝ์ฐ๊ฐ ์๋ค.
์ด ๊ฒฝ์ฐ์ pull์ ํ๋ฉด ๋จธ์ง ์ปค๋ฐ์ด ์์ฑ๋์ด git log์ ์ง์ฅ์ด ์์์ด ๋๋ค. ๊ทธ๋์ ๋ณดํต์ rebase๋ฅผ ์ฌ์ฉํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค.
- Git Flow๋ 5๊ฐ์ง์ ๋ธ๋์น๋ฅผ ๋ฌด์กฐ๊ฑด ์ฌ์ฉx
- ๊ฐ ํ๋ก์ ํธ ๋ฐ ์กฐ์ง์ ์ ํฉํ ๊ท์น์ ๋ฐ๋ผ์ O
2. Git ๋ช ๋ น์ด ์ ๋ฆฌ
git init: Git ์ ์ฅ์๋ฅผ ์ด๊ธฐํํฉ๋๋ค.
git clone: ์๊ฒฉ ์ ์ฅ์๋ฅผ ๋ณต์ ํฉ๋๋ค.
git add: ๋ณ๊ฒฝ๋ ํ์ผ์ ์คํ
์ด์ง์ ์ถ๊ฐํฉ๋๋ค.
git commit: ์คํ
์ด์ง์ ์๋ ํ์ผ๋ค์ ์ปค๋ฐํฉ๋๋ค.
git push: ๋ก์ปฌ ์ ์ฅ์์ ๋ณ๊ฒฝ ๋ด์ฉ์ ์๊ฒฉ ์ ์ฅ์๋ก ์ ์กํฉ๋๋ค.
git pull: ์๊ฒฉ ์ ์ฅ์์ ๋ณ๊ฒฝ ๋ด์ฉ์ ๋ก์ปฌ ์ ์ฅ์๋ก ๊ฐ์ ธ์ต๋๋ค.
git status: ํ์ฌ ์ ์ฅ์์ ์ํ๋ฅผ ํ์ธํฉ๋๋ค.
git log: ์ปค๋ฐ ๋ด์ญ์ ํ์ธํฉ๋๋ค.
git branch: ๋ธ๋์น๋ฅผ ์์ฑํ๊ฑฐ๋ ํ์ธํฉ๋๋ค.
git checkout: ๋ธ๋์น๋ฅผ ๋ณ๊ฒฝํ๊ฑฐ๋ ํน์ ์ปค๋ฐ์ผ๋ก ์ด๋ํฉ๋๋ค.
3. MySQL์์ DB ํ ์ด๋ธ ์ค๊ณ ์ค์ ์์ ์ ๋ฆฌ
1. ๋ฐ์ดํฐ ํ์
: MySQL์ ๋ง์ ๋ฐ์ดํฐ ํ์
์ ์ ๊ณตํ๋ค. ์ด๋ ํ๋์ ์ ์ ํ ๋ฐ์ดํฐ ํ์
์ ์ ํ -> ์ ํ์ฑ ์ฑ๋ฅ ํฅ์
2. ์ธ๋ฑ์ค : ์ธ๋ฑ์ค๋ ํ
์ด๋ธ์์ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ๊ฒ์ํ ์ ์๋๋ก ํด์ฃผ๋ ์ค์ํ ์์
https://pos04167.tistory.com/118
3. ์ ๊ทํ
- ์ ๊ทํ : ๋ฐ์ดํฐ์ ์ค๋ณต ๋ฐ์ดํฐ์ ์ด์ ํ์์ ์ ๊ฑฐํ์ฌ ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ , ์ฑ๋ฅ ํฅ์์ ๋ชฉํ
1์ฐจ ์ ๊ทํ(1NF): ๋ชจ๋ ํ๋๊ฐ ์์ ๊ฐ(Atomic Value)์ ๊ฐ์ง๋ฉฐ, ์ค๋ณต๋๋ ๋ฐ์ดํฐ๊ฐ ์์ด์ผ ํฉ๋๋ค.
2์ฐจ ์ ๊ทํ(2NF): 1์ฐจ ์ ๊ทํ์ ๋ง์กฑํ๋ฉด์ ๊ธฐ๋ณธ ํค๊ฐ ์๋ ๋ชจ๋ ํ๋๊ฐ ๊ธฐ๋ณธ ํค์ ๋ํด ์์ ํจ์์ ์ข
์( Fully functional dependency)์ ๋ง์กฑํด์ผ ํฉ๋๋ค.
3์ฐจ ์ ๊ทํ(3nf) : ๋น์ฃผ์ ์ด ๊ฐ์ ์์กด์ฑ์ด ์์ด์ผ ํฉ๋๋ค.
4. ์ ์ฝ ์กฐ๊ฑด : ์ ์ฝ ์กฐ๊ฑด์ ์ด์ฉํด์ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ๋ค. ->pk , fk , not null ...
5. ์๋ณ ๋น์๋ณ ๊ด๊ณ๋ฅผ ์๊ฐ
- ์๋ณ : ๋ถ๋ชจ ํ
์ด๋ธ์ PK๊ฐ ์์ ํ
์ด๋ธ์ FK๋ก ์ฌ์ฉ - ๋ณดํต 1:1/1:N
- ์ด๊ฑธ ๋ณด๋ฉด ์์ ํ
์ด๋ธ์๋ ๋ถ๋ชจ PK๊ฐ ๋ณตํฉํค๋ก ์ฌ์ฉ์ด ๋๋ค.
- ๊ทธ๋ฌ๋ฉด ์ด๋ฐ ์๊ฐ์ด ์๊ธด๋ค? ๋ณตํฉํค๋ ์ธ๋ฑ์ค๋ฅผ ์ด๋ป๊ฒ ํ์ง??
- ์ด๋ ๋ณตํฉํค๋ ์ธ๋ฑ์ค๋ฅผ ํ๋ ๋ฐฉ์์ ๋จ์ผ ์ด ๊ธฐ๋ณธ ํค์ ์ ์ฌํ๋ฐ ๊ฐ ์ด์ ๊ฐ์ ๋ํ ์ธ๋ฑ์ค ์ด์ ์์ฑํ์ฌ ๋ณตํฉ ์ธ๋ฑ์ค๋ฅผ ๊ตฌ์ฑํ๋ค.
- ๋น์๋ณ : ๋ถ๋ชจ ํ
์ด๋ธ์ PK๊ฐ ์์ ํ
์ด๋ธ์ ์ผ๋ฐ ์ด๋ก ๋ค์ด๊ฐ๋ ๊ฒฝ์ฐ : N:M
4. ๊ฐ์ธ ๊ณผ์ (MySQL์์ ์ต์ ํ๋ฅผ ์ํ ์ค์ / ์ธ๋ฑ์ค์์ ์๋ฃ ๊ตฌ์กฐ ๊ด์ ์์ ์ฅ๋จ์ ์กฐ์ฌ)
1. ๋ฒํผ ํ ํฌ๊ธฐ ์ค์ : innodb_buffer_pool_size
๋ฒํผ ํ ํฌ๊ธฐ๋ MySQL์ด ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์บ์ฑํ๋ ํฌ๊ธฐ์
๋๋ค.
์ด ๊ฐ์ ์ ์ ํ ์ค์ ํ๋ฉด ๋์คํฌ I/O๋ฅผ ์ค์ด๊ณ ์ฟผ๋ฆฌ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์์ต๋๋ค.
๋ฒํผ ํ์ DBMS๊ฐ ํ ๋นํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์์ ๊ตฌ์ฑ๋๋ฉฐ, ์ฝ์ด์จ ๋ฐ์ดํฐ๋ ๋ฒํผ ํ์ ์ ์ฅ๋ฉ๋๋ค. ์ดํ, ๊ฐ์ ๋ฐ์ดํฐ๊ฐ ๋ค์ ํ์ํ ๊ฒฝ์ฐ์๋ ๋์คํฌ์์ ์ฝ์ด์ค์ง ์๊ณ ๋ฒํผ ํ์์ ๋น ๋ฅด๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์์ ์ฒ๋ฆฌํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด SELECT ์ฟผ๋ฆฌ๋ฅผ ์คํ์ ํ๊ฒ ๋๋ฉด
1. ์ฟผ๋ฆฌ ์
๋ ฅ ๊ฐ์ ๋ํ ํด์ ๊ฐ์ ์์ฑ
2. ํค์ ํด์ ๊ฐ / ๊ฐ์ ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ ๊ฐ์ ์ ์ฅํ๊ฒ ๋๋ค.
3. ์บ์์์ ๊ฒฐ๊ณผ ๊ฐ์ ์ฐพ์ ์ ์์ผ๋ฉด ๋์คํฌ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์จ๋ค.
2. ์ฟผ๋ฆฌ ์บ์ ํฌ๊ธฐ ์ค์ : query_cache_size
์ฟผ๋ฆฌ ์บ์ ํฌ๊ธฐ๋ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ์บ์ฑํ๋ ํฌ๊ธฐ์
๋๋ค.
์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ์บ์ฑํ๋ฉด ๋์ผํ ์ฟผ๋ฆฌ๋ฅผ ์คํํ ๋ ๋น ๋ฅด๊ฒ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ ์ ์์ผ๋ฏ๋ก ์ฟผ๋ฆฌ ์ฑ๋ฅ์ด ํฅ์๋ฉ๋๋ค.
ํ์ง๋ง ์ฟผ๋ฆฌ ์บ์ ํฌ๊ธฐ๋ฅผ ๋๋ฌด ํฌ๊ฒ ์ค์ ํ๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ์ผ๋ก ์ธํ ์ฑ๋ฅ ์ ํ๊ฐ ๋ฐ์ํ ์ ์์ผ๋ฏ๋ก ์ ์ ํ ๊ฐ์ ์ค์ ํด์ผ ํฉ๋๋ค.
3. ๋ก๊ทธ ๋ ๋ฒจ ์ค์ : log_error_verbosity
๋ก๊ทธ ๋ ๋ฒจ์ ๋์ฌ์ ๋๋ฒ๊น
์ ํ ๋ ์ ์ฉํฉ๋๋ค. ๋ก๊ทธ ๋ ๋ฒจ์ ๋์ด๋ฉด MySQL์์ ๋ฐ์ํ๋ ์ค๋ฅ ๋ฐ ๊ฒฝ๊ณ ๋ฉ์์ง๋ฅผ ๋ ์์ธํ๊ฒ ํ์ธํ ์ ์์ต๋๋ค.
4. ์ธ๋ฑ์ค ์ค์ : index_merge
์ธ๋ฑ์ค ์ค์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ๊ฒ์ํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค.
MySQL์์๋ ์ธ๋ฑ์ค๋ฅผ ์ด์ฉํด ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๋๋ฐ, ์ฌ๋ฌ ๊ฐ์ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ ๋ index_merge ์ต์
์ ํ์ฑํํ๋ฉด ๋์ฑ ๋น ๋ฅด๊ฒ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ ์ ์์ต๋๋ค.
- index_merge ์ต์
??
์ฌ๋ฌ ๊ฐ์ ์ธ๋ฑ์ค๋ฅผ ์กฐํฉํด ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๋ ์ต์
์ด๋ค.
```sql
SELECT * FROM table_name
WHERE column1 = 'value1'
AND column2 = 'value2'
```
์์ ์ฟผ๋ฆฌ๋ฅผ ์ดํด๋ณด๋ฉด ๋ง์ฝ์ ๊ฐ๊ฐ์ ์กฐ๊ฑด์ ์ธ๋ฑ์ค 1,2๊ฐ ์กด์ฌํ๋ค๋ฉด index_merge ์ต์
์ ์ฌ์ฉํ์ฌ
๊ฐ๊ฐ์ ์กฐ๊ฑด์ ํด๋นํ๋ ๋ ์ฝ๋๋ฅผ ๊ฒ์ํ๋ ๊ฒ๋ณด๋ค ๋น ๋ฅด๊ฒ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ ์ ์๋ค.
5. ์ฐ๊ธฐ ์์
์ ์ง์ฐ ์ค์ : innodb_flush_log_at_trx_commit
1. ํธ๋์ญ์
์ปค๋ฐ ์ ๋์คํฌ์ ์ ์ฅ x , ๋ฒํผ ํ์ ๋ฐ์ดํฐ ์ ์ง -> ๊ฐ์ฅ ๋น ๋ฅด์ง๋ง ์์คํ
์ด ๊บผ์ง๋ฉด ๋ฒํผ ํ์ด ๋ ๋ผ๊ฐ์ ์ํ
2. ์ปค๋ฐ ์๋ง๋ค ๋์คํฌ์ ๋ฐ์ดํฐ ์ ์ฅ : ๋ฐ์ดํฐ ์ผ๊ด์ฑ์ด ์ข๋ค. ํ์ง๋ง ์ฑ๋ฅ์ด ๋จ์ด์ง๋ค.
3. ์ปค๋ฐ ์ ๋์คํฌ์ ๋ฐ์ดํฐ ๊ธฐ๋ก x , ๋ฒํผ ํ์ ๋ฐ์ดํฐ๋ฅผ ์ ์งํ์ง๋ง 1์ด๋ง๋ค ๋์คํฌ์ ๊ธฐ๋ก : ์ผ๊ด์ฑ , ์ฑ๋ฅ์ ๋ค ๊ณ ๋ ค
- ๊ธฐ๋ณธ์ ์ผ๋ก 2 ๋ฐฉ์์ ์ฌ์ฉํ๋ค. 0,2๋ฅผ ์ค์ ํ์ฌ ์ฑ๋ฅ์ ๋์ผ ์ ์๋ค.
# ์๋ฃ๊ตฌ์กฐ ๊ด์ ์์ ์์๋ณด์
1. MySQL์ ๊ธฐ๋ณธ์ ์ผ๋ก B-Tree๋ฅผ ์ฌ์ฉํ๋ค. ์ด ๊ตฌ์กฐ๋ ์ด์งํธ๋ฆฌ์ ๋น์ทํ์ง๋ง ๋ค๋ฅด๋ค.
์ฌ๊ธฐ์ B๋ ๋ฐ์ด๋๋ฆฌ๊ฐ ์๋ Balance๋ฅผ ์๋ฏธ
- B-Tree๋
๋ฐ์ด๋๋ฆฌ ์์น ํธ๋ฆฌ์์ ๋ฐ์ ๋์ด ๋ชจ๋ ๋ฆฌํ๋
ธ๋๋ค์ด ๊ฐ์ ๋ ๋ฒจ์ ๊ฐ์ง ์ ์๋๋ก ์๋์ผ๋ก ๊ท ํ์ ๋ง์ถ๋ ํธ๋ฆฌ
์ด์งํธ๋ฆฌ์ ๋ค๋ฅด๊ฒ ํ๋์ ๋
ธ๋์ ๋ง์ ํธ๋ฆฌ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
์ฌ๊ธฐ์ ํ์์ ๊ณผ์ ์ ์ดํด๋ณด๋ฉด
1. ๋ฃจํธ ๋
ธ๋์์ ์์์ผ๋ก ํ์์์ผ๋ก key ๊ฒ์์ ์ํ ํ๋ค.
- ๋ง์ฝ์ k์ ๊ฐ์ ํค๋ฅผ ์ฐพ์ผ๋ฉด ํ์ ์ข
๋ฃ
- ๊ฒ์ํ๋ ๊ฐ๋ค๊ณผ key๋ค์ ๋์๊ด๊ณ๋ฅผ ๋น๊ตํ๋ฉฐ ์ด๋ ํ key ์ฌ์ด์ k๊ฐ ์กด์ฌํ๋ค๋ฉด ์์ ๋
ธ๋๋ก ์งํ
2. ํด๋น ๊ณผ์ ์ ๋ฆฌํ ๋
ธ๋์ ๋๋ฌํ ๋๊น์ง ๋ฐ๋ณต
3. ๋ง์ฝ์ ๋ฆฌํ ๋
ธ๋์ k๊ฐ ์์ผ๋ฉด ๊ฒ์ ์คํจ
### ๋ถํ ๊ณผ ๋ณํฉ
- ๋ถํ ์ ๋ฆฌํ ๋
ธ๋์ ์ฝ์
์ ํ์์ ๋ ์๋ก์ด ํค ๊ฐ์ด ํด๋น ๋ฆฌํ ๋
ธ๋์ ์ด๋ฏธ ์กด์ฌํ๋ฉด ์ฝ์
์ฐ์ฐ์ด ์คํจํ๋ค.
- ์ด๋ b-tree๋ ๋ฆฌํ ๋
ธ๋๋ฅผ ๋ถํ ํ์ฌ ์๋ก์ด ํค ๊ฐ์ ์ ์ฅํ ๊ณต๊ฐ์ ํ๋ณด
- ๋
ธ๋๊ฐ ์์ง์ด๋ ๊ฒ์ด ์๋๋ผ ์๋ก์ด ๋ฆฌํ ๋
ธ๋๋ฅผ ์์ฑ
- ๋ณํฉ์ ์ญ์ ์ฐ์ฐ์ ํ ๋ ํค ๊ฐ์ด ์ ์ฅ๋ ๋
ธ๋๊ฐ ๋ฆฌํ ๋
ธ๋์ธ ๊ฒฝ์ฐ ํด๋น ๋
ธ๋๋ฅผ ์ญ์ ํ๊ณ
- ๋ฆฌํ ๋
ธ๋์ ์๋ฅผ ์ค์ธ๋ค. ์ด ๋ ์ธ์ ํ ๋
ธ๋๋ฅผ ํฉ์ณ์ ํ๋์ ๋
ธ๋๋ก ๋ง๋ ๋ค.
'๐ป์คํฐ๋ ๊ด๋ฆฌ > ๐์๋ฒ ์ฌ์ด๋ ํ๋ก์ ํธ ์ฑ๋ฆฐ์ง' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ ์๋ฒ ์ฌ์ด๋ ํ๋ก์ ํธ ์ฑ๋ฆฐ์ง ] 23.04.08 -week6 (0) | 2023.04.09 |
---|---|
[ ์๋ฒ ์ฌ์ด๋ ํ๋ก์ ํธ ์ฑ๋ฆฐ์ง ] 23.04.01 - week5 (0) | 2023.04.07 |
[ ์๋ฒ ์ฌ์ด๋ ํ๋ก์ ํธ ์ฑ๋ฆฐ์ง ] 23.03.25 - week 4 (0) | 2023.04.07 |
[ ์๋ฒ ์ฌ์ด๋ ํ๋ก์ ํธ ์ฑ๋ฆฐ์ง ] 23.03.18 week 3 (0) | 2023.03.21 |
[์๋ฒ ์ฌ์ด๋ ํ๋ก์ ํธ ์ฑ๋ฆฐ์ง] 23.03.04 - OT ์ฑ๋ฆฐ์ง (0) | 2023.03.05 |