๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐ŸŒป์Šคํ„ฐ๋”” ๊ด€๋ฆฌ/๐Ÿ™‰์„œ๋ฒ„ ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ ์ฑŒ๋ฆฐ์ง€

[์„œ๋ฒ„ ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ ์ฑŒ๋ฆฐ์ง€] 23.03.04 - OT ์ฑŒ๋ฆฐ์ง€

by MuGeon Kim 2023. 3. 5.
๋ฐ˜์‘ํ˜•

https://github.com/mooh2jj/side-project-challenge-study/tree/main/%EA%B9%80%EB%AC%B4%EA%B1%B4

 

GitHub - mooh2jj/side-project-challenge-study: ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ ์ฑŒ๋ฆฐ์ง€ ์Šคํ„ฐ๋””์ž…๋‹ˆ๋‹ค.

์„œ๋ฒ„ ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ ์ฑŒ๋ฆฐ์ง€ ์Šคํ„ฐ๋””์ž…๋‹ˆ๋‹ค. Contribute to mooh2jj/side-project-challenge-study development by creating an account on GitHub.

github.com

์›น๊ฐœ๋ฐœ์—์„œ ์•Œ์•„์•ผ ํ•˜๋Š” server์—๋Š” 4์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค.
1) ํด๋ผ์ด์–ธํŠธ ์„œ๋ฒ„(์‚ฌ์šฉ์ž) - ์‚ฌ์šฉ์ž๊ฐ€ ์›น๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด request ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ์„œ๋ฒ„
2) ์›น์„œ๋ฒ„ - ์‚ฌ์šฉ์ž ์š”์ฒญํ•˜๋Š” ์ž๋ฃŒ ์ค‘ ์ •์  ์ž๋ฃŒ(html, css, js, imag.. ๋“ฑ)์„ ๋ณด๋‚ด์ฃผ๋Š” ์„œ๋ฒ„
3) WAS - ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญํ•˜๋Š” ์ž๋ฃŒ ์ค‘ ๋™์ (์ฆ‰, cpu ์ปดํŒŒ์ผ ๊ณผ์ •์„ ๊ฑฐ์น˜๋Š” ์ž‘์—…) ์ž๋ฃŒ (DB์™€ ์ฃผ๋กœ ์—ฐ๊ณ„๋œ ์ž๋ฃŒ)
๋ฅผ ๋ณด๋‚ด์ฃผ๋Š” ์„œ๋ฒ„
4) DB์„œ๋ฒ„ - ์‹ค์ œ ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญํ•˜๋Š” ์ž๋ฃŒ ์ค‘ ์œ ์˜๋ฏธํ•œ ์‘๋‹ต๊ฐ’์ธ Data๊ฐ€ ์žˆ๋Š” ์„œ๋ฒ„, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” Table or schema๋กœ ๊ตฌ์„ฑ

 

