HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🤩
개발
/
📙
백엔드 알아야 할 지식
/
🎫
백엔드가 이정도는.. (실무)
🎫

백엔드가 이정도는.. (실무)

프로젝트 이해하기구현이 어렵거나 오래 걸리는 기능Validation에 대하여문자열기타보안상 위험한 UX > ID가 틀렸다/ 비밀번호가 틀렸다의사결정의 원칙작업 관리예외처리
[Velog 참고]

프로젝트 이해하기

  • 내가 프로젝트를 제대로 이해해야 내가 재미가 있고,
  • 기획자를 도와줄 수가 있음

구현이 어렵거나 오래 걸리는 기능

  • 기획자와 논의하여 기능의 가성비를 높여야 함(중요도는 높고 일정은 적게 걸리는 식으로)
  • 딱 봤을 때, 오래걸리는 작업인데 중요성이 떨어지면 기획자에게 이야기하기

Validation에 대하여

문자열

  • 최소/최대 길이
  • 포맷(e.g 이메일 포맷..)
  • Enum(값을 입력하는 게 아니라, 선택하게 만들기)
  • 사용가능한 문자 범위 제한
  • 이메일 username 뒤에 +문자 붙여서 aliasing 할 수 있음

기타

  • 멀티미디어 용량, 개수 제한 걸어두는게 좋음
  • 시간이 지나면 의미없는 데이터(나이. 시간지나면 바뀌어야하는데? 그래서 생년월일 받는게 나음)

보안상 위험한 UX > ID가 틀렸다/ 비밀번호가 틀렸다

  • ID 또는 비밀번호가 올바르지 않다 라고 실패원인 detail하게 알려주지 않는것
  • 비밀번호 강도 검사 하지 않는 경우. zxcvbn이라는 라이브러리를 알려주고 level을 정하게 만들자(기획자에게)
  • 로그인을 무한정 시도할 수 있는 경우 → brute forcing이 가능하니, 시도횟수 제한 걸기

의사결정의 원칙

  • 팀에 익숙하거나 숙련도가 있는지
  • 팀의 요구사항을 충족하는지
  • 비용 부담을 감당할 수 있는지
  • 보편적인 기술인지
    • 나중에 사람 뽑을때나 구글링할 때 영향이 있을 수 있음
  • 프로덕트에 어울리는 기술인지
  • 오버엔지니어링이 아닌지

작업 관리

이슈 트래커
  • Trello
  • Monday
  • JIRA
    • 관리자 계층이 확실한 조직이거나 개발자 외의 사람들에게 작업관리가 필요하다면 사용
  • GitHub Projects + Issues
    • 개발자 위주의 조직에서 주로 씀
YouTrack도 괜찮다고 함
팁 : 대안을 찾는 경우 아는 것 vs 키워드로 연관검색어 찾으면 좋음( JIRA vs )
 

예외처리

1. 예외를 어떻게 구분하고 정의할 것인가?

📌 해야 할 일

  • 업무 도메인 예외 / 시스템 예외 / 외부 연동 예외 등 분리된 커스텀 예외 클래스를 정의하세요.
  • 비즈니스 로직 에러는 BusinessLogicException, DB 관련은 DatabaseException, 인증 관련은 AuthException 등으로 나누는 게 좋아요.
2. 어디서, 어떤 레벨에서 핸들링할 것인가?

📌 해야 할 일

  • 로직 내부에서 try/except를 너무 남발하면 복잡해짐 ❌
  • 핵심 로직에서는 예외를 그대로 raise하고, API handler나 middleware 레벨에서 처리하는 게 좋습니다.
  • FastAPI에서는 @app.exception_handler(...) 또는 middleware에서 전체 핸들링 가능
3. 에러 응답 포맷을 어떻게 통일할 것인가?

📌 해야 할 일

  • 모든 에러 응답을 일관된 JSON 구조로 반환해야 합니다.
  • 프론트엔드나 클라이언트가 파싱하기 쉽도록 status, code, message, details 등의 필드를 통일하세요.
4. 로깅 및 모니터링은 어떻게 할 것인가?

📌 해야 할 일

  • 사용자에게 노출되는 메시지는 적절히 가공하고,
  • 시스템 내부 에러는 로깅 라이브러리(logging, loguru 등)로 저장하고,
  • 필요하면 Sentry, Datadog, Slack 연동을 통해 운영 중 알림을 받을 수 있도록 설정하세요.