Skip to content

Latest commit

 

History

History
332 lines (280 loc) · 17.4 KB

README.md

File metadata and controls

332 lines (280 loc) · 17.4 KB

web-framework

Web Framework 1

과제 1

과제 2

Medium Article 읽고 문제에 답하기(이론)

과제 3

요구 사항
  1. 지금까지 수강한 교과목을 데이터베이스에 저장
  2. 웹 페이지 접속 시 인증 유무를 체크
    • 인증되었으면 메인 페이지로 이동
    • 미인증시 자체적으로 작성한 로그인 폼을 출력하고 입력된 사용자 계정 정보는 DB에 저장
  3. 메인 페이지에는 다음과 같은 메뉴가 있음
    • 학년/학기별 이수 학점 조회
    • 년도학기취득 학점상세보기
      ............
      2020118링크
      2020218링크
      총계94
      상세보기 링크 클릭 시 학기별 수강 내역 출력
      년도학기교과목명교과구분담당교수학점
      20201정보보안전선김남윤3
      20201운영체제전선황기태3
      ..................
    • 수강 신청하기
    • 2021년 1학기에 신청할 예상 교과목을 웹 폼을 통해 입력 받고 해당 데이터에 대한 검증 작업을 실시한 후(오류시 재입력 요청) DB에 저장
    • 수강 신청 조회
    • 년도학기교과목명교과구분담당교수학점
      20211데이터베이스전선김영웅3
      20211안드로이드전지허준영3
      ..................
실행 결과
  • 로그인
  • 메인 페이지
  • 학년/학기별 이수 총 학점
  • 2020-1 수강 내역
  • 2021-1 수강신청 폼
  • 수강신청 완료
  • 2021-1 수강 신청 내역

Web Framework 2

과제 1

요구 사항 기본 소스를 수정하여 Product와 Category를 관리하는 REST API를 구현하기
실행 결과
  • Product와 Category 정보를 데이터베이스에 삽입
    $ cd eCommerce/src/main/resources
    $ mysql -u root -p
    $ use eCommerce;
    $ source data.sql;
  • Postman으로 전체 실행 결과를 확인하실 수 있습니다 :)

    Run in Postman

    스크린샷
    1. 모든 product 조회하기: GET http://localhost:8080/ecommerce/api/products
      View all products
    2. 특정 product 조회하기: GET http://localhost:8080/ecommerce/api/products/{id}
      View product
    3. product 생성하기: POST http://localhost:8080/ecommerce/api/products
      Create product
    4. product 수정하기: PUT http://localhost:8080/ecommerce/api/products/{id}
      Update product
    5. product 삭제하기: DELETE http://localhost:8080/ecommerce/api/products/{id}
      Remove product
    6. 모든 category 조회하기: GET http://localhost:8080/ecommerce/api/categories
      View all categories
    7. 특정 category 조회하기: GET http://localhost:8080/ecommerce/api/categories/{id}
      View category
    8. category 생성하기: POST http://localhost:8080/ecommerce/api/categories
      Create category
    9. category 수정하기: PUT http://localhost:8080/ecommerce/api/categories/{id}
      Update category
    10. category 삭제하기: DELETE http://localhost:8080/ecommerce/api/categories/{id}
      Remove category
    11. 부모 카테고리에 속한 자식 카테고리 조회하기: GET http://localhost:8080/ecommerce/api/categories/{parent_id}/subcategories
      View child categories
    12. 부모 카테고리와 자식 카테고리 연결하기
      1. 서브 카테고리 생성하기: POST http://localhost:8080/ecommerce/api/categories
        Create subcategory
      2. 연결하기: POST http://localhost:8080/ecommerce/api/categories/{parent_id}/subcategories/{child_id}
        Connect parent and child category
    13. 부모 카테고리에 속한 자식 카테고리 제거하기: DELETE http://localhost:8080/ecommerce/api/categories/{parent_id}/subcategories
      Remove child from parent category
    14. 카테고리에 속한 모든 product 조회하기: GET http://localhost:8080/ecommerce/api/categories/{id}/products
      View all products belongs category
    15. product를 카테고리에 넣기
      1. product 생성하기: POST http://localhost:8080/ecommerce/api/products
        Create product
      2. 카테고리에 넣기: POST http://localhost:8080/ecommerce/api/categories/{category_id}/products/{product_id}
        Put product into category
    16. product를 카테고리에서 제거하기: DELETE http://localhost:8080/ecommerce/api/categories/{category_id}/products/{product_id}
      Delete product from category