์–˜๊ธฐํ•œ Topic)


  • DB ์ ‘๊ทผ ๊ธฐ์ˆ  - ORM(JPA), SQLMapper(Mybatis)
  • DB๋Š” ์ปค๋„ฅ์…˜์ด ํ•„์š”ํ•œ๋‹ค → ์ž๋ฐ” ์–ธ์–ด์™€ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ์ปค๋„ฅ์…˜์„ ์ œ๊ณตํ•˜๋Š” ๋””ํŒฌ๋”์‹œ๋กœ JDBC Driver๊ฐ€ ํ•„์š”ํ•˜๋‹ค.
  • WAS์˜ ๋Œ€ํ‘œ์ ์ธ ๊ฒƒ์œผ๋กœ, Tomcat์ด ์žˆ๋‹ค. ์ด Tomcat์€ servelt ์ปจํ…Œ์ด๋„ˆ๋กœ ์„œ๋ธ”๋ฆฟ ๊ฐ์ฒด๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์›น ๊ฐœ๋ฐœ์˜ ํŠนํ™”๋œ Reuqst, Respose ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋™์ ์ธ ์ž๋ฃŒ๋ฅผ ์ค„ ์ˆ˜ ์žˆ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์š”์ฆ˜, ์‚ฌ์šฉํ•˜๋Š” Spring ํ”„๋ ˆ์ž„์›Œํฌ์ธ SpringBoot(Spring 4๋ฒ„์ „)๋Š” ์ด ํ†ฐ์ผ“์„ Embdded(๋‚ด์žฅ)ํ•˜์—ฌ tomcat ์„ค์ • ์—ญ์‹œ ๊ฐ„์†Œํ™”๋˜์–ด ๊ฐœ๋ฐœ์ด ๋” ํŽธํ•ด์กŒ๋‹ค.
  • git bash๋„ ๋ฆฌ๋ˆ…์Šค๋ฅผ ๋นŒ๋ ค ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. git๋„ ๋ฆฌ๋ˆ…์Šค ์ฐฝ์‹œ์ž์ธ ๋ฆฌ๋ˆ…์Šค ํ† ๋ฐœ์ฆˆ๊ฐ€ ๋งŒ๋“ค์—ˆ๋‹ค. bash๋Š” shell ์ข…๋ฅ˜ ์ค‘ ํ•˜๋‚˜๋‹ค. ๊ทธ๋ž˜์„œ git ๋ช…๋ น์–ด๋“ค๋„ linux ๋ช…๋ น์–ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ๋‹ค.
  • ํ–ฅํ›„ docker ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ๋ฆฌ๋ˆ…์Šค ๊ธฐ๋ฐ˜์ด๋‹ค. ๋ฆฌ๋ˆ…์Šค๋ฅผ ์ž˜ ์•Œ์•„๋‘์–ด์•ผ ํ•˜๋Š” ์ด์œ ๋Š” ๋„ˆ๋ฌด๋‚˜ ๋งŽ๋‹ค…

 

์ž, ๊ทธ๋ž˜์„œ Linux๋Š”?


Linux๋Š” ๊ฐ„๋‹จํ•˜๊ฒŒ, ๊ฐœ๋ฐœ์ž(ํ”„๋ก ํŠธ, ๋ฐฑ์•ค๋“œ)๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์„œ๋ฒ„๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ํŽธํ•˜๋‹ค. ๊ฐœ๋ฐœ์„ ํ• ์‹œ๋Š” ๋ฌด์กฐ๊ฑด ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰(Run)ํ•˜๊ณ  ๋ฐฐํฌ(Deploy)ํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์นœ๋‹ค.

์ด ์ž‘์—…์€ GUI ํ™˜๊ฒฝ์˜ ์šด์˜์ฒด์ œ์—์„œ๋Š” ์‹œ๊ฐ„์ด ๋งŽ์ด ๊ฑธ๋ฆฐ๋‹ค.

๊ฐ„๋‹จํ•œ ๋ช…๋ น์–ด(command) ํ˜•ํƒœ๋กœ ์›น๊ฐœ๋ฐœ์˜ ๊ณผ์ •์„ ๊ฐ„์†Œํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋ฒ„๊ฐ€

CLI ํ™˜๊ฒฝ์˜ Linux๋‹ค.

์ฐธ๊ณ ๋กœ, GUIํ™˜๊ฒฝ์˜ ๋ฆฌ๋ˆ…์Šค๋„ ์กด์žฌํ•œ๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ ์‚ฌ์šฉ์ž ๋งž์ถคํ˜•์˜ ๋ฆฌ๋ˆ…์Šค์ธ Ubuntu๊ฐ€ ์žˆ๋‹ค.

์–ด์จ‹๋“ , ์›น๊ฐœ๋ฐœ์ด๋“  ์–ด๋–ค ๊ฐœ๋ฐœ์„ ํ•˜๋“  ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์ž๋ผ๋ฉด Linux๋Š” ๋ฐ˜๋“œ์‹œ ๋ถ€๋”ชํžˆ๋Š” ํ™˜๊ฒฝ์ด๋‹ค.

๊ทธ๋Ÿฌ๋‹ˆ ๊ฐ„๋‹จํ•œ ๋ฆฌ๋ˆ…์Šค ํ™˜๊ฒฝ์˜ ์…‹ํŒ…๋ฒ•๊ณผ ์กฐํšŒ ๋ช…๋ น์–ด๋Š” ์ •๋ฆฌํ•ด๋‘์ž.

๋Œ€ํ‘œ์ ์œผ๋กœ, ์ž๋ฐ” ์›น๊ฐœ๋ฐœ์ž๋ผ๋ฉด ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด๋ฅผ ๋งŽ์ด ์“ฐ์ง€๋งŒ, ์“ฐ์ด๋Š” ๋ช…๋ น์–ด๋“ค์€ ๊ต‰์žฅํžˆ ํ•œ์ •์ ์ด๋‹ค.

