Skip to content

Allra-Fintech/back-end-assignment

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 

Repository files navigation

📣 올라 백엔드 과제 안내

안녕하세요! 여러분의 관심과 지원에 감사드립니다.🤗

아래 내용을 꼼꼼히 읽고 조건에 맞춰 과제를 완성해주세요.

과제 진행 중 🤖 AI 도구 사용을 허용합니다. 사용하신 경우 반드시 사용 내역을 문서화해주세요.
(자세한 안내는 하단 참고)


🏅 과제 제출 방법

Private Repository를 생성한 뒤 과제를 진행해주세요.
Repository명은 allra-backend-assignment로 설정해주세요.

과제가 완성되면 README.md 상단에 지원자분의 성함을 적어주세요.
그리고 dev@allra.co.kr 계정을 멤버로 초대하여 과제를 제출해주세요.

  1. GitHub 과제 Repository 접속
  2. Settings 탭 클릭
  3. 좌측 Collaborators and teams 메뉴 클릭
  4. add people 클릭하여 'dev@allra.co.kr' 초대

✔️ 문제 해결 과정에서 고민이 있었던 부분은 Issue로 남겨주시면 더욱 좋아요.


✏️ 과제 개요

올라 마켓의 백엔드 시스템을 구축합니다. 이 시스템은 다음과 같은 기능을 제공해야 합니다.

  1. 상품 조회 : 구매 가능한 상품 목록을 불러옵니다.

  2. 장바구니 : 상품을 장바구니에 추가하고 수량을 관리합니다.

  3. 주문 및 결제 : 주문을 제출하고 결제를 처리합니다.


📝 요구 사항

1️⃣ 기술적 요구사항

  • Java 17 이상을 사용해주세요.
  • SpringBoot 버전은 3.x 이상을 사용해주세요.
  • Database는 MySQL 8.0 이상을 사용해주세요.
  • Database 접근에는 JPA 또는 QueryDSL을 사용해주세요.
  • RDB 외에 필요한 경우 NoSQL, 메시지큐 등 추가적인 기술 및 도구 사용을 허용합니다.
  • Pull Request 단위로 개발해주세요. 기능별로 브랜치를 생성하여 작업하고 PR을 통해 main 브랜치에 머지해주세요.
  • README.md를 반드시 작성해주세요.
  • 테스트 코드 작성을 권장합니다.

2️⃣ 기능적 요구사항

✅ 상품 조회

상품 목록을 불러오는 API를 구현해주세요.

상세 요구사항:

  • 상품은 카테고리, 상품명, 가격 범위로 검색할 수 있어야 합니다.
  • 페이징 처리를 구현해주세요.
  • 상품의 품절 여부가 표시되어야 합니다.
  • 데이터베이스 스키마는 자유롭게 설계해주세요.

✅ 장바구니

사용자별 장바구니 기능을 구현해주세요.

상세 요구사항:

  • 장바구니에 상품을 추가, 수정, 삭제, 조회할 수 있어야 합니다.
  • 장바구니 조회 시 각 상품의 현재 품절 상태를 확인할 수 있어야 합니다.
  • 회원가입 기능은 별도로 구현하지 않으셔도 됩니다. 사용자 테이블에 더미 데이터를 미리 넣어두고, 이미 사용자가 존재한다는 가정 하에 과제를 진행해주세요.
  • 데이터베이스 스키마는 자유롭게 설계해주세요.

✅ 주문 및 결제

주문을 처리하는 API를 구현해주세요.

상세 요구사항:

  • 주문 요청 시 장바구니에 담긴 모든 상품들의 금액을 합산하여 결제를 진행해야 합니다.
  • 주문 요청 시 상품의 재고를 관리해야 합니다.
  • 결제 요청은 외부 결제 API를 사용하여 처리해야 합니다. (하단 모의 API 스펙 참고)
  • 결제 요청 이력을 관리할 수 있어야 합니다.
  • 결제 성공 및 실패 여부에 따라 적절한 응답을 반환해야 합니다.
  • 재고 부족 시 적절한 처리를 구현해주세요.
  • 주문 상태 관리 (주문 생성, 결제 대기, 결제 완료, 주문 취소 등)를 구현해주세요.
  • 데이터베이스 스키마는 자유롭게 설계해주세요.

🤖 AI 사용 안내

✔️ 과제 진행 중 AI 도구 사용을 허용합니다.
✔️ AI를 사용하신 경우, Pull Request 작성 시 다음 내용을 반드시 포함 해주세요

포함 필수 사항

  • 어떤 문제를 해결하기 위해 AI를 사용했는지
  • 어떤 부분에서 AI를 활용했는지 (예: 코드 작성, 디버깅, 설계, 리팩토링 등)
  • AI와 나눈 주요 프롬프트와 응답 내용

💡 대화 내용을 첨부하기 힘들다면 아래 프롬프트로 생성된 마크다운 텍스트를 복사해서 사용하세요

현재 세션에서 너와 내가 나눈 대화 내용을 아래 형식으로 정리한 후, 마크다운 텍스트를 작성해서 복사할 수 있도록 제공해줘

형식:
## 해결하려던 문제
[문제 상황을 간단히 설명]

## 대화 요약
### Q: [내가 한 질문을 원문 그대로]
**A:** [AI가 제안한 내용과 사용자가 수락한 내용을 2-3줄로 요약, 코드가 있다면 핵심 부분만]

### Q: [내가 추가로 한 질문을 원문 그대로]  
**A:** [AI가 제안한 내용과 사용자가 수락한 내용을 2-3줄로 요약, 코드가 있다면 핵심 부분만]

[이런 식으로 모든 질문과 답변을 정리]

## 최종 적용 결과
[실제로 코드에 적용한 내용] 

📋 모의 API 사용 안내

결제 처리를 위한 모의 API를 생성하여 사용해주세요.

모의 API 생성 사이트:

모의 결제 API 스펙:

HTTP Method : POST
URL : '/api/v1/payment'

[Request Header]
Content-Type: application/json

[Request Body]
{
    "orderId": String,  // 주문 ID
    "amount": Number    // 결제 금액
}

[Response - 성공]
{
    "status": "SUCCESS",
    "transactionId": "txn_{{faker 'number.bigInt'}}",
    "message": "Payment processed successfully"
}

[Response - 실패]
{
    "status": "FAILED",
    "transactionId": null,
    "message": "Something wrong!"
}

About

올라 백엔드 과제 전형

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published