그래서 현황이

  • 이건 spearphishing 과 동시에 진행된 opensource 프로젝트임

  • editor 환경이라 FE가 좀 눈에 보이는 프로젝트임.

  • 하지만 be도 초반에 업무 지시 받은대로, 클론코딩이니 보고 작동하는대로 기능구현하면되고,( FE는 초반부터 deploy 성공하여 public ip로 배포하던 상황)

  • 또한 멘토링하면서 가이드 받은대로 업그레이드도 도전 가능했음

아래는 BE 멘토링 실제 내용.

    1. ai 생성이미지를 포토샵처럼 레이어별로 수정 가능하게함.
    • 1-1. 즉 각 생성된 이미지별로 좌표를 찍어서 편집 가능하게 한다던지(담당 팀원이 어려워서 안한다고 함)
    1. 각 내용들을 아마 추적할 수 있게 java DB에서 좌표별 데이터 처리를 해줌 (담당 팀원이 어려워서 안한다고 함)
    1. AI 이미지를 배포해서
    1. 해당 이미지에 필터링 효과나 학습 모델을 자체적으로 올려서 학습시킨다던지

니가 안한다고 했다?

  • 명색히 글을 쓰는 직업을 가지셨던 분이.. 왜 앞뒤가 다른 말을 하는지 모르겠지만
  • 안한다고 했기에 그럼 멘토가 시킨 최소한의 레벨의 일이라도 제대로 했어야 하지 않았을까.

OAUTH라는 거대한 똥을 싸놓고

  • CORS에러나길래 FE에서도 일단 Proxy로 해결
  • be에서 localhost :3000 을 세팅 안해놓음
  • 그럼 FE에서 개발 어떻게 하죠?
    결국 내가 코드 수정함

Proxy

  • Client 에서 proxy 설정하면 개발환경 localhost:3000이여도

    • 위 개발 환경 설정이 전!혀! 안된 백엔드와 서버 연결이 가능한 이유
  • 동일 출처 정책 우회:
    프록시 설정을 사용하면 클라이언트 측 애플리케이션이 동일한 도메인(localhost)에서 API 요청을 보내는 것처럼 작동합니다. 브라우저는 이를 동일 출처로 간주하여 CORS 제한을 적용하지 않습니다.

  • 서버 측 요청:
    프록시 서버가 실제로 백엔드 서버로 요청을 전달합니다. 서버 간 통신에는 CORS 정책이 적용되지 않기 때문에 CORS 오류가 발생하지 않습니다.

  • 요청 변환:
    프록시 서버는 클라이언트의 요청을 받아 백엔드 서버로 전달할 때 필요한 헤더를 추가하거나 수정할 수 있습니다. 이를 통해 CORS 관련 헤더를 자동으로 처리할 수 있습니다.

  • 개발 환경 최적화:
    Create React App과 같은 도구에서 제공하는 프록시 설정은 개발 환경에서 API 요청을 쉽게 처리할 수 있도록 최적화되어 있습니다.

이래도 계속 프론트 문제라할래? 넌 30살 먹고 니가 싼 똥도 못 치우냐

Cookie 이슈

{"message": "JWT expired 14513238 milliseconds ago at 2024-10-08T07:55:26.000Z. Current time: 2024-10-08T11:57:19.238Z. Allowed clock skew: 0 milliseconds."}

  • 저 에러때문에 로그인을 처음엔 성공하는데 이후에 재로그인 안 됌.
  • 놀랍게도... refresh token을 안만드셨다 우리의 위대한 BE님은

    • 그건 어렵다고 안만든단다
      진짜 공짜 지원금 타먹으려고 여기 들어 온건가?
  • 일단 기존에 들어오는 JWT token expire 제한 건은 백엔드에서 처리를 못함으로.

    • 첫 시도 : 토큰이 만료되면 OAuth 프로세스를 다시 시작하여 새 토큰을 얻습니다.
      • 실패 : 이유 작동이 잘 안됌 ( 기존 oauth 로그인이 아예 막힘)
  • 결국 JWT 토큰값 때문에 그런것 같아서

    • FE에서 수동으로 쿠키를 지우고 보내는 로직으로 변경해서 처리함.
  • 로직: JWT 토큰 대신 쿠키 기반 인증을 사용하도록 수정합니다.

    • 서버에서 쿠키를 관리하므로 클라이언트에서 토큰 만료를 처리할 필요가 없어집니다.
    • 대신, 모든 요청에 쿠키가 자동으로 포함되어 전송됩니다.

Cookie

  • 이젠 ReDirect 가 안됨

  • naver Oauth까지는 java 코드 다 뜯어보고, Naver 개발자 센터 가서 endpoint 다 넣어가며 test 해서 통과됨

    • 즉, 계속해서 Naver 쿠키까진 만들어지는 것을 확인 (client에는 문제가 없는데..?)


  • 근데 왜 java 통신은 안 되죠..?

Controller 가 없어서랍니다^^

  package com.jafar.api.domain.member.controller;

import com.jafar.api.oauth2.dto.CustomOAuth2User;
import com.jafar.api.oauth2.dto.UserDto;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("")
public class MemberController {

    @GetMapping("/user-info")
    public ResponseEntity<UserDto> getUserInfo(@AuthenticationPrincipal CustomOAuth2User customOAuth2User) {
        if (customOAuth2User == null) {
            return ResponseEntity.status(HttpStatus.UNAUTHORIZED).build();
        }

        UserDto userDto = new UserDto();
        userDto.setEmail(customOAuth2User.getName());
        userDto.setRole(customOAuth2User.getAuthorities().iterator().next().getAuthority());

        return ResponseEntity.ok(userDto);
    }
}
  • 모달창 이슈 아니였구요..

입으로 똥싸는데 재주가 있으시네요?

- 일 마무리는 제대로 합시다 진짜..
  • API 가 제대로 통신 되지않아 해당 기능을 다시 만들어야 했음
    • 결국 나랑 같이 일한 FULL 스택 가장 어린 팀원이 고생을 굉장히 많이 했다.
    • 나도 JAVA 잘 할 줄 알면 좀 건들겠건만 .
  • Nodejs 에서 일단 S3 api 받아오고 있으니 이를 전달해보는 식으로 진행함

Update 이슈

  • BE를 담당한 JAVA, PY 팀원은 8주간.. git에도 notion에도 그 어디에도 본인들의 업무를 제대로 기입하지 않았음
    • 퍼포먼스적으로 따지면 그나마 배포라도 한 java가 기여도 8프로 정도?
      • 솔직히 AI는 팀 전체 기여도가 0%에 수렴함.
      • 8주간 ec2 클라우드 하나하나 다 설명드렸고... 어떻게 세팅하는지까지 코드로 다 알려드렸던것 같은데 제 시간만 낭비 했네요.
      • 개인 프로젝트 하시지 그러셨어요.

가정에서 한글을 못 떼신건가.

  • BE담당 둘 다 비슷하게 무쓸모했음
    • 프로젝트 경험, 개발자 경력도 있는 사람들 맞나.
    • git, notion 둘다 안쓰면 뭐 어떤수로 내가 확인하냐?
    • 유일한 채널인 카카오톡으로 얘기를 해도 처음듣는 것처럼 행동함
      • 그 와중에 글 안 읽고 승질내는 인간성 하며..
      • 피드백도 너무 느렸음.. 일 어떻게 하셨어요 수준임.
    과연 남의 글을 읽어본 적은 있는가 수준으로 처참했다...하
profile
🏠TECH & GOSSIP

0개의 댓글

관련 채용 정보