๊ฐœ์ธ์ ์œผ๋กœ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด ์ˆœ์œผ๋กœ ์ •๋ฆฌํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

1) ์กฐํšŒ ls, cd, grep , ์ƒ์„ฑ touch, vi mkdir
2) ํŒŒ์ดํ”„๋ผ์ธ , ๋ฆฌ๋‹ค์ด๋ ‰์…˜ (|, >)
3) vi ํŽธ์ง‘๊ธฐ  -> insert ํ›„ esc, wq!์˜ ์˜๋ฏธ ๋“ฑ๋“ฑ 
4) network ํ™•์ธ์šฉ curl ping nslookup ... 
5) ์‰˜ ์Šคํฌ๋ฆฝํŠธ = ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด ๋ชจ์•„๋†“์•„ XXX.sh ๋ฐฐ์น˜ํŒŒ์ผ์ž„ ex) gradle ํŒŒ์ผ, ์œˆ๋„์šฐ์šฉ์€ bat ํŒŒ์ผ์ด๋‹ค.

 

๋Œ€ํ‘œ์  ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด ์ •๋ฆฌ


# ์„ค์น˜ ํ›„ ์—…๋ฐ์ดํŠธ ๋ช…๋ น์–ด
apt-get upgrade
apt-get update

# ๐Ÿ’ฅ ์ฃผ์˜) sudo ๋ช…๋ น์–ด๊ฐ€ ๊ผญ ํ•„์š”!

# vi ํŽธ์ง‘๊ธฐ ์œ„ํ•ด ํ•„์š”
apt-get install vim
# ifconfig ์œ„ํ•ด ํ•„์š”
apt-get install net-tools

# ๋ฆฌ๋ˆ…์Šค ์ปค๋„ ๋ฒ„์ „ ํ™•์ธ
cat /etc/issue

# ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ shell ๋ฆฌ์ŠคํŠธ ํ™•์ธ
cat /etc/shells

 

# ๊ธฐ๋ณธ ๋ช…๋ น์–ด

# ํ˜„์žฌ ์œ„์น˜
pwd

# ํ˜„์žฌ ์‚ฌ์šฉ์ž ์ด๋ฆ„
whoami

# ํ˜„์žฌ ์‹œ๊ฐ„
date

# ๊ทธ์ „ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
cd ..

# ๋ฃจํŠธ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
cd /

# ํ™ˆ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
cd ~

# ๋””๋ ‰ํ† ๋ฆฌ ๊ณ„์ธต ํ™•์ธ
tree

 

# ๋ชจ๋‹ˆํ„ฐ๋ง

# ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค๋“ค๊ณผ ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค๋“ค์ด ์‚ฌ์šฉํ•˜๋Š” 
# CPU ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ™•์ธ
top

# ์‹œ์Šคํ…œ ์ „์ฒด ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰๊ณผ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ ์–‘์„ ๋ณด์—ฌ์คŒ
free

# ๋””์Šคํฌ ์‚ฌ์šฉ๋Ÿ‰์„ ๋ณด์—ฌ์ฃผ๋Š” ๋ช…๋ น์–ด
df -h

 

# ๋„คํŠธ์›Œํฌ 

# ์ง„ํ–‰๋˜๋Š” ํ”„๋กœ์„ธ์Šค ํ™•์ธ
netstat -ano | grep "์ฐพ๋Š” ๋‹จ์–ด"

ps -ef | grep "[์ฐพ๋Š” ๋‹จ์–ด]"

# ๋„คํŠธ์›Œํฌ ํ™•์ธ
netstat -ano | grep "์ฐพ๋Š” ๋‹จ์–ด"

# ip์ฃผ์†Œ ํ™•์ธ 
ifconfig

# curl [ip์ฃผ์†Œ]
curl localhost:8080/api/v1/memo

# ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ ํ™•์ธ
ping [ip์ฃผ์†Œ]  

 

# ๊ถŒํ•œ๋ณ€๊ฒฝ

