본문 바로가기
Backend

백엔드 기초 개념과 가이드 라인

by 아르카눔 2025. 3. 30.

백엔드 (Backend):

웹 어플리케이션이나 소프트웨어의 서버 측 구성 요소

사용자에게 직접 보이지 않지만 앱의 핵심 로직을 처리하고 데이터를 관리한다.

 

1. 주요 기능:

   - 데이터 처리 및 저장
   - 비즈니스 로직 구현
   - API 제공
   - 보안 및 인증 관리
   - 프론트엔드와의 통신

 

2. 주요 구성 요소:

   a) 서버:
      - 웹 서버 (예: Nginx, Apache) - 프론트엔드 서버
      - 어플리케이션 서버 (예: Tomcat, Gunicorn) - 백엔드 서버. 웹 제공 

      - API 서버 - 데이터 통신, 즉 DB 접근 목적    


   b) 데이터베이스:
      - 관계형 DB (MySQL, PostgreSQL 등등)
      - NoSQL DB (MongoDB, Cassandra, Redis 등등)

      - 벡터 DB (Elastic Search, Faiss, Milvus, Chroma DB, Pinecone 등등)

   c) 프로그래밍 언어:
      - Python, Java, JavaScript (Node.js), Ruby, PHP 등

   d) 프레임워크:
      - Django, Flask (Python)
      - Spring (Java)
      - Express.js (Node.js)
      - Ruby on Rails (Ruby)
      - Laravel (PHP)

 

 

3. API (Application Programming Interface):
   - RESTful API - CRUD
   - GraphQL
   - SOAP

 

API란 클라이언트와 서버 간의 통신 규약

 

4. 클라우드 서비스 활용:
   - AWS, Google Cloud, Azure 등
   - 서버리스 아키텍처 (AWS Lambda)

5. 백엔드 아키텍처:
   - Monolithic
   - Microservices Architecure (MSA) 
   - Serverless

   - 레이어트 아키텍처

   - 클린 아키텍처 

   - 헥사고날 아키텍처 

6. 보안 고려사항:
   - 데이터 암호화 적용 
   - SQL 인젝션 방지
   - CSRF (Cross-Site Request Forgery) 보호
   - XSS (Cross-Site Scripting) 방지

   - JWT, OAuth 2.0 등 토큰 기반 인증 

   - RBAC(Role-Based Access Control): 역할 기반 권한 관리  

7. 성능 최적화:
   - 데이터베이스 쿼리 최적화

   - 데이터베이스 정규화와 비정규화

   - 데이터베이스 인덱싱

   - 데이터베이스 트랜잭션 관리 
   - 캐싱 (Redis)
   - 로드 밸런싱 (Ngnix, HAProxy)

8. 버전 관리 및 배포:
   - Git을 이용한 버전 관리
   - CI/CD (지속적 통합/배포) 파이프라인 (Jenkins, Gihub Actions, Gitlab CI/CD) 
   - 컨테이너화 (Docker)

9. 테스팅:
    - 단위 테스트: 함수 및 클래스 단위 테스트
    - 통합 테스트: API 호출 및 DB 연동 테스트
    - 부하 테스트: Locust, JMeter 등 활용 

10. 모니터링 및 로깅:
    - 서버 상태 모니터링
    - 에러 로깅 및 분석 (Sentry)
    - 성능 모니터링

11. 확장성:
    - 수평적 확장 (서버 추가)
    - 수직적 확장 (서버 성능 향상)

12. 비동기 처리:
    - 메시지 큐 (RabbitMQ, Kafka)
    - 백그라운드 작업 처리

13. 문서화:
    - API 문서화 (Swagger)
    - 코드 문서화

 

 

 

 

ChatGPT랑 Gemini한테 물어본걸 기반으로 실제로 맞는지 인터넷이랑 책 목차를 참조하면서 간단하게 정리해보았다.

AI의 파운데이션 모델만을 연구할게 아니라면 개발 특히 백엔드쪽 지식을 많이 쌓아아할 것 같아서 정리해보았다.

개발자 분들이나 회사 다니면서 알음알음 들었던 내용들이 제법 많아서 자세히는 모르지만 귀에 익숙한 용어들이 많다.

 

 

 

References:

https://soso-hyeon.tistory.com/81

https://velog.io/@mjungpp/%EC%9B%B9%EC%97%90%EC%84%9C%EC%9D%98-%EC%84%9C%EB%B2%84%EC%99%80-%ED%94%84%EB%A1%A0%ED%8A%B8-%EC%84%9C%EB%B2%84%EC%99%80-%EB%B0%B1%EC%97%94%EB%93%9C-%EC%84%9C%EB%B2%84

https://live-jh.tistory.com/45

https://velog.io/@2000sdh/%EB%B0%B1%EC%97%94%EB%93%9C-%EA%B0%9C%EB%B0%9C%EC%9E%90%EA%B0%80-%EB%90%98%EA%B8%B0-%EC%9C%84%ED%95%B4-%ED%95%84%EC%9A%94%ED%95%9C-%EC%A7%80%EC%8B%9D-%EB%B0%8F-%EA%B8%B0%EC%88%A0%EB%93%A4

https://velog.io/@woonge/Vector-DB-%EB%A7%A8%EB%95%85%EC%97%90-%ED%97%A4%EB%94%A9%ED%95%98%EA%B8%B0-1

https://velog.io/@gmtmoney2357/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98-%EB%A0%88%EC%9D%B4%EC%96%B4%EB%93%9C-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98Layered-architecture

https://keeeeeepgoing.tistory.com/318

https://blog.appkr.dev/work-n-play/learn-n-think/ddd-hexagonal/

https://server-technology.tistory.com/434