과제 2

요구 사항 제공된 기본 소스를 기반으로 Spring Boot 2.4.5에서 다음을 수행하기
  1. README.md의 6번 항목에 따라 Postman을 사용하여 Request를 보내고 Response를 보이기
  2. Charlie 계정(권한은 admin, 패스워드는 charliepw)을 data.sql에 저장하기
    • 패스워드는 BCryptPasswordEncoder를 이용하여 해쉬값을 저장
    • GET /api/products를 호출했을 때 로그인 화면이 보일 수 있도록 코드를 수정하고 브라우저에서 로그인이 성공적으로 이루어짐을 보이기
  3. GET /api/categories/1 요청을 보내고 응답 메시지(hypermedia)를 보인 다음, 이와 관련된 프로그램 소스를 지적하고 설명하기
  4. Category에서 특정 Product를 제거하는 코드 작성하고 결과 보이기
    • 응답 상태 코드(status code)는 204 No Content.로 설정
실행 결과
  • Product와 Category 및 User 정보를 데이터베이스에 삽입
    $ cd ecommerce-springboot-rest/src/main/resources
    $ mysql -u root -p
    $ use ecommerce;
    $ source data.sql;
  • Postman으로 전체 실행 결과를 확인하실 수 있습니다 :)

    Run in Postman

    스크린샷

    1.Postman으로 Request & Response

    1. 모든 product 조회하기: GET http://localhost:8080/api/products
    2. View all products

    3. 특정 product 조회하기: GET http://localhost:8080/api/products/{id}
    4. View product

    5. product 생성하기: POST http://localhost:8080/api/products
    6. Create product

    7. product 수정하기: PUT http://localhost:8080/api/products/{id}
    8. Update product

    9. product 삭제하기: DELETE http://localhost:8080/api/products/{id}
    10. Remove product

    11. 모든 category 조회하기: GET http://localhost:8080/api/categories
    12. View all categories

    13. 특정 category 조회하기: GET http://localhost:8080/api/categories/{id}
    14. View category

    15. category 생성하기: POST http://localhost:8080/api/categories
    16. Create category

    17. category 수정하기: PUT http://localhost:8080/api/categories/{id}
    18. Update category

    19. category 삭제하기: DELETE http://localhost:8080/api/categories/{id}
    20. Remove category

    21. 부모 카테고리에 속한 자식 카테고리 조회하기: GET http://localhost:8080/api/categories/{parent_id}/subcategories
    22. View subcategories

    23. 부모 카테고리와 자식 카테고리 연결하기
      1. 서브 카테고리 생성하기: POST http://localhost:8080/api/categories
      2. Create subcategory

      3. 연결하기: POST http://localhost:8080/api/categories/{parent_id}/subcategories/{child_id}
      4. Connect parent and child category

    24. 연결하기: POST http://localhost:8080/api/categories/{parent_id}/subcategories/{child_id}
    25. Connect parent and child category

    26. 부모 카테고리에 속한 자식 카테고리 제거하기: DELETE http://localhost:8080/api/categories/{parent_id}/subcategories
    27. Remove child from parent category

    28. 카테고리에 속한 모든 product 조회하기: GET http://localhost:8080/api/categories/{id}/products
    29. View all products belonging category

    30. product를 카테고리에 넣기
      1. product 생성하기: POST http://localhost:8080/api/products
      2. Create product

      3. 카테고리에 넣기: POST http://localhost:8080/api/categories/{category_id}/products/{product_id}
      4. Put product into category

    31. 2. Charlie의 계정을 data.sql에 저장하고 로그인 확인

      Charlie's login

      4. Category에서 특정 Product 제거

      Remove product from category