πŸ“Œ λ“€μ–΄κ°€λ©°

μ €λ²ˆ ν¬μŠ€νŒ…μ—μ„œλŠ” node.js와 Expressλ₯Ό μ΄μš©ν•œ κ°„λ‹¨ν•œ μ„œλ²„ ꡬ좕을 ν•΄λ³΄μ•˜μŠ΅λ‹ˆλ‹€.

이번 κΈ€μ—μ„œλŠ” Express 폴더, νŒŒμΌμ— λŒ€ν•΄ μ’€ 더 μžμ„Έν•˜κ²Œ 닀뀄보렀고 ν•©λ‹ˆλ‹€.

 

⬇️ μ €λ²ˆ ν¬μŠ€νŒ… λ³΄λŸ¬κ°€κΈ°!

https://ju-hyeon.tistory.com/28

 

[Server] nodejs, express μ„œλ²„ ꡬ좕

 πŸ“Œ λ“€μ–΄κ°€λ©° μ΅œκ·Όμ— μ„œλ²„ ν”„λ‘œμ νŠΈλ₯Ό λͺ‡ 개 μ‹œμž‘ν•˜λ©΄μ„œ μ„œλ²„ ꡬ좕을 μ²˜μŒλΆ€ν„° λ‹€λ€„λ³΄κ³ μž 글을 μž‘μ„±ν•˜λ €κ³  ν•©λ‹ˆλ‹€. 이 κΈ€μ—μ„œλŠ” κ°„λ‹¨ν•œ express ν”„λ‘œμ νŠΈ μƒμ„±ν•˜λŠ” 법을 닀루고, λ‹€μŒ κΈ€μ—μ„œλŠ”

ju-hyeon.tistory.com

 

 πŸ“Œ Express ꡬ쑰

​가μž₯ μƒλ‹¨μ˜ practice (express λͺ…λ Ήμ–΄λ‘œ λ§Œλ“  ν”„λ‘œμ νŠΈμ˜ 이름) λ₯Ό 눌러보면

5개의 폴더와 app.js, package.json을 λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

 

μœ„μ—μ„œ λΆ€ν„° ν•˜λ‚˜μ”© λœ―μ–΄λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€.

 

1. bin 폴더

binν΄λ”μ—λŠ” 였λ₯Έ μͺ½ 이미지와 같은 www파일이 μžˆμŠ΅λ‹ˆλ‹€.

이 νŒŒμΌμ€ μ„œλ²„λ₯Ό μ‹€ν–‰ν•˜λŠ” 슀크립트이며 ν”„λ‘œμ νŠΈμ— ν• λ‹Ήλ˜λŠ” 포트 번호λ₯Ό λ³€κ²½ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

πŸ”΄ 포트번호 주의 (κ²ΉμΉ˜μ§€ μ•Šλ„λ‘ μ£Όμ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€.)

1 ~ 1023: well-known port

1024 ~ 49151: registered port

49152 ~ 65535: dynamic port

 

well-known portλž€?

κ΅­μ œμΈν„°λ„·μ£Όμ†Œκ΄€λ¦¬κΈ°κ΅¬μΈ ICANNμ—μ„œ TCP, UDP에 ν• λ‹Ήν•œ 포트 λ²ˆν˜Έμž…λ‹ˆλ‹€.

ν•΄λ‹Ή 포트 λ²ˆν˜Έλ“€μ€ νŠΉμ • μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ‚¬μš©ν•˜κΈ° μœ„ν•΄ ν• λ‹Ήλœ 포트 λ²ˆν˜Έμž…λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄, 20번과 21번 ν¬νŠΈλŠ” TCP, 22λ²ˆμ€ SSH 등이 μžˆμŠ΅λ‹ˆλ‹€.

각 ν¬νŠΈλŠ” κ°•μ œκ°€ μ•„λ‹ˆλΌ ꢌ고 사항이라 ν• λ‹Ήλœ 포트 번호λ₯Ό κ·ΈλŒ€λ‘œ μ‚¬μš©ν•˜μ§€ μ•Šκ³  λ‹€λ₯Έ 포트 번호λ₯Ό μ‚¬μš©ν•˜κΈ°λ„ ν•©λ‹ˆλ‹€.

 

registered portλž€?

νŠΉμ • μš©λ„λ‘œ μ‚¬μš©ν•˜κΈ° μœ„ν•œ 포트 λ²ˆν˜Έμž…λ‹ˆλ‹€.

