주특기 심화 주차의 핵심 내용은 TDD 기반의 개발을 체험하는 것으로 제시된 테스트 코드에 맞게 주어진 동작을 하는 코드를 작성해 테스트를 통과시키는 내용이었다. 또한 DB의 연관관계 및 트랜잭션 등의 백엔드의 중요한 내용을 학습하고 내것으로 만드는 시간이였다고 생각한다.
배달 앱을 모티브로 삼아 과제가 주어져 음식점, 음식, 주문내역을 테이블로 만들어 구현하는 것을 진행하였고 위의 순서대로 작업을 진행했다.
첫 번째 음식점은 지금까지 주특기 주차에 작성하던 수준의 문제여서 빠르게 음식점의 테스트 코드를 통과했다.
두 번째 음식은 DB의 연관관계가 처음으로 등장하여 이에 대해 학습하고 음식과 음식점이 다대일 관계를 가지도록 설계해서 구현하였으나 테스트 코드를 실행 중 DB의 입력값이 비정상적으로 많아 살펴보니 트랜잭션 기능에 대해 알게 되었고 이를 이용해 롤백기능을 사용하였다.
세 번째 주문은 연관관계가 많이 얽혀 있어 설계하는 데 어려움이 있었고 결국 설계가 잘못되어 팀원들과의 회의 중에 팀원들이 이에 관해 말해주어 설계를 수정한 후 성공시켰다.
이후 매운맛 과제인 좌표를 이용한 배달지역 및 배달료 할증 구현을 진행해 성공하고 이번 과제는 마무리하게 되었다.
현재는 미니프로젝트 주차로 넘어가 처음으로 프론트엔드와 협업을 하여 웹페이지를 제작하며 지금까지 습득했던 내용들을 적용해 보는 중이다.\
교차 출처 리소스 공유(CORS)는 추가 HTTP 헤더를 사용해 한 출처에서 실행 중인 웹 어플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 것이다.
웹 어플리케이션은 리소스가 자신의 도메인, 프로토콜, 포트가 다를 때 교차 출처 HTTP 요청을 실행한다.
따라서 웹 관리자, 서버 개발자, 프론트 개발자 등이 이에 대해 알고 있어야 한다.
simple request는 CORS의 preflight를 발생시키지 않는 요청이다.
simple request는 다음의 조건을 가진다.
실제 요청과 응답을 주고 받기 전에 요청하는 쪽이 CORS 권한이 있는지 사전검사를 한 후에 브라우저에서 실제 요청을 보낸다. 이 검사는 HTTP 메소드 중 하나인 OPTIONS를 이용한 요청을 통해 이루어진다.
preflighted requests는 simple request 요건을 충족시키지 못하는 요청을 의미한다.