살아가는 이유_EU
내가 살아가는 이유, 삶
살아가는 이유_EU
전체 방문자
오늘
어제
  • 삶 (159)
    • 이유's EATERY (16)
      • 맛집 (10)
      • 까페 (4)
      • 맛있는 Recipe (1)
    • 이유's LIFE (16)
      • 국내여행 (5)
      • 해외여행 (2)
      • 운동 (1)
      • 취업정보 (0)
      • 끄적끄적 (5)
      • 일기쟝 (3)
      • 세상 이야기 (0)
      • 결혼 준비 (0)
    • 이유's Programming (43)
      • JavaScript (6)
      • Java (7)
      • C++ (0)
      • DBMS (24)
      • Spring (3)
      • til (1)
      • HTTP (2)
    • 이유's REVIEW (13)
      • BOOK (6)
      • PROGRAM or MOVIE (5)
      • PRODUCT 제품리뷰 (2)
    • 이유's STUDY (31)
      • 수업 관련 (2)
      • IT 시사 (2)
      • IT NEWS (2)
      • IVIEW (0)
      • IOS 앱 만들기 (0)
      • 알고리즘 문제풀이 (23)
      • PM data literacy (2)
    • 이유's ENGLISH (13)
      • Writing about something! (12)
      • Feedback (1)
      • TIL (0)
    • 이유's DB 공부 (1)
      • MySQL DB (0)
      • Postgre (1)
    • Computer 공부 (17)
      • Backend question (10)
      • Clean architecture (2)
      • Operating system (2)
      • Network (3)
      • 항해 (0)

블로그 메뉴

  • 홈
  • EATERY's 맛집
  • CAFE 까페
  • Recipe 레시피
  • IT 공부
  • 방명록
  • 태그

공지사항

인기 글

태그

  • 렌더링 수 줄이기
  • memoziation
  • 맛집
  • 묵리
  • 용인맛집
  • 스테이크
  • 인절미 티라미수
  • 자세요정
  • 고메커피
  • React.memo
  • 자바스크립트
  • have something to do with
  • 파스타맛집
  • Array로 접근
  • map 하는 법
  • 영어공부
  • 어게인마이라이프
  • have something to do with뜻
  • key 로 접근
  • go hand in hand
  • 아메리카토노
  • 삼돈식탁
  • 스쿤브레드
  • 현명하게 리액트
  • 용인추천
  • 피지오필로소피
  • 송계옥
  • 용인까페
  • 흑임자 크림
  • 고메동 카페

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
살아가는 이유_EU

내가 살아가는 이유, 삶

Computer 공부/Backend question

API 설정시 나오는 이슈들.. 정리

2024. 12. 7. 17:12
728x90
반응형
 

API 서버 개발 시 발생할 수 있는 문제점은 다양하며, 각각의 문제는 기술적, 운영적 또는 설계적인 측면에서 발생할 수 있습니다. 아래는 주요 문제점과 그에 대한 설명, 해결 방안을 정리한 목록입니다.


1. 성능 문제

문제점:

  • 트래픽이 급격히 증가하면 서버가 느려지거나 다운되는 문제.
  • 요청 처리 속도가 느려 클라이언트 응답 시간이 길어짐.

원인:

  • 비효율적인 데이터베이스 쿼리.
  • 과도한 요청(예: DDoS 공격, 부적절한 API 설계).
  • 캐싱 미활용.

해결 방안:

  • 데이터베이스 인덱싱 최적화 및 쿼리 튜닝.
  • Redis 같은 캐시 서버 사용.
  • 로드 밸런서를 통해 트래픽 분산.
  • 비동기 처리 및 큐 시스템(RabbitMQ, Kafka) 활용.

2. 보안 문제

문제점:

  • 민감한 데이터(예: 비밀번호, API 키)가 유출.
  • 인증 및 권한 관리의 부재로 인해 비인가 사용자 접근 가능.
  • SQL 인젝션, XSS, CSRF 같은 보안 취약점.

원인:

  • 데이터 암호화 미흡.
  • 인증/인가 미흡(JWT, OAuth 미사용 등).
  • 입력 데이터 검증 부족.

해결 방안:

  • HTTPS 사용 및 데이터 암호화.
  • JWT, OAuth2를 활용한 인증 및 권한 관리.
  • 입력값 검증 및 방화벽(Web Application Firewall) 설정.
  • 보안 테스트 도구(예: OWASP ZAP) 활용.

3. API 설계 문제

문제점:

  • 일관되지 않은 API 명명 규칙(RESTful 원칙 미준수).
  • 불필요하게 복잡한 엔드포인트.
  • 과도한 데이터를 반환하거나 필요한 데이터를 반환하지 않음.

