저의 회고 방식은 5F 입니다.
- Fact -> 사실, 무슨 일이 있었나요 ?
- Felling -> 느낀점, 어떤 느낌이 들었나요 ?
- Finding -> 배운 점, 어떤 인사이트를 얻었나요 ?
- Future action -> 향후 행동, 앞으로 무엇을 해야 할까요 ?
- Feedback -> 피드백, 앞서 정한 향후 행동을 실천해본 뒤, 이에 대해 어떤 피드백을 받았나요?
사실, 무슨 일이 있었나요 ?
스터디[코드봄] - 저의 CORS를 주제로 한 발표가 있었습니다.
BFS, DFS에 대하여 백준 문제를 풀어보며 깊게 이해할 수 있었습니다.
느낀점, 어떤 느낌이 들었나요 ?
저의 발표 주제인 CORS에 대하여 저는 지금까지 그냥 에러인 줄만 알았습니다. 대학 프로젝트를 진행할 때 프론트와 백엔드를 연동하는 과정에서 CORS 문제를 겪은 적이 있었습니다. 그때 당시, "아 연동할 때는 CORS 에러가 발생하니 요청을 허용해 줘야 하는구나"라고만 생각할 뿐 CORS의 본질을 이해하기보다는 프로젝트 완성만을 위해서 깊게 공부하지 못했었습니다.
CORS는 에러가 아닌 동일 출처 정책에 대한 해결책이다.
발표 준비를 하며 CORS를 공부하다 새롭게 알게 된 사실입니다. 대학 프로젝트 때 겪었던 CORS 에러 문제를 지금에서야 이해가 다 갔습니다.
'항상 이렇게 하면 되는구나'가 아닌 '왜 안되는 걸까?'를 고민하는 게 중요한 것 같습니다.
배운 점, 어떤 인사이트를 얻었나요 ?
CORS는 Cross-Origin Resource Sharing의 약자로, 웹 페이지의 제한된 리소르를 다른 도메인에서 요청할 수 있게 하는 메커니즘 입니다.
이는 동일 출처 정책의 제한을 완화시키는 역할을 합니다.
동일 출처 정책이 웹 보안을 위해서 도입되었지만, 이로 인해 웹 개발 과정에서는 이미지, 동영상과 같은 리소스를 다른 도메인에서 불러 오는 것이 어려웠습니다.
따라서 CORS가 생겨나게 된 배경은 동일 출처 정책만 사용하여 웹 개발을 하면 제한사항이 너무 많아져서 생겨났다고 합니다.
생각해 보면 웹 개발자를 꿈꾸는 사람으로서 CORS가 없었다면 이미지, 동영상 하나 못 가져오는데 제한사항이 많아지는 것은 당연한 것이었습니다.
결론적으로, CORS라는 것은 CORS 정책을 따르는 서버는 다른 도메인의 웹 페이지에서 해당 서버의 리소스를 요청할 수 있는 것입니다.
다음은 제가 했던 프로젝트의 회원가입 Controller 부분의 일부입니다.
@RestController
@RequiredArgsConstructor
@RequestMapping("/api/v1/users")
//origins로 오는 모든 요청을 CORS정책에 따라 허용한다.
@CrossOrigin(origins = "http://localhost:63342", allowCredentials = "true")
public class UserController {
private final UserService userService;
@PostMapping
public ResponseFormat<Void> createUser(@RequestBody @Valid UserReqDtos.CREATE create){
userService.createUser(create);
return ResponseFormat.ok();
}
2023.08.24 - [회고] - [Webtoon-Material-Site 프로젝트] 회고
위에 @CrossOrigin 어노테이션은 "http://localhost:63342"으로부터 오는 요청을 허용하도록 설정해 주는 역할을 합니다.
이는 해당 도메인에서 회원가입 요청 API를 호출할 수 있음을 의미합니다.
이 코드를 작성할 당시에는 CORS가 연동 과정에서 발생하는 에러를 해결하는 방법이라고만 생각했지만, 이번 스터디를 통해 CORS가 동일 출처 정책의 제한을 완화하는 중요한 역할을 하는 것을 알게 되었습니다.
코딩 테스트를 본격적으로 공부하기 전에는 항상 DFS, BFS 문제는 넘어갔었습니다.
개념을 이해하는 것은 어렵지 않았지만 구현하는 과정에서 애초에 언어에 대한 이해도가 부족하다 보니 코드를 이해하기 어려웠습니다.
그래도 2달 전에 있었던 우아한테크코스 프리코스를 경험해 보면서 자바라는 언어를 PBL을 통해 익숙해지고, 성장했었습니다.
2023.11.15 - [우아한테크코스 프리코스 회고] - [우아한테크코스 웹 백엔드 6기 회고] - 프리코스 4주 차
이후 DFS, BFS를 풀어보기 앞서 그래프에 대한 이론을 한 번 더 복습하니 그래프를 표현하는 방법은 인접 행렬, 인접 리스트 방식이 있었고 탐색을 하는 방법으로는 대표적으로 BFS, DFS는 것을 배웠습니다.
공부를 하면 할수록 무슨 공부든 기본이 중요한 것 같습니다.
향후 행동, 앞으로 무엇을 해야 할까요 ?
코딩 테스트를 공부해 오면서 프로그래머스를 사용하는 것에 고집이 있었던 것 같습니다.
실행하기 편하고, 요즘 기업에서 프로그래머스를 통해 시험을 많이 본다는 얘기를 들어서 그랬던 것 같습니다.
백준 문제를 풀어보면서 느낀 점은 알고리즘과, 자료구조를 잘 활용하여 탄탄하게 쌓아줄 수 있는 기본적인 문제가 정말 많다는 것이었습니다.
그래서 프로그래머스 책에서도 프로그래머스로만 문제를 푸는 것이 아닌 백준 같은 다른 사이트의 문제를 강조해 주셨는지 깨닫게 되었습니다.
코딩 테스트의 출제 유형은 어떤 식으로 나올지 아무도 예상하지 못하므로 정말 다양한 문제를 접해봐야 할 것 같습니다.
'구름톤 트레이닝 풀스택 회고' 카테고리의 다른 글
⛅️[구름톤 트레이닝 풀스택 6회차] - 7주 차 회고⛅️ (0) | 2024.02.16 |
---|---|
⛅️[구름톤 트레이닝 풀스택 6회차] - 6주 차 회고⛅️ (0) | 2024.02.10 |
⛅️[구름톤 트레이닝 풀스택 6회차] - 4주 차 회고⛅️ (0) | 2024.01.26 |
⛅️[구름톤 트레이닝 풀스택 6회차] - 3주 차 회고⛅️ (0) | 2024.01.21 |
⛅️[구름톤 트레이닝 풀스택 6회차] - 2주 차 회고⛅️ (0) | 2024.01.14 |