어제 오늘은 CORS 발표 준비를 계속했다. CORS를 알기 위해서는 우선 SOP의 개념이 필요했고, CORS 가 발생하게 되는 이유가 사실 SOP라는 것도 알게 되었다. 프론트엔드와 백엔드가 협업을 하면서 만나게 되는 것으로 다른 출처의 데이터를 요청할 때 발생하게 된다.
CORS의 동작원리를 이해하는 데 시간이 조금 오래 걸렸다. 대표적인 두 가지 Simple Request와 Preflight Request에 대해서 공부했다. Preflight 요청 방법은 사전 확인 작업이라고 생각하면 이해가 조금 쉽다. 클라이언트가 서버에게 어떤 출처에 관한 데이터를 preflight 요청을 하게 되면, 서버에서는 그에 맞는 응답을 내려주고 브라우저를 통해 클라이언트에게 전달된다. 그때, 서버에 클라이언트가 요청한 출처를 갖고 있다면 클라이언트는 그제야 실제 요청을 보내게 된다. 단순 요청은 이렇게 두 번의 요청과 응답을 주고받는 것이 아닌 한 번의 요청과 응답만 주고받는 방법인데, 여러 조건을 모두 만족해야만 진행이 된다는 특징이 있다.
CORS를 경험해 본 적이 없다보니 더 이해도 더디고 예제를 들어가며 설명을 하고 싶은 마음에 공개 잡담방에 올라오는 5기 분들의 실전 프로젝트를 하나하나 찾아보았다. 개발자 도구 창을 열어서 이것저것 테스트해보고 오류가 날만한 부분을 찾아봤는데 거의 하나도 없었다. 그러다가 한 페이지에서 CORS 경고 문구를 보게 되었는데, 어떤 내용을 눌러서 나온 결과인지 찾을 수가 없었다. 그래서 결국 적절한 예시를 찾지 못한 채 발표 준비를 마무리했다.
개념 한 가지를 공부하더라도 그 한 가지를 이해하기 위해 또 다른 단어들을 공부하고 찾아봐야하는 것을 느꼈다. 예를 들어 CORS의 개념 한 가지를 보더라도 추가 HTTP 헤더 요청을 사용해 다른 출처 자원을 공유하기 위해 브라우저에게 권한을 부여받기 위한 보안 방식인데, HTTP 헤더에 어떤 요청을 받는 것인지, 다른 출처라면 출처는 무엇인지 등 타고 타고 들어가니 큰 그림을 보는 게 어려웠다.
그래도 계속 읽어보고 이 자료, 저 자료 찾아보며 반복하니 조금 그 정의가 어떤 것을 말하는 지 이해가 되긴 했다. 사실 발표를 하는 게 스스로의 공부도 크지만 다른 사람들에게 내가 이해한 내용을 잘 말하는 것도 능력이라고 생각이 되는데, 이번 발표에서는 맘처럼 쉽지가 않았다. 첫 주차 때 했던 REST API나 프로세스와 스레드도 정말 어려웠지만 이 CORS가 유독 준비하는 데 있어 부딪혔던 게 많았다.
개념적인 부분을 간단하게 설명하고 예제를 들어서 직접 개발자 도구 창에 CORS 경고창이 뜨는 것도 보여주고, 해결 방법도 적용해서 보여드리고 싶었는데, 시간이 부족했다. 결국 예시는 못 보여드렸지만 발표가 끝나고 돌아와서 마저 연습을 해보니 신기했고, 또 그래서 아쉬웠다.
발표를 한 것을 후회하진 않지만 좀 더 잘할 수 있었는데 하는 아쉬움이 남았던 하루였다. 그러던 중 팀원분들과 얘기를 나누면서 서로 지식을 공유하고 질문을 주고받으며 스스로 어디까지 이해하고, 어느 부분은 이해를 못했는 지 파악할 수 있었던 점이 좋았다는 얘기를 했다. 그래서 공식적인 항해톡은 끝났지만, 우리끼리 자체적으로 항해톡을 진행하면 어떨까하는 얘기가 나왔다. 아직 실현되진 않았지만, 새로운 주차가 시작되고 프론트 분들과도 의견을 나눠보기로 했다.
좋게 얘기가 돼서 서로 공부를 많이 할 수 있으면 좋겠다!!
'스파르타코딩클럽 > 항해99' 카테고리의 다른 글
항해99 6기 DAY 35, 36 TIL _ 22.04.11, 22.04.12 (0) | 2022.04.13 |
---|---|
항해99 6기 WIL_5주차 회고록 (0) | 2022.04.10 |
항해99 6기 DAY 29 TIL _ 22.04.04 (0) | 2022.04.05 |
항해99 6기 WIL_4주차 회고록 (0) | 2022.04.03 |
항해99 6기 DAY 27 TIL _ 22.04.02 (0) | 2022.04.03 |