원인:

  • API 설계 초기에 명확한 기준과 표준 부재.
  • 클라이언트 요구사항을 정확히 반영하지 못함.

해결 방안:

  • API 설계 전에 명확한 문서화(Swagger, Postman) 진행.
  • RESTful API 설계 원칙 준수.
  • 필요시 GraphQL 도입으로 클라이언트가 필요한 데이터만 요청 가능.

4. 디버깅 및 로깅 부족

문제점:

  • 장애 발생 시 원인을 추적하기 어려움.
  • 에러가 발생해도 로그가 충분하지 않아 해결 시간이 지연.

원인:

  • 로그 시스템 미구축 또는 적절한 로깅 부족.
  • 예외 처리 누락.

해결 방안:

  • ELK Stack(Elasticsearch, Logstash, Kibana) 또는 Graylog 같은 로깅 시스템 도입.
  • 로그 수준(Level)을 구분(예: Info, Warning, Error).
  • 적절한 예외 처리 코드 작성.

5. 데이터 정합성 문제

문제점:

  • 동시성 문제가 발생하여 데이터가 불일치.
  • 데이터 손실 또는 중복 발생.

원인:

  • 트랜잭션 처리가 적절하지 않음.
  • 동시성 제어 미흡(예: Locking).

해결 방안:

  • 데이터베이스 트랜잭션 관리.
  • 동시성 제어(Optimistic Lock, Pessimistic Lock) 도입.
  • 데이터베이스 제약 조건 활용(Primary Key, Unique Constraint).

6. 스케일링 어려움

문제점:

  • 트래픽 증가에 따라 서버 자원 부족.
  • API 서버가 확장되지 않아 병목 현상 발생.

원인:

  • 서버 인프라가 단일 서버에 의존.
  • 애플리케이션이 상태를 유지(Stateful)하는 구조.

해결 방안:

  • 서버를 무상태(Stateless)로 설계하여 확장성 향상.
  • 컨테이너화(Docker, Kubernetes)와 오토스케일링 사용.
  • 클라우드 환경(AWS, Azure, GCP) 활용.

7. 비효율적인 개발 프로세스

문제점:

  • 협업 중 코드 충돌 및 비효율적인 코드 관리.
  • 일정 지연 및 품질 저하.

원인:

  • 버전 관리 도구(Git) 활용 부족.
  • 코드 리뷰 및 테스트 절차 부재.

해결 방안:

  • Git 브랜치 전략(GitFlow, GitHub Flow) 사용.
  • 코드 리뷰 및 자동화된 CI/CD 도구(Jenkins, GitHub Actions) 도입.
  • 테스트 자동화(Unit Test, Integration Test).

8. 클라이언트와의 통신 문제

문제점:

  • 네트워크 속도 저하 또는 응답 실패.
  • API 변경 시 클라이언트와의 호환성 문제.

원인:

  • API 버전 관리 부재.
  • 네트워크 오류에 대한 대비 부족.

해결 방안:

  • API 버저닝(V1, V2) 사용.
  • 요청 실패에 대비한 재시도 로직 구현 및 타임아웃 설정.

9. 의존성 문제

문제점:

  • 서드파티 라이브러리의 보안 취약점.
  • 라이브러리 업데이트로 인한 코드 호환성 문제.

해결 방안:

  • 의존성 관리 도구(Maven, Gradle, npm) 사용.
  • 보안 취약점 스캐너(Dependabot, Snyk) 도입.
  • 정기적인 코드 리팩토링 및 테스트.

10. 배포와 유지보수 문제

문제점:

  • 새로운 기능 추가 시 기존 기능이 망가짐.
  • 배포 중 서비스 중단 발생.

해결 방안:

  • 무중단 배포(Blue-Green Deployment, Canary Deployment) 적용.
  • 적절한 테스트 환경 구축(Staging, QA).
  • 지속적인 모니터링 도구(Prometheus, Grafana) 활용.
728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'Computer 공부 > Backend question' 카테고리의 다른 글

interface 와 명세서 이제 했니?  (4) 2024.12.07
첨부파일 기능의 경우 신경써야하는 것들..  (0) 2024.12.07
Kubernetes 공부  (0) 2024.12.04
실시간 서비스에서 사용자 수가 예상을 초과했을 때?..  (0) 2024.11.30
JWT token api gateway 를 ?  (0) 2024.11.18
    'Computer 공부/Backend question' 카테고리의 다른 글
    • interface 와 명세서 이제 했니?
    • 첨부파일 기능의 경우 신경써야하는 것들..
    • Kubernetes 공부
    • 실시간 서비스에서 사용자 수가 예상을 초과했을 때?..
    살아가는 이유_EU
    살아가는 이유_EU
    안녕하세요. 초보개발자의 일상을 담은 블로그입니다.

    티스토리툴바