항해 5주차 회고

Lee·2022년 2월 13일
0

항해99

목록 보기
31/50

주특기 심화 주차

개요

주특기 심화 주차의 핵심 내용은 TDD 기반의 개발을 체험하는 것으로 제시된 테스트 코드에 맞게 주어진 동작을 하는 코드를 작성해 테스트를 통과시키는 내용이었다. 또한 DB의 연관관계 및 트랜잭션 등의 백엔드의 중요한 내용을 학습하고 내것으로 만드는 시간이였다고 생각한다.

진행사항

배달 앱을 모티브로 삼아 과제가 주어져 음식점, 음식, 주문내역을 테이블로 만들어 구현하는 것을 진행하였고 위의 순서대로 작업을 진행했다.
첫 번째 음식점은 지금까지 주특기 주차에 작성하던 수준의 문제여서 빠르게 음식점의 테스트 코드를 통과했다.
두 번째 음식은 DB의 연관관계가 처음으로 등장하여 이에 대해 학습하고 음식과 음식점이 다대일 관계를 가지도록 설계해서 구현하였으나 테스트 코드를 실행 중 DB의 입력값이 비정상적으로 많아 살펴보니 트랜잭션 기능에 대해 알게 되었고 이를 이용해 롤백기능을 사용하였다.
세 번째 주문은 연관관계가 많이 얽혀 있어 설계하는 데 어려움이 있었고 결국 설계가 잘못되어 팀원들과의 회의 중에 팀원들이 이에 관해 말해주어 설계를 수정한 후 성공시켰다.

마무리

이후 매운맛 과제인 좌표를 이용한 배달지역 및 배달료 할증 구현을 진행해 성공하고 이번 과제는 마무리하게 되었다.
현재는 미니프로젝트 주차로 넘어가 처음으로 프론트엔드와 협업을 하여 웹페이지를 제작하며 지금까지 습득했던 내용들을 적용해 보는 중이다.\

학습내용

CORS(Cross-Origin Resource Sharing)

개요

교차 출처 리소스 공유(CORS)는 추가 HTTP 헤더를 사용해 한 출처에서 실행 중인 웹 어플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 것이다.
웹 어플리케이션은 리소스가 자신의 도메인, 프로토콜, 포트가 다를 때 교차 출처 HTTP 요청을 실행한다.

http://localhost:8080/

  • 도메인 : localhost
  • 프로토콜 : http
  • 포트 : 8000

따라서 웹 관리자, 서버 개발자, 프론트 개발자 등이 이에 대해 알고 있어야 한다.

단순 요청(Simple requests)

simple request는 CORS의 preflight를 발생시키지 않는 요청이다.
simple request는 다음의 조건을 가진다.

  • GET, POST, HEAD 중 하나의 HTTP 메서드에 속한다.
  • 요청 헤더에 user agent에 의해 자동적으로 정해지는 헤더(Connection, User-Agent, Fetch스펙에 정의된 forbidden header name)를 제외, 그리고 Fetch 스펙에 정의된 CORS-safelisted requet-header를 포함하는 경우
  • Fetch : 웹 리소스를 가져오는 고수준 API

프리플라이트 요청(Preflighted requests)

실제 요청과 응답을 주고 받기 전에 요청하는 쪽이 CORS 권한이 있는지 사전검사를 한 후에 브라우저에서 실제 요청을 보낸다. 이 검사는 HTTP 메소드 중 하나인 OPTIONS를 이용한 요청을 통해 이루어진다.
preflighted requests는 simple request 요건을 충족시키지 못하는 요청을 의미한다.

profile
발전하고 싶은 백엔드 개발자

0개의 댓글