# ๊ธฐ๋ณธ ์„ค์ • ๊ถŒํ•œ
# owner | group | other ๋กœ ๊ตฌ๋ถ„๋˜์–ด ์ง€๋Š” ๊ฒƒ์ž„			 	      
-rw-r--r--

#๊ฐœ๋ณ„๋‹จ์œ„ ๊ถŒํ•œ ๋ถ€์—ฌ
sudo chmod g+rw/go+rwx testfile2

 

# ์ฐพ๊ธฐ

ps –ef | grep 'abcdefg'

find . -name "[์ฐพ๋Š” ๋‹จ์–ด]"

 

# ์ƒ์„ฑ ๋ฐ ์‚ญ์ œ

# ํŒŒ์ผ ์ƒ์„ฑ
touch file.txt

# ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค์‹œ -p
mkdir -p /test/projects

# ์‚ญ์ œ
rm -rf [ํŒŒ์ผ or ๋””๋ ‰ํ† ๋ฆฌ]

 

# ์ž๋ฐ” jarํŒŒ์ผ ์‹คํ–‰, ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด๋Š” ์•„๋‹ˆ๋‚˜, 
# ๋ฆฌ๋ˆ…์Šคํ™˜๊ฒฝ์—์„œ ์ •๋ง ๋งŽ์ด ์‚ฌ์šฉ
# ์ž๋ฐ” ์‹คํ–‰ ๋ช…๋ น์–ด
java -jar [jar.ํŒŒ์ผ]

# ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์‹คํ–‰
nohup java -jar abcdefg.jar &

 

๋งŽ์ด ์‚ฌ์šฉํ• ์ˆ˜๋ก ์ข‹๋‹ค! ๊ฐœ๋ฐœ์ž์˜ ๊ธฐ์ดˆ์ค‘์— ๊ธฐ์ดˆ, ๋ฆฌ๋ˆ…์Šค์— ์ต์ˆ™ํ•ด์ง€๋ฉด ์ด์ œ ํฐ ๊ณ ๋น„๋ฅผ ๋„˜๊ธด ๊ฒƒ์ด๋‹ค!

ํ–ฅํ›„, AWS ํด๋ผ์šฐ๋“œ ์„œ๋ฒ„ ์„œ๋น„์Šค์ธ EC2 ์„œ๋ฒ„์—์„œ๋„ ๋ฆฌ๋ˆ…์Šค๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋‹ค.

 

 

์ž๋ฐ”๊ฐœ๋ฐœ์ž๊ฐ€ ๋งŽ์ด ์“ฐ๋Š” Linux(Ubuntu) ๋ช…๋ น์–ด

์ž๋ฐ”๊ฐœ๋ฐœ์ž๋กœ์„œ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋Š” ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด๋ฅผ ์ •๋ฆฌํ•ด๋ดค์Šต๋‹ˆ๋‹ค.

velog.io

1) ์‚ฌ์šฉ ํˆด ์„ค์น˜ ๋ฐ ์ดํ•ดํ•˜๊ธฐ 
 * IntelliJ(์–ผํ‹ฐ๋ฉ”์ดํŠธ ๋ฒ„์ „ ์ถ”์ฒœ-ํ”Œ๋Ÿฌ๊ทธ์ธ ์‚ฌ์šฉ ๊ฐ€๋Šฅ)
 * MySQL, DB ์ ‘์† HediSQL or Dbeaver
 * e2e ํ…Œ์ŠคํŠธ์šฉ postman
 * git/github bash, zsh ์„ค์น˜
 * putty or MobaXterm ์„ค์น˜

2) ํ•ด๋‹น ๋ ˆํฌ์ง€ํ† ๋ฆฌ fork & PR ํ•ด๋ณด๊ธฐ

3) Linux Setting ํ™˜๊ฒฝ -> window ์‚ฌ์šฉ์ž๋Š” wsl2 ์„ค์น˜, mac ์‚ฌ์šฉ์ž๋Š” homebrew&iterm2 ์„ค์น˜

4) Linux ๋ช…๋ น์–ด + MySQL SQL ํ•™์Šต

์ฑŒ๋ฆฐ์ง€) 
1) Centos vs Ubuntu ์ฐจ์ด 
2) ์‰ก ์Šคํฌ๋ฆฝํŠธ๋ž€?
3) MySQL5.7 vs MySQL8.0 ์ฐจ์ด

 

๋ฐ˜์‘ํ˜•