[항해 취업 리부트 코스] 개인프로젝트 1주차 후기

김재중·2024년 4월 23일
1

항해99

목록 보기
17/18
  • 이번 주 항해 취업 리부트코스에서 내가 구현한 기능은 무엇인가요?
    - 회원가입, jwt이용한 로그인 로그아웃, 상품 CRUD, 회원 CRUD, 위시리스트 CRUD
  • 해당 기능을 구현하기 위해, 어떤 기술적 의사결정을 거쳤나요?
    • 고민한 기술의 종류들에는 무엇이 있나요?
    • 위 기술들별로 각각의 장단점이 있다면 무엇인가요?
  • 이번 주 겪은 트러블 슈팅이 있다면 무엇인가요?
	@Override
    protected void doFilterInternal(HttpServletRequest request,HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
        // 헤더에서 access키에 담긴 토큰을 꺼냄
        String accessToken = request.getHeader("Authorization");
        log.info(accessToken);
        //로그를 찍어보니 accessToken이 null 값이 나왔다. 왜 null이 나오지? 
        //하고 보니까 header에 authorization 값을 가져와야하는데 access값을 가져오라고 해서
        //null값이 나왔던 것이다. 그래서 request.getHeader("access")를 request.getHeader("Authorization")
        //으로 바꿔주었다. 

        // 토큰이 없다면 다음 필터로 넘김
        if (accessToken == null) {

            filterChain.doFilter(request, response);

            return;
        }else{// else부분도 추가해주었다.
		        //토큰이 있다면 "Bearer jwt토큰" 형식으로 있을텐데 jwt토큰만 읽어오기 위해 split을 사용했다.
            accessToken = accessToken.split(" ")[1];
        }
       .
       .
       .
public Member createMember(MemberForm memberDto) {
        // 새로운 MemberEntity 생성
        String username = memberDto.getName();
        Boolean isExist = memberRepository.existsByName(username);
        if(isExist){
            return null;
        }

        log.info(memberDto.toString());
        //MemberForm(name=null, email=null, password=null, address=null, phoneNumber=null)
        //왜 memberDto가 다 null이지?
        //post요청할때 phone_number로 요청해서 아예 요청 자체가 안돼서 모두 null이었다.
        //데이터베이스에 phone_number로 되어있어서 그렇게 보냈는데
        //dto에 맞게 "phoneNumber" : "010-3213-1232"로 post요청했어야 했다.
        //오류가 나면 log를 찍어보는 습관을 들이는 것도 좋을 것 같다.

        Member member = memberDto.toEntity();
        log.info(member.toString());
        member.setPassword(bCryptPasswordEncoder.encode(memberDto.getPassword()));
        member.setRole("ROLE_USER");

        // MemberEntity 저장
        return memberRepository.save(member);
    }
  • 이번 주 진행된 개인 프로젝트에서 얻은 인사이트는 무엇인가요?
    - 전에 진행했던 프로젝트는 springboot2.x버전이라서 이번에 하는 springboot3.x버전이랑 security가 많이 달라서 많은 인사이트를 얻었습니다.
profile
안녕하세요!

0개의 댓글