[Project] memoong - 헤딩기록1

mynoseis3·2023년 12월 27일

practice

목록 보기
3/32
post-thumbnail

이 프로젝트의 목표는
파워 메모 습관을 가진 사람들을 위한
메모장 웹앱 프로그램을 구현하는 것이다.
(완성된 후에 배포하는 것도 배워보자요 !)


✏️ 리드미 파일 작성할 때 참고할 수 있게 과정을 흐름대로 기록해두자요 !
  • 초기 구상

📃 12/27 프로젝트 생성

  • application.yml 설정
  • pom.xml jsp 설정 추가
  • 부트 대시보드 실행
  • 시큐리티 로그인 테스트


  • 유저 테이블 생성

  • 시큐리티 필터 설정 / 회원가입 기능 (비밀번호 암호화)

  • 회원가입 페이지 작성

  • 테스트


📃 12/28 시큐리티 로그인

  • PrincipalDetails / PrincipalDetailsService / UserRepository 작성

  • 로그인 페이지 작성

  • 테스트

✏️ PrincipalDetailsService 클래스

  • Spring Security의 UserDetailsService를 구현하는 클래스이다.
  • 이 클래스는 사용자 정보를 가져오는 역할을 하며, 실제로는 데이터베이스에서 사용자 정보를 조회하는 부분을 처리한다.

  • 로그인 한 유저의 이름을 콘솔에서 확인할 수 있다.

  • 로그인에 성공하면 /user/memo로 리다이렉트된다.


  • Memo 엔티티빈 클래스 생성

  • MemoRepository 생성

  • MemoController 생성

  • 테스트

메모장 crud

✏️ create 테스트

  • ui는 기능 구현을 우선적으로 한 뒤 마지막에 하자요 !

crud 기능 먼저 테스트한 후 user 연결 다시 점검하기 !

✏️ read ( 메모 리스트 )

  • 테스트 오류 발생 - > jstl 버전 충돌 문제

  • 요번에 만났었던 jstl 충돌이랑 같은 문제였다.
    pom.xml에 자카르타 의존성 3개 추가하고 재실행 - > 실패 - > lib 폴더안에 넣고 재실행 - > 해결

  • 메모 리스트 결과

✏️ update

✏️ delete

crud 기능을 작성하고 테스트하였다.
이제 ui 랑 유효성 검증 추가,
netlify에 등록해서 사이트 배포하고 디테일한 것들 수정하자요

-- > netlify 사용 x - > netlify는 정적 컨텐츠만 배포 가능하다요 ..!
다른 방법 찾자

하나 해결하고 넘어가야 할 부분은
user 테이블과 memo 테이블의 연결

지금은 어떤 유저로 로그인해도 메모를 공유하고 있다.
유저별로 각각의 메모 공간을 확보해야 하므로 수정 필요

추가적으로 지금은 메모 목록에서 내용이 같이 나오는데
제목만 나오게 바꾸고 제목을 눌렀을 때 메모 내용을 확인하는 걸로 바꿔보자!

  • ui 1차






📃 12/30 추가 로직 구현해보기

  • 회원가입 유효성 검증 추가
  • 닉네임 중복 검사
  • 메모 테이블과 유저 테이블 연결

💡 문제점 발견

닉네임 중복 여부를 알려주고 중복 닉네임이라면
포커스를 닉네임으로 보내주지만
무시하고 중복 닉네임으로 가입 시도시
db에 중복 닉네임으로 회원 가입된 걸 확인할 수 있다.

계속 만져봤는데도 유효성 검증 스크립트랑 스프링 시큐리티 로그인이랑 뭔가 순서가
엇갈리는 것 같다. 그래서 스크립트에서 중복 닉네임일 때 return false로 막아 두어도 자꾸만 회원 저장 제출이 되고 있는 상태의 반복이다.

💡 그리고 한 가지 더 해결이 필요한 부분이 있다.
현재는 로그인 성공시 어떤 유저로 로그인을 해도
메모를 공유하게 된다.

이걸 각각의 유저마다 개별의 메모를 갖게 연결해줘야 함 !!!

유저 테이블에 있는 userno(유저번호)를 메모테이블에서 외래키로 설정했는데

메모를 저장해보면 entity null 오류가 발생한다.
그리고 db에서는 userno 빼고는 전부 저장이 되어 버려서 userno만 null로 들어가게 된다.

그리고 로그인 후 메모리스트로 접근해보면 유저정보를 찾지 못해서 500 에러가 뜬다.

정리해보면

🔎 1차 중요 오류 잡기

  1. memo 테이블에 외래키인 userno에 null이 들어가는 것 - > user 테이블과 memo 테이블 연결이 제대로 이루어진 게 아닌 듯 ?!

  2. 로그인한 유저의 정보를 가져오지 못해서 메모리스트 접근 불가 ✔️

  3. 중복 닉네임 회원가입 불가하게 수정 필요 ✔️



여기서부터 다음 글에 작성하자 !!

profile
웹개발자 꿈나무 꾸준함의 힘을 믿습니다 🚶

0개의 댓글