2달동안 열심히 강의를 듣고 이제 배운 지식을 응용하여 사이드 프로젝트를 만들어보자,,,,,,,,,,나는 나만의 서적 관리 서비스를 만들어볼생각이다.우선 순수Java로만 코드를 구현해보자. 도서 저장도서 단건 조회도서 전체 조회도서 수정도서 삭제InMemory 방식도서
ViewController를 만들고 테스트를 하려고 다음과 같이 welcome page를 만들었는데 무시무시한 에러페이지 등장.문제는 private BookService bookService;였다. 이 코드를 다음과 같이 수정해주었더니 문제 해결수정 전수정 후중요한건
폼 데이터를 객체로 변환할 때 input 태그의 name속성은 book 엔티티의 필드명과 동일해야 @ModelAttribute가 객체로 변환할 수 있다.뭔가 HTML 폼 데이터가 객체로 매핑이 잘 되지 않다면 name속성값을 한번 확인해보는걸로...
기본적인 도서 CRUD 구현은 끝났다. 디자인은 현재 고민하고있다. 어떻게 해야할지,,,화면에 나오는건 테스트를 위한 임시데이터로 @PostConstruct를 통해 추가해주었다.도서 상태는 추가할 기능인데 미리 화면에 표시된 것.취소를 누르면 다시 Home화면으로 돌아
우선 UI가 너무 보기싫어서 대충 그럴싸하게 디자인을 줬고 구현기능이 어느정도 끝나면 다시 이쁘게 수정할 생각이다.그리고 시작일과 종료일을 추가했다. 시작일은 말 그대로 언제부터 책을 읽기 시작했는지, 종료일은 책을 완독한 날이다.등록폼은 예정 종료일인데 예정 종료일과
독서록 CRUD 기능을 만들었다.독서록 기능을 만들면서 <button>태그의 type 속성을 submit으로 하지않고 button타입으로 해서 폼 데이터가 서버로 넘어가지않아 삽질을 진짜 많이 했다....^^정신차리고 해야겠다..암튼 독서록 기능까지 추가했다.도서
이 부분은 검증과 관련된 부분을 정리할 것이다.수정폼 검증 메시지 출력에 있어서 약간 헤맸는데 나는 기존 입력값은 보여주되, 값을 수정했을 경우 수정된 값이 editBookDto에 적용되도록 하고싶었다.그래서 모델의 2개의 값을 담아서 전송을 했고,editForm.ht
Bean validation에 대해서 알아보자. BindingResult 포스팅에셔 작성한 검증 로직처럼, 검증 로직을 매번 코드로 작성하는 것은 번거롭다. 만약 과장해서 입력폼이 1000개가 있다면 1000개의 입력폼 값들을 검증하는 로직을 개발해야하는 것이다. 힘들
쿠키-세션을 이용하여 로그인 기능을 구현할 것이다.
로그인 기능에 쿠키-세션을 적용시켜보자.로그인을 하면 로그인 상태가 유지되어야하는데 이때 쿠키-세션을 사용할 것이다.먼저 쿠키를 사용해서 개발을 하고 쿠키의 단점에 대해 알아볼 것이다.그 다음 쿠키의 단점을 보완하기 위해 세션을 적용시킬 것.사용자가 로그인을 하고 성공
세션을 가지고 로그인 기능을 구현했지만 아직도 여전히 문제가 많이 있었다.로그인을 하지 않더라도 url경로만 알고있다면 접근이 가능했다.그래서 이러한 문제를 없애고자 서블릿은 필터, 스프링은 인터셉터를 제공한다.AOP를 사용할 수 있지만 웹과 관련된 공통 관심사 처리같
도서 관리 서비스의 전체적인 UI 통일 및 개편을 했다. 우선 도서 관리 서비스에서 구현한 기능은,쿠키-세션을 통한 로그인/회원가입/로그아웃 기능쿠키-세션 로그인 및 필터를 통한 비로그인시 서비스 이용 불가 로그인을 하지 않으면 서비스 이용 불가능예시로 로그인을 하지
spring boot 2.7.16java 11H2 DBMyBatisSpring Data jpathymeleaf게시글 CRUD모든걸 다 할 수 있도록,, 후히호히처럼 크루원 모집하거나,, 그냥 일상글 올리거나 등 따로 웹 사이트를 들락날락 거리지 않을 수 있는 컨셉으로
BaseTimeEntity는 등록일과 수정일이 들어있는 베이스 엔티티User와 Tag는 다대다 관계로 설정함.다대다 관계는 @ManyToMany어노테이션을 사용해서 구현할 수 있지만 다대다 관계를 일대다,다대일 관계로 풀어내서 작성하는 것이 더 좋아서 UserTag라는
우선 자유 게시판 기능부터 구현해보도록 하겠다. 상대적으로 ,, 간단해보인다,,,
User Reply Board ReplyRepository ReplyService ReplyViewController
해시 태그 구현 중에 다음과 같이 에러가 발생했다.찾아보니 OneToMany, ManyToMany인 Bag 두 개 이상을 EAGER로 fetch할 때 발생하는 에러라고 한다. 위 코드에선 OneToMany인 replies와 tags를 EAGER로 fetch해서 발생한
첨부 파일 추가
크루 가입 탈퇴 기능을 구현하다가 객체의 비교에 있어서 정리하고자한다.크루 엔티티에 크루 가입 가능 여부와 크루 멤버인지에 대해서 작성했다.컨트롤러는 위와 같이 작성했다.crewService는 위와 같이 작성했는데 자꾸 가입은 되도 탈퇴가 되지 않았다.문제는 User
크루 CRUD 기능 구현에 대해 정리하고자 한다.@ManyToMany를 권장하지는 않지만 우선 존재하는 방법이기 때문에 한번 사용은 해봐야겠다는 생각이 들어 여기서는 @ManyToMany를 사용해보았다.우선 크루 생성과 관련된 필드들만 나타냈다.크루 썸네일 기능은 구현
크루에 참여 및 탈퇴 기능과 크루 세팅하는 부분에 대해서 정리하고자 한다.크루 세팅은 크루 공개/비공개, 크루원 모집 혹은 모집X인지, 크루 활동이 종료되었는지 아닌지를 설정하는 코드를 정리하고자 한다.코드를 보면 이해가 갈 것이다.그냥 단순히 true/false 또는
먼저 사용자가 관심있어요 누른 크루즈와 사용자가 참여중인 크루즈를 가져오는 코드이다.그전에 User와 Crew 엔티티 연관관계를 단방향이었다가 양방향으로 다음과 같이 설정했다.코드를 구현하면서 느낀게 스트림을 정말 잘 다루면 너무 좋을꺼같다.........참고로 new
사용자 프로필 설정 기능이다.롬복 어노테이션들은 생략하고 포스팅하고자 한다.회원 탈퇴 시 프로필 사진도 삭제되게 CascadeType.ALL로 설정하였다.첨부파일 업로드 포스팅과 별 차이 없다.추가된 부분만 정리하겠다.첨부파일 구현과 똑같고 약간 다른거는 파일 경로 가