λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ–₯️ Backend

πŸ’» λ°±μ—”λ“œλž€ 무엇인가?

by hyebin (Helia) 2025. 5. 20.
λ°˜μ‘ν˜•

 


λͺ©μ°¨

     

     

    μ›Ή μ„œλΉ„μŠ€λ₯Ό λ§Œλ“€λ‹€ 보면 κ°€μž₯ λ¨Όμ € μ‚¬μš©μžμ—κ²Œ λ³΄μ΄λŠ” ν”„λ‘ νŠΈμ—”λ“œ(Front-end)λΆ€ν„° μ ‘ν•˜κ²Œ λ©λ‹ˆλ‹€. ν•˜μ§€λ§Œ κ·Έ ν™”λ©΄ λ’€μ—μ„œ μ‹€μ œλ‘œ 데이터λ₯Ό μ²˜λ¦¬ν•˜κ³  μ €μž₯ν•˜λ©°, 인증 같은 핡심 κΈ°λŠ₯을 λ‹΄λ‹Ήν•˜λŠ” 뢀뢄이 λ°”λ‘œ λ°±μ—”λ“œ(Back-end)μž…λ‹ˆλ‹€.

     

    이번 κΈ€μ—μ„œλŠ” λ°±μ—”λ“œμ˜ μ—­ν• λΆ€ν„° κ°œλ°œμžκ°€ ν•˜λŠ” 일, 그리고 ν˜„λŒ€μ μΈ λ°±μ—”λ“œ μ•„ν‚€ν…μ²˜κΉŒμ§€ μ°¨κ·Όμ°¨κ·Ό 정리해 λ³΄κ² μŠ΅λ‹ˆλ‹€.


    πŸ’‘ λ°±μ—”λ“œ λž€?

    λ°±μ—”λ“œλŠ” κ°„λ‹¨νžˆ 말해 μ‚¬μš©μžκ°€ 직접 λ³΄κ±°λ‚˜ μƒν˜Έμž‘μš©ν•˜μ§€ μ•ŠλŠ” μ„œλ²„ μΈ‘ 둜직과 λ°μ΄ν„°λ² μ΄μŠ€ 관리λ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€.

    μ›Ή μ„œλΉ„μŠ€λ₯Ό 빙산에 λΉ„μœ ν•˜μžλ©΄, ν”„λ‘ νŠΈμ—”λ“œλŠ” 수면 μœ„μ— λ–  μžˆλŠ” 뢀뢄이고, λ°±μ—”λ“œλŠ” 수면 μ•„λž˜ κ±°λŒ€ν•œ ꡬ쑰물과도 κ°™μ£ .

     

    λ°±μ—”λ“œλ₯Ό κ΅¬μ„±ν•˜λŠ” μ£Όμš” μš”μ†Œ

    • μ„œλ²„: ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ„ μ²˜λ¦¬ν•˜λŠ” 컴퓨터
    • μ• ν”Œλ¦¬μΌ€μ΄μ…˜: λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ μ‹€ν–‰ν•˜λŠ” ν”„λ‘œκ·Έλž¨
    • λ°μ΄ν„°λ² μ΄μŠ€: ν•„μš”ν•œ λͺ¨λ“  정보λ₯Ό μ €μž₯ν•˜κ³  κ΄€λ¦¬ν•˜λŠ” μ‹œμŠ€ν…œ
    • API: ν”„λ‘ νŠΈμ—”λ“œμ™€ ν†΅μ‹ ν•˜κΈ° μœ„ν•œ μΈν„°νŽ˜μ΄μŠ€

    ❓ ν”„λ‘ νŠΈμ—”λ“œ vs λ°±μ—”λ“œ: μ–΄λ–€ 차이가 μžˆμ„κΉŒ?

    ν”„λ‘ νŠΈμ—”λ“œμ™€ λ°±μ—”λ“œλŠ” λ™μ „μ˜ μ–‘λ©΄μ²˜λŸΌ ν•¨κ»˜ μž‘λ™ν•˜μ§€λ§Œ, μ™„μ „νžˆ λ‹€λ₯Έ 역할을 μˆ˜ν–‰ν•©λ‹ˆλ‹€.

    ꡬ뢄 ν”„λ‘ νŠΈμ—”λ“œ λ°±μ—”λ“œ
    μ£Όμš” μ—­ν•  μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€(UI) κ΅¬ν˜„, μ‚¬μš©μž μž…λ ₯ 처리 μ„œλ²„ 둜직 처리, 데이터 μ €μž₯/쑰회, 인증 λ“±
    기술 μŠ€νƒ HTML, CSS, JavaScript, React/Vue Java, Spring, Python, Node.js, DB
    λ™μž‘ μœ„μΉ˜ λΈŒλΌμš°μ €(ν΄λΌμ΄μ–ΈνŠΈ) μ„œλ²„

     

    πŸ“Œ μ‰½κ²Œ λΉ„μœ ν•˜μžλ©΄?

    • ν”„λ‘ νŠΈμ—”λ“œλŠ” μ‹λ‹Ήμ˜ 쒅업원 πŸ‘©‍🍳
    • λ°±μ—”λ“œλŠ” μ£Όλ°©μ—μ„œ μš”λ¦¬ν•˜λŠ” μš”λ¦¬μ‚¬ πŸ‘¨‍🍳

    μ‚¬μš©μžκ°€ λ²„νŠΌμ„ ν΄λ¦­ν•˜λ©΄, ν”„λ‘ νŠΈμ—”λ“œλŠ” κ·Έ μš”μ²­μ„ μ„œλ²„λ‘œ μ „λ‹¬ν•˜κ³ , λ°±μ—”λ“œλŠ” 이λ₯Ό μ²˜λ¦¬ν•΄ κ²°κ³Όλ₯Ό λ‹€μ‹œ λŒλ €μ£ΌλŠ” μ‹μž…λ‹ˆλ‹€.


    πŸ’» λ°±μ—”λ“œ κ°œλ°œμžλŠ” 무슨 일을 ν• κΉŒ?

    λ°±μ—”λ“œ κ°œλ°œμžλŠ” λˆˆμ— 보이지 μ•ŠλŠ” μ‹œμŠ€ν…œμ˜ 핡심을 μ„€κ³„ν•˜κ³  κ΅¬ν˜„ν•˜λŠ” 역할을 ν•©λ‹ˆλ‹€. 주둜 λ‹€μŒκ³Ό 같은 일을 λ‹΄λ‹Ήν•˜μ£ .

     

    πŸ’Ό μ£Όμš” 업무

    API μ„œλ²„ 개발

    → ν”„λ‘ νŠΈμ—”λ“œμ˜ μš”청을 λ°›μ•„ μ²˜λ¦¬ν•  μˆ˜ μžˆλ„둝 REST API ν˜Ήμ€ GraphQL을 μ„€κ³„ν•˜κ³  κ΅¬ν˜„ν•©λ‹ˆλ‹€.

     

    DB 섀계 및 관리

    → μ‚¬μš©μž μ •보, κ²Œμ‹œκΈ€, κ²°μ œ λ‚΄μ—­ λ“± λ‹€μ–‘ν•œ λ°μ΄ν„°λ₯Ό νš¨μœ¨μ μœΌλ‘œ μ €μž₯ν•˜κ³  μ‘°νšŒν•  μˆ˜ μžˆλ„둝 λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μ„€κ³„ν•©λ‹ˆλ‹€.

     

    인증 및 λ³΄μ•ˆ 처리

    → 둜그인, κΆŒν•œ λΆ„리, ν† ν° λ°œκΈ‰, μ•”ν˜Έν™” λ“± μ‚¬μš©μžμ˜ μ •보 λ³΄ν˜Έλ₯Ό μœ„ν•œ λ³΄μ•ˆ μž‘업을 μˆ˜ν–‰ν•©λ‹ˆλ‹€.

     

    λΉ„μ¦ˆλ‹ˆμŠ€ 둜직 κ΅¬ν˜„

    → 결제, μ˜ˆμ•½, ν¬μΈνŠΈ κ³„μ‚° λ“± μ‹€μ œ μ„œλΉ„μŠ€ κΈ°λŠ₯의 μ€‘심 λ‘œμ§μ„ μ²˜λ¦¬ν•©λ‹ˆλ‹€.

     

    μ„œλ²„ 및 배포 관리

    → AWS, GCP λ“±μ˜ ν΄λΌμš°λ“œ ν™˜κ²½μ—μ„œ μ„œλ²„λ₯Ό μš΄μ˜ν•˜κ³  λ°°ν¬λ₯Ό κ΄€λ¦¬ν•©λ‹ˆλ‹€.

     

    🧩 ν•œ λ§ˆλ””λ‘œ, μ‚¬μš©μž μš”μ²­μ„ “μ‹€μ œλ‘œ μΌμ–΄λ‚˜κ²Œ ν•˜λŠ” μ‚¬λžŒλ“€”μž…λ‹ˆλ‹€.

    βš™οΈ λ°±μ—”λ“œμ—μ„œ λ°μ΄ν„°λŠ” μ΄λ ‡κ²Œ 흐λ₯Έλ‹€

    λ°±μ—”λ“œμ˜ 핡심은 “μš”μ²­ → 처리 → 응닡” 흐름을 μ–Όλ§ˆλ‚˜ 잘 μ„€κ³„ν•˜κ³  κ΅¬ν˜„ν•˜λŠ”μ§€μž…λ‹ˆλ‹€.

    [μ‚¬μš©μž μš”μ²­] → [λ°±μ—”λ“œ μ„œλ²„] → [DB 쑰회/처리] → [응닡 λ°˜ν™˜]

     

    μ˜ˆμ‹œ: μƒν’ˆ 상세 νŽ˜μ΄μ§€ μš”μ²­

    1. μ‚¬μš©μžκ°€ μ‡Όν•‘λͺ°μ—μ„œ μƒν’ˆμ„ 클릭
    2. ν”„λ‘ νŠΈμ—”λ“œμ—μ„œ ν•΄λ‹Ή μƒν’ˆ ID둜 GET /products/123 μš”μ²­
    3. λ°±μ—”λ“œλŠ” DBμ—μ„œ μƒν’ˆ 정보λ₯Ό 쑰회
    4. JSON ν˜•μ‹μœΌλ‘œ μƒν’ˆλͺ…, 가격, 이미지 등을 응닡
    5. ν”„λ‘ νŠΈμ—”λ“œμ—μ„œ λ°›μ•„μ„œ 화면에 ν‘œμ‹œ
    πŸ“¦ λ°±μ—”λ“œλŠ” ‘정보λ₯Ό 담은 λ°•μŠ€’λ₯Ό μ •ν™•νžˆ μ „λ‹¬ν•˜λŠ” 배달뢀와 같은 μ—­ν• !

     


    πŸ”Ž ν˜„λŒ€ λ°±μ—”λ“œ μ•„ν‚€ν…μ²˜ μ‚΄νŽ΄λ³΄κΈ°

    기술이 λ°œμ „ν•˜λ©΄μ„œ λ°±μ—”λ“œ μ•„ν‚€ν…μ²˜λ„ λ‹€μ–‘ν•˜κ²Œ λ³€ν™”ν•΄ μ™”μŠ΅λ‹ˆλ‹€.

    κ°€μž₯ 많이 μ“°μ΄λŠ” λŒ€ν‘œμ μΈ κ΅¬μ‘°λŠ” λ‹€μŒκ³Ό κ°™μ•„μš”.

     

    1. λͺ¨λ†€λ¦¬μ‹ μ•„ν‚€ν…μ²˜ (Monolithic)

    ν•˜λ‚˜μ˜ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ•ˆμ— λͺ¨λ“  κΈ°λŠ₯이 ν†΅ν•©λœ 전톡적인 κ΅¬μ‘°μž…λ‹ˆλ‹€.

    초기 ν”„λ‘œμ νŠΈλ‚˜ μ†Œκ·œλͺ¨ νŒ€μ—μ„œ 많이 μ‚¬μš©λ©λ‹ˆλ‹€.

     

    μž₯점

    • ꡬ쑰가 λ‹¨μˆœν•΄ λΉ λ₯΄κ²Œ 개발 κ°€λŠ₯
    • 배포 및 ν…ŒμŠ€νŠΈκ°€ 쉬움

    단점

    • ν™•μž₯성이 떨어짐
    • ν•˜λ‚˜μ˜ κΈ°λŠ₯ 였λ₯˜κ°€ 전체 μ‹œμŠ€ν…œμ— 영ν–₯을 쀄 수 있음
    • νŒ€ κ°„ ν˜‘μ—…μ΄ μ–΄λ €μ›Œμ§ˆ 수 있음

     

    2. λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€ μ•„ν‚€ν…μ²˜(MSA)

    ν•˜λ‚˜μ˜ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ—¬λŸ¬ 개의 λ…λ¦½λœ μž‘μ€ μ„œλΉ„μŠ€λ‘œ λ‚˜λˆ  κ΅¬μ„±ν•˜λŠ” κ΅¬μ‘°μž…λ‹ˆλ‹€. 

    λŒ€κ·œλͺ¨ μ„œλΉ„μŠ€μ— μ ν•©ν•©λ‹ˆλ‹€.

     

    μž₯점

    • 각 μ„œλΉ„μŠ€λ³„ 독립적 개발 및 배포 κ°€λŠ₯
    • μž₯μ•  λ°œμƒ μ‹œ 격리 κ°€λŠ₯
    • 기술 μŠ€νƒ 선택에 μœ μ—°μ„±

    단점

    • μ‹œμŠ€ν…œ κ°„ 톡신 λ³΅μž‘λ„ 증가
    • λ„€νŠΈμ›Œν¬ λΉ„μš©κ³Ό 관리 μ˜€λ²„ν—€λ“œ
    • λͺ¨λ‹ˆν„°λ§κ³Ό 디버깅이 어렀움

     

    3. μ„œλ²„λ¦¬μŠ€ μ•„ν‚€ν…μ²˜ (Serverless)

    μ„œλ²„λ₯Ό 직접 μš΄μ˜ν•˜μ§€ μ•Šκ³ , ν΄λΌμš°λ“œμ—μ„œ ν•„μš”ν•œ κΈ°λŠ₯만 ν•¨μˆ˜ λ‹¨μœ„λ‘œ μ‹€ν–‰ν•˜λŠ” κ΅¬μ‘°μž…λ‹ˆλ‹€.

    κ°„λ‹¨ν•œ ν”„λ‘œμ νŠΈλ‚˜ μŠ€νƒ€νŠΈμ—…μ— μ ν•©ν•©λ‹ˆλ‹€.

     

    μž₯점

    • μ„œλ²„ 관리 λΆ€λ‹΄ μ—†μŒ
    • μžλ™ ν™•μž₯ 지원
    • μ‚¬μš©ν•œ 만큼만 λΉ„μš© μ§€λΆˆ

    단점

    • νŠΉμ • ν΄λΌμš°λ“œ 벀더에 쒅속될 수 있음
    • μ½œλ“œ μŠ€νƒ€νŠΈλ‘œ μΈν•œ μ§€μ—° λ°œμƒ κ°€λŠ₯
    • λ³΅μž‘ν•œ μ„œλΉ„μŠ€μ—λŠ” 뢀적합할 수 있음

    🧑 λ§ˆλ¬΄λ¦¬ν•˜λ©°

    이번 κΈ€μ—μ„œλŠ” λ°±μ—”λ“œμ˜ κ°œλ…λΆ€ν„° μ—­ν• , 데이터 흐름, 그리고 μ•„ν‚€ν…μ²˜κΉŒμ§€ μ „λ°˜μ μœΌλ‘œ μ‚΄νŽ΄λ΄€μŠ΅λ‹ˆλ‹€.

     

    λ°±μ—”λ“œλŠ” λˆˆμ— 보이진 μ•Šμ§€λ§Œ, μ›Ή μ„œλΉ„μŠ€μ˜ 심μž₯이라 뢈릴 만큼 μ€‘μš”ν•œ μ˜μ—­μž…λ‹ˆλ‹€.

    κ²¬κ³ ν•œ λ°±μ—”λ“œ 없이 아무리 μ•„λ¦„λ‹€μš΄ ν”„λ‘ νŠΈμ—”λ“œλ₯Ό λ§Œλ“€μ–΄λ„ μ„œλΉ„μŠ€λŠ” μ œλŒ€λ‘œ μž‘λ™ν•˜μ§€ μ•Šκ² μ£ .

     

    λ°±μ—”λ“œλŠ” λŠμž„μ—†μ΄ μ§„ν™”ν•˜κ³  있으며, κ°œλ°œμžλ‘œμ„œ μ΄λŸ¬ν•œ 변화에 λ―Όκ°ν•˜κ²Œ λ°˜μ‘ν•˜κ³ , κ³„μ†ν•΄μ„œ λ°°μš°λŠ” μžμ„Έκ°€ μ€‘μš”ν•©λ‹ˆλ‹€.

     

    λ‹€μŒ κΈ€μ—μ„œλŠ” λ°±μ—”λ“œ κ°œλ°œμ— ν•„μš”ν•œ 기술 μŠ€νƒκ³Ό ν”„λ ˆμž„μ›Œν¬(Spring, Node.js λ“±)에 λŒ€ν•΄ 더 깊이 λ‹€λ€„λ³΄κ² μŠ΅λ‹ˆλ‹€.

     

    κΆκΈˆν•œ μ μ΄λ‚˜ 의견이 μžˆλ‹€λ©΄ λŒ“κΈ€λ‘œ λ‚¨κ²¨μ£Όμ„Έμš”! πŸš€

    λ°˜μ‘ν˜•