λ“±λ‘λœ ν¬νŠΈλΌλŠ” 것은 말 κ·ΈλŒ€λ‘œ κΈ°μ—…μ—μ„œ λ“±λ‘ν•΄μ„œ μ‚¬μš©μ΄ κ°€λŠ₯ν•œ ν¬νŠΈμž…λ‹ˆλ‹€.

예λ₯Ό λ“€λ©΄, 8080번 ν¬νŠΈλŠ” HTTP 포트λ₯Ό λŒ€μ²΄ν•  수 μžˆλŠ” 포트 λ˜λŠ” MSμ—μ„œ μ œκ³΅ν•˜λŠ” SQL을 μ‚¬μš©ν•˜κΈ° μœ„ν•œ 1433 포트 등이 μžˆμŠ΅λ‹ˆλ‹€.

registered port도 κ°•μ œκ°€ μ•„λ‹Œ κΆŒκ³ μ‚¬ν•­μ΄λΌ ν• λ‹Ήλœ 포트 번호λ₯Ό κ·ΈλŒ€λ‘œ μ‚¬μš©ν•˜μ§€ μ•Šκ³  λ‹€λ₯Έ 포트 번호λ₯Ό μ‚¬μš©ν•˜κΈ°λ„ ν•©λ‹ˆλ‹€.

 

dynamic portλž€?

νŠΉλ³„νžˆ μš©λ„κ°€ μ§€μ •λ˜μ§€ μ•Šμ•˜μœΌλ©°, μ–΄λŠ ν”„λ‘œκ·Έλž¨μ—μ„œλ‚˜ μ‚¬μš©μ΄ κ°€λŠ₯ν•œ 포트 λ²ˆν˜Έμž…λ‹ˆλ‹€.

 

포트 μ„€λͺ… 좜처: https://m.blog.naver.com/kyeong477/221558180792

 

 

2. public 폴더

public ν΄λ”μ—λŠ” 각쒅 λ¦¬μ†ŒμŠ€λ“€μ΄ ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

이미지, JS파일, stylesheets νŒŒμΌμ„ λ³Ό 수 μžˆλ„€μš”!

 

이 ν΄λ”λŠ” μ„œλ²„μ—μ„œ κ±΄λ“œλ¦΄ 일이 μ—†μŠ΅λ‹ˆλ‹€!

 

 

3. routes 폴더

route ν΄λ”μ—λŠ” νŽ˜μ΄μ§€ λΌμš°νŒ…κ³Ό κ΄€λ ¨λœ νŒŒμΌλ“€μ΄ λ“€μ–΄μžˆμŠ΅λ‹ˆλ‹€.

μ£Όμ†Œ λ³„λ‘œ λΌμš°ν„°λ“€μ„ λͺ¨μ•„λ‘” 것이며 URL λ³„λ‘œ μ‹€ν–‰λ˜λŠ” μ‹€μ œ μ„œλ²„ λ‘œμ§μž…λ‹ˆλ‹€.

 

index.jsλ₯Ό μ‹œμž‘μœΌλ‘œ 관리해주면 λ©λ‹ˆλ‹€.

이 λΌμš°ν„°μ— λŒ€ν•΄μ„œλŠ” μ œκ°€ 주둜 μ‚¬μš©ν•˜λ˜ 폴더링 κ΅¬μ‘°μ—μ„œ ν™•μΈν•˜μ‹œλ©΄ μ΄ν•΄ν•˜κΈ° μ‰¬μšΈ κ²λ‹ˆλ‹€!

 

 

4. views 폴더

views ν΄λ”μ—λŠ” jade, ejs λ“± ν…œν”Œλ¦Ώ νŒŒμΌλ“€μ„ λͺ¨μ•„ λ‘‘λ‹ˆλ‹€.

μ›Ή μ„œλ²„ μ‚¬μš© μ‹œ ν•΄λ‹Ή ν΄λ”μ˜ νŒŒμΌλ“€μ„ μ‚¬μš©ν•΄μ„œ λ Œλ”λ§ ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

 

이 폴더도 public 폴더와 같이 μ„œλ²„μ—μ„œ κ±΄λ“œλ¦΄ 일이 μ—†μŠ΅λ‹ˆλ‹€!

 

 

5. app.js

app.js νŒŒμΌμ€ ν”„λ‘œμ νŠΈμ˜ μ€‘μ‹¬μ΄μž 핡심적인 μ„œλ²„ 역할을 ν•©λ‹ˆλ‹€.

