어제 너무 진도가 안나가고 에러가 많이 터져서 TIL작성을 못함.
개발 공부 시작 후 생애 첫 프런트와 협업을 하고 있다.
몇시간 뒤면 최종 배포 및 발표를 앞두고 있다.
우리 백앤드 쪽은 배포할 웹에 필요한 기본적인 api는 모두 만들었고 좀 더 기능이 추가된 기능은 넣지 못했다.
프런트 분들도 화면을 좀 더 다듬고 계신다.
.....
나의 모습
진짜 이렇게 뭐가 문제인지 생각하고 있었음.
실제 개발 시작시 발생한 일련의 사건은 다음과 같다.
일단 내가 지금 돌아봤을 때 큰 문제점은 바로 2번이었다.
와이어프레임을 보지 않은 채 스프링은 스프링대로 변수를 정해서 api명세서를 작성했고 프론트분들은 프론트분들대로 와이어프레임을 보면서 작업을 했을것이다.
자세하게 설명하면
실제로 이메일 중복검사나 닉네임 중복 검사에서 백엔드는 http메서드가 GET으로 판단해서 명세서를 작성해서 api를 만들어서 배포 했고 프론트에서는 post로 사용해서 오류가 났었다.
(그때도 이상하다고 생각했지만, 생각해보면 프론트에서는 email을 입력해서 서버에 준다고 Post를 사용했다고 했고 GET으로 했는데 오류가 났다고 했는데 내가 알고 있는거랑 달라서 프런트에서는 원래 post를 쓰는건가 하고 넘어감. 일단 협업이기 때문에넘아감. 참고로 GET으로도 data를 보낼 수있다.)
백앤드와 프런트 둘다 다른 정규식을 사용해서 responseError가 발생했는데, 이건 꽤나 발견하기가 어려웠다. 왜냐하면 프런트에서 에러코드를 httpstatus 200으로 false값만 달라고 하셔서 false값만 response했는데 이것도 큰 문제점이었다. 실제로 우리는 fail값까지 사용해서 자세한 오류데이터를 전달하려고 했으나 실제로는 false라서 왜 이 오류가 발생하는 지 몰랐기 때문이다. 결국은 서로 다른 정규식으로 인한 회원가입의 오류였지만 말이다.
@Override
public void addCorsMappings(CorsRegistry corsRegistry) {
corsRegistry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("*")
.allowedHeaders("*")
.exposedHeaders("*")
.exposedHeaders("Authorization")
.exposedHeaders("Refresh-Token") // 이렇게 2개 쓰면 안된다.
.maxAge(3000);
}
@Override
public void addCorsMappings(CorsRegistry corsRegistry) {
corsRegistry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("*")
.allowedHeaders("*")
.exposedHeaders("*")
.exposedHeaders("Authorization","Refresh-Token")
.maxAge(3000);
}
결국 이번 협업을 통해서 화면의 내용과 그에 관련된 표현 및 변수 그리고 페이지 이동시 어떻게 이동하는지 흐름을 파악하면서 동시에 api명세서를 작성해야 했는데 이 기본적인 부분을 놓쳐서 많이 해메인것 같다.
커뮤니케이션이 굉장히 중요한 부분을 차지하는 것 같다.
깃헙 주소 : https://github.com/pmjn1025/MyFristMiniProject