반응형
청춘고양이
배움을 기록하는 곳
청춘고양이
전체 방문자
오늘
어제
  • Hello World (119)
    • JQuery (5)
    • In my opinion (4)
    • HTML&CSS (8)
    • JS (9)
    • JAVA (21)
    • Spring Boot (21)
    • Node.js (1)
    • Linux (7)
    • Git (2)
    • Kotlin (4)
    • Fluttor (4)
    • 정보처리기사 (19)
    • AWS (1)
    • Oracle (8)
    • MySQL (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • js 로또 번호
  • 스크롤js
  • 객체 안의 함수
  • 청춘고양이
  • 중복 제거 로또
  • 자바
  • ScrollEffectJs
  • 초보개발
  • 제이쿼리 버튼클릭시 색 변경
  • 자바db연동
  • 제이쿼리 비밀번호
  • js 패스워드 변경
  • 제이쿼리 패스워드 변경
  • js
  • css
  • spring 기본설정
  • js 비밀번호
  • 가위바위보js
  • 쉬프트 연산
  • 제이쿼리

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
청춘고양이

배움을 기록하는 곳

프로필 생성관련 공부#1
Spring Boot

프로필 생성관련 공부#1

2022. 8. 21. 05:17
반응형

로그인 시에 자동으로 만들어지는 프로필
생성되는 프로필의 경우에는 이름을 값으로 받기 때문에 RequestParam 어노테이션을 이용

ModelAndView를 받는 getChoose를 만들어주고 앞서 말했듯이 이름을 값으로 받기 때문에 RequestParma 어노테이션 이용, SessionAttribute 어노테이션의 경우 로그인한 유저마다 프로필이 다르기 때문에 해당 어노테이션을 이용하여 로그인한 유저의 값을 알 수 있도록 해줘야 됨.
따라서 각각의 경우는 if ~ else-if ~ else로 분기문을 걸어서 처리해주겠음.
1. 유저가 없을 때

modelAndView의 setViewName을 로그인으로 리다이렉트 시켜주고
2. 이름이 null이 아닐 때

이름이 널리 아니라는 것은 그 이름에
잠깐 서비스와 매퍼를 확인해보자.

해당 부분은 서비스 부분. 다이내믹 이 섬으로 IResult를 상속받아서 구현하는 addProfile에 프로필 엔티티를 매개변수로 받아주고 이러한 값은 매퍼 부분에 구현. 조건만 한번 확인해보자. addProfile은 만들어진 프로필의 중복, 성공, 실패를 여부로 뒀음 중복인 경우는 매퍼에 걸어둔 COUNT(0)의 값을 기준으로 하기 때문에 그 값이 0보다 클 경우이다.
해당 프로필에 경우는 기본키를 유저의 이메일과 이름으로 지정되어 있기 때문에 중복검사를 하기 위해서 where에 이메일과 이름을 조건으로 걸어뒀다. 따라서 이 값이 중복인 경우는 이메일과 이름을 기준으로.. 그렇게 정해진 매퍼의 이름이 selectProfileCountByEmailAndName이므로 이 값이 0보다 클 경우이고 그다음에는 이제 성공과 실패인데 성공과 실패의 경우는 그냥 insert 된 값이 있으면 성공이고 없으면 실패이다. insert 된 값이 있으면 0보다 클 것이고 없으면 그 외의 경우이니 실패 처리. 중복검사를 앞에 먼저 걸어 뒀기 때문에 우리가 고려해야 되는 경우는 이제 성공과 실패밖에 때문
그다음 프로필을 배열로 받는 메서드를 만들어 줄 것인데 배열로 받는 이유는 우리가 하나의 프로필만 들어가지 있는 게 아니기 때문이지 않을까? 사실 이 부분은 아직도 조금 헷갈리는 것 같음. -> 조금만 생각해보니 아주 간단한 듯.. 여기서 만드는 프로필은 하나의 회원이 여러 개의 프로필은 가질 수 있기 때문
이제 매퍼로 넘어가 보자.

매퍼 인터페이스 만들어주고 매퍼 xml 작성

각각의 매퍼들 그럼 다시 컨트롤러 넘어가 보자.

위로 올라가서 보는 게 귀찮으니 다시 사진을 가져오겠음. 우선 앞에서 유저가 없는지 있는지는 고려된 사항 그러면 이제 이름을 확인해야 되는데 이러한 이름이 null이 아니라면 일단 profileService에서 구현한 getProfiles에다가 SessionAttribute로 받는 user의 값을 getProfiles에다가 넣어주고 그러면 이제 유저는 여러 개의 프로필이 있지만 하나를 고를 수 있게 해 줘야 됨. 따라서 RequestParam으로 받은 name으로 그 값을 확인부터 해주는 절차를 가져야 됨. 그래서 filter를 이용해주고. findFirst로 하나만 출력 orElse로 그게 아니라면 null을 때림. 이렇게 해주는 이름이 널이 아니라고 해서 그 값 RequestParam이랑 같은지는 그 어디에서도 구현한 곳이 없기 때문에 확인을 해주는 과정을 해야 됨다. 이렇게 안 해주면 무언가의 에러가 터지겠지? 이제 그리고 해당 selectedProfile이 널이라면 modelAndView에다가 데이터 값을 넣어줄 건데

public static final String ATTRIBUTE_NAME_PLURAL = "profiles";

그 값은 프로필 엔티티에 profiles라고 값을 지정해주고 컨트롤에서 위의 사진과 같이 키를 적어주고 값을 profiles로 넣어줌. 그리고 modelAndView의 setViewName을 프로필을 고르라는 창으로 넘긴다.

그리고 아니라면 세션에다가 그 값을 다음에도 사용할 수 있게 기억을 해주고 redirect 시킨다.
3. 성공

유저 여부 확인, 이름 여부 확인이 끝나면 성공 처리를 해주면 됨.

반응형
저작자표시 (새창열림)

'Spring Boot' 카테고리의 다른 글

미디어 관련 공부#1(DB)  (0) 2022.08.30
프로필 생성관련 공부#2  (0) 2022.08.21
Exception : Invalid bound statement (not found)  (0) 2022.08.18
Cookie  (0) 2022.08.18
Dynamic Enum  (0) 2022.08.18
    'Spring Boot' 카테고리의 다른 글
    • 미디어 관련 공부#1(DB)
    • 프로필 생성관련 공부#2
    • Exception : Invalid bound statement (not found)
    • Cookie
    청춘고양이
    청춘고양이
    신입개발자

    티스토리툴바