이 νŒŒμΌμ—μ„œλŠ” 미듀웨어 관리가 이루어지며 λΌμš°νŒ…μ˜ μ‹œμž‘μ μ΄ λ©λ‹ˆλ‹€.

 

 

6. package.json

package.json νŒŒμΌμ€ μ €λ²ˆ ν¬μŠ€νŒ…μ—μ„œ μ„€λͺ…ν•œ 것과 같이 ν”„λ‘œμ νŠΈμ— μ‚¬μš©λœ λͺ¨λ“ˆλ“€μ΄ λ‚˜μ™€μžˆμŠ΅λ‹ˆλ‹€.

 

npm install λͺ…λ Ήμ–΄λ₯Ό μ΄μš©ν•΄ ν•΄λ‹Ή νŒŒμΌμ— μžˆλŠ” λͺ¨λ“ˆλ“€μ„ λͺ¨λ‘ μ„€μΉ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λ˜ν•œ npm <λͺ¨λ“ˆλͺ…>을 ν•˜κ²Œ λœλ‹€λ©΄ package.json νŒŒμΌμ— μΆ”κ°€λ©λ‹ˆλ‹€.

 

 

 πŸ“Œ 마치며

Express처럼 μžλ™μœΌλ‘œ μƒμ„±λ˜κ±°λ‚˜ νƒ€μΈμ˜ ν”„λ‘œμ νŠΈ λ‚΄μš©μ„ μ΄ν•΄ν•˜κΈ° μœ„ν•΄μ„œλŠ” 폴더, νŒŒμΌμ„ λœ―μ–΄λ³΄λŠ” 것이 정말 μ€‘μš”ν•©λ‹ˆλ‹€!

저도 λ™μ•„λ¦¬μ—μ„œ 처음 μ„œλ²„λ₯Ό 곡뢀할 λ•ŒλŠ” 파트μž₯λ‹˜μ΄ λ§Œλ“€μ–΄μ£Όμ‹  보일러 ν”Œλ ˆμ΄νŠΈλ₯Ό μ‚¬μš©ν•˜μ—¬ api μ½”λ“œλ₯Ό μ§œλŠ” 것에 집쀑을 ν–ˆμ—ˆμŠ΅λ‹ˆλ‹€.

μ΅œκ·Όμ— μ§„ν–‰ν•œ μ„œλ²„ ν”„λ‘œμ νŠΈμ—μ„œλŠ” 정말 λͺ¨λ“  νŒŒμΌμ„ λœ―μ–΄λ³Έ 것 κ°™μŠ΅λ‹ˆλ‹€.

μ‹œκ°„μ΄ μ’€ 걸렀도 μ΄λ ‡κ²Œ κ³΅λΆ€ν–ˆλ˜ 것이 μ„œλ²„ 둜직 이해 뿐만 μ•„λ‹ˆλΌ μ½”λ“œ μ§œλŠ” 것에도 도움이 되고, 였λ₯˜κ°€ λ‚˜λ„ μ–΄λ””μ„œ 였λ₯˜κ°€ 났고 μ–΄λ–€ 것을 μˆ˜μ •ν•΄μ•Ό ν•˜λŠ”μ§€ μ•ŒκΈ° μ‰¬μ› λ˜ 것 κ°™μŠ΅λ‹ˆλ‹€.

apiλ₯Ό μ§œλŠ” 것도 μ€‘μš”ν•˜μ§€λ§Œ νŒŒμΌμ„ μ²˜μŒλΆ€ν„° ν•˜λ‚˜ν•˜λ‚˜ λœ―μ–΄λ³΄λŠ” 것을 μΆ”μ²œλ“œλ¦½λ‹ˆλ‹€!!!! νŒŒμ΄νŒ… πŸ‘

 

λ‹€μŒ ν¬μŠ€νŒ…μ—μ„œλŠ” firebase functionsλ₯Ό μ΄μš©ν•œ μ„œλ²„ 초기 μ…‹νŒ… 방법, 자주 μ‚¬μš©ν•œ 폴더링 ꡬ쑰λ₯Ό κ³΅μœ ν•˜λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€.

 

 

 

μ°Έκ³ : SOPT 29th μ„œλ²„ 파트 2μ°¨ μ„Έλ―Έλ‚˜ 자료

+ Recent posts