TIL ... day 34 6주차 - day 6. 미니프로젝트 후기 및 트러블 슈팅 … 22.06.16

BYEONGMIN CHOI·2022년 6월 16일
0

TIL(Today I Learned)

목록 보기
21/24

미니 팀 프로젝트를 하며 발생한 이슈들을 정리하고 해결 했던 것을 적어보려고 한다. 팀원의 트러블 슈팅의 경우도 정리하여 문제에 대한 접근 방향을 확인해보고 해결하는 방법을 배우기 위해 작성해 보았습니다.

첫 협업

프론트엔드와의 첫 협업하여 프로젝트를 진행해 보았다. 프론트분들과 공유해야하는 작업이 어떤게 있는지 잘 알지 못하여 소통에 문제가 발생하기도 했다. 요청과 응답에 있어 어떤 값들을 주고 받을지 api를 설계하는데 있어 논의를 많이 진행하였고 배포 후 CORS에 의한 오류와 JWT 토큰과 사용자 권한에 의한 이슈로 인해 의사소통의 중요성을 알 수 있는 경험을 할 수 있었다. 협업의 경우 개개인의 실력도 중요하지만 문제가 발생했을때 소통을 통해 문제를 어떻게 풀어나가는 방법도 매우 중요한 일이라는 것을 배울 수 있었다.

Issue 내용


S3 파일 업로드

  • S3 단일 이미지 파일 업로드 기능 구현 request가 application/json 형태로 요청되는 이슈 발생
    \rightarrow 해결 : 파일과 json 형식이 같이 전달될때 프론트엔드 Content Type을 multipart/form-data로 데이터를 묶어서 요청해야한다. 설계시 의사소통의 문제였습니다.

사용자 권한 issue

  • 권한이 없어도 데이터를 받아 볼 수 있는 API가 스프링 시큐리티에 막혀 프로트 서버에서 제대로 응답받지 못하는 이슈 발생
    \rightarrow 해결 : 시큐리티 설정에서 모든 API에 대한 인증을 필요 없도록 설정하고 컨트롤러에서 로그인이 필요한 API에만 @Preauthorize 에노테이션을 적용하여 권한을 체크하도록 변경
  • 권한이 없어도 데이터를 받아 볼 수 있는 API가 스프링 시큐리티에 막혀 프로트 서버에서 제대로 응답받지 못하는 이슈 발생
    \rightarrow 해결 : 시큐리티 설정에서 모든 API에 대한 인증을 필요 없도록 설정하고 컨트롤러에서 로그인이 필요한 API에만 @Preauthorize 에노테이션을 적용하여 권한을 체크하도록 변경

백엔드 서버 aws 배포 후 프론트엔드와 통신시 CORS 관련 요류 발생

Reason: CORS header 'Access-Control-Allow-Origin' missing
Origin 과 Origin 이 통신할 때 발생하는 오류

  • Amazon EC2 서버 배포 후 프론트와 통신 시 CORS 오류 발생
    \rightarrow 해결 : 프론트 엔드에서의 프록시 설정 수정
  • 위 작업을 통해 모든 API가 응답 되는데, 로그인만 CORS 정책에 걸리는 이슈
    \rightarrow 해결 : 로그인을 제외한 모든 API에서는 요청과 응답에 문제가 없어 CORS 설정은 잘 되었다고 판단, 로그인은 스프링 시큐리티에서 처리하도록 구현해놨기 때문에
    시큐리티 로그인 쪽이 문제라 판단, 시간적 여유가 부족하여 근본적인 원인을 찾지 못했고 로그인 API를 컨트롤러에서 직접 구현하여 해결, 추후 시큐리티와 JWT 를 함께 사용하는데 있어 추가적인 학습이 필요

MySQL data type issue

  • 프론트에서 글을 작성하는 API에서 글자의 길이가 길게 등록과 수정 API를 요청 시, 500번 내부 서버 에러가 발생하는 것을 발견
    \rightarrow 해결 : JPA에서 필드의 자료형을 String 으로 했을 경우 길이를 기본값이 255로 설정되는 것이 문제, @Lob 에노테이션을 붙여 테이블 데이터탑입을 VACHAR -> LONGTEXT로 변경
    • 영어의 경우 알파벳당 1byte, 한글의 경우 2byte 한글의 경우 약 130자

결과물

https://www.youtube.com/watch?v=8a5IfmnLu8k


더 공부가 필요한 요소

  • Spring Security, JWT, CORS
profile
스스로 성장하는 개발자가 되겠습니다.

0개의 댓글