Skip to content

hagd0520/Medium

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Title: [2Week] 김경환


미션 요구사항 분석 & 체크리스트

  • 미디엄은 블로그 플랫폼이다.
  • 본인의 글을 유료화 할 수 있다.
  • 미디엄에 가입 이후에 유료 멤버십에 가입하면 유료글을 볼 수 있다.
  • 멤버십의 유지비용은 달에 2천원이다.
  • 미디엄은 한달에 한번 유료글 작성자에게 조회수를 기준으로 멤버십 수익의 일정부분을 캐시로 정산해준다.
  • 해당 캐시는 사이트 내에서 돈처럼 사용가능하고 원할 때 환전할 수 잇다.
  • 이번 전반기 미션에서는 멤버십기능 정산기능을 제외한 나머지 기능을 구현한다.

필수미션


1주차 리팩토링

  • 1주차에서 빼놓았던 홈 화면을 작성했다
    • 작성 과정에서 pagination을 나눌 필요를 느껴 키워드가 있을 경우와 없을 경우를 기준으로 pagination과 paginationWithKw 로 나누었다.
  • articleTable fragment 가 pageable 값 뿐 아니라 List 값도 가짐에 따라 파라미터의 이름을 pagination 에서 articles 로 수정했다.

2주차 미션 요약

1. Member 클래스에 private boolean isPaid 필드를 추가

  • 해당 필드가 true 인 사람이 로그인할 때, 유료 멤버십 회원의 권한 ROLE_PAID 가지도록(스프링 시큐리티)

2. Post 클래스에 private boolean isPaid 필드를 추가

  • Get /post/list
  • 멤버십 회원이 아니라도 글 리스트에서는 멤버십 전용글을 볼 수 있습니다.
  • GET /post/1
  • 유료 멤버십 회원이고 1번 글이 멤버십 전용글이라면 볼 수 있다.
  • 그 외에는 이 글은 유료 멤버십 전용입니다. 노출

3. NotProd 에서 유료멤버십 회원(샘플 데이터)과 유료글(샘플 데이터)을 각각 100개 이상 생성

  • 생성

[접근방법]

  • 권한 부여는 각 유형에 해당하는 권한을 하나씩 할당하는 형식을 채용했다.
  • 자바스크립트를 끌 경우 발생할 예외를 처리하기 위해 BindingResult를 활용해 유효성 검사에서 문제가 발생할 경우 global.js 를 반환하게 했다.
  • 유료멤버십 글은 제목의 색상을 바꾸어 구분하였다.
  • ArticleService에 canReadArticleIsPaid 메소드를 두고 th:if 를 통해 활용함으로써 멤버십 전용글을 멤버십 회원만 읽을 수 있게 했다.
    • 글을 읽을 수 있는 대상은 어드민, 작성자, 멤버십 회원이다.
  • hit(조회수)는 showDetail 메서드가 호출될때마다 한번씩 늘어나도록 했다.
  • countByArticle 메서드를 사용해 추천 수를 확인할 수 있도록 만들었다.

[특이사항]


[수정사항]

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published