Code Monkey home page Code Monkey logo

fastcampus-project-board-admin's Introduction

fastcampus-project-board-admin

fastcampus-project-board-admin's People

Contributors

lmw7414 avatar

Watchers

 avatar

fastcampus-project-board-admin's Issues

메인 클래스 대소문자 리팩토링

메인 클래스인 FastcampusProjectBoardAdminApplication의 대소문자를 일부 리팩토링한다.
fastcampus-project-board-admin으로 프로젝트를 만들면 fastcampus가 IDE 입장에서 한 단어로 보인다.
케밥 케이스(kabab-case)로 쓴 프로젝트명은 의도한 것이지만 파스칼 케이스(PascalCase)로는 FastCampus였으면 더 좋겠다.

Reference

[어드민] 로그인 페이지 만들기

어드민에 관리자가 로그인 할 수 있도록 로그인 페이지를 만든다.
카카오 인증 기능만을 이용하므로 페이지 구현이 매우 적거나, 아예 필요 없을 수도 있다.

테이블명 변경 : `user_account` -> `admin_account`

게시판 서비스로부터 가져올 회원 도메인 이름과 어드민 서비스의 회원 도메인 이름이 서로 똑같다.
이를 피하고 더 명확한 의미를 구분하기 위해 어드민 서비스의 회원 테이블명을 변경한다.

[어드민] 도메인 설계

어드민 프로젝트를 개발하는데 필요할 것으로 예상되는 도메인을 미리 설계해본다.

  • 회원

[어드민] 프로젝트 기획 - 필요한 기술 정리하기

어드민 서비스를 기획하면서 필요한 기능을 토대로 사용할 세부적인 기술들을 미리 구상한다.

필요기능

  • 어드민 회원, 방문자 수 집계 도메인의 설계
  • 도메인 데이터를 DB에 저장
  • 사용자에게 웹 화면으로 서비스 제공 + 디자인 요소
  • 게시판 서비스와 API통신
  • 부가기능
  • 다크모드, todo list, 방문자 수 집계, 채팅
  • 인증기능 - 카카오 기반 OAuth 2.0 인증

예상 필요 기술(스프링 부트 의존성)

  • 웹 서비스 제공 → Spring Web
  • 도메인 설계와 DB 저장 → Spring Data JPA, H2 Database, MySQL Driver
  • 웹 화면 : Thymeleaf
  • 디자인 요소 → AdminLTE 3.2.8
  • API 통신 → RestTemplate, ‘OpenFeign`
  • 채팅기능 → WebSocket
  • 인증 기능 → Spring Security OAuth2 Client
  • 생산성 → Lombok, Spring Boot DevTools, Spring Boot Actuator, Spring Configuration Processor

확정되지 않은 것들(Optional)

  • JSON API 로 데이터 제공 → Rest Repositories, Rest Repositories HAL Explorer

[어드민] 댓글 페이지, 회원 관리 페이지 페이징, 정렬, 검색 구현

#21 에 이어서 댓글, 회원 추가로 어드민 회원 관리 페이지의 테이블에 페이징, 정렬, 검색 기능을 추가한다.
역시 실제로는 프론트엔드(Javascript) 라이브러리로 기능 구현이 이루어지므로, 기능의 구현 상황을 점검하면 작업을 마무리할 수 있을 것으로 예상한다.

Todo

  • 댓글, 회원, 어드민 회원 - 페이징
  • 댓글, 회원, 어드민 회원 - 정렬
  • 댓글, 회원, 어드민 회원 - 검색

[어드민] 뷰 엔드포인트 테스트 정의

어드민 서비스에 제공할 예정인 뷰와 각 스펙을 테스트로 어느정도 미리 정의해본다.
기능을 구현하면서 들어갈 디테일한 스펙들은 추후 별도 이슈로 다룬다.

TODO

  • 메인 루트 뷰
  • 게시글 관리 뷰
  • 댓글 관리 뷰
  • 회원 관리 뷰
  • 어드민 회원 뷰

[어드민] 로그인 페이지 기능 테스트 정의

로그인 기능을 구현하기 위해 테스트가 필요한지 검토하고, 어드민 회원 기능과 카카오 OAuth 인증을 준비한다.

Todo

  • 로그인 설정 및 테스트 검토
  • 어드민 회원 기능 검토
  • 카카오OAuth 인증 준비 및 테스트 검토

[어드민] 회원 관리 페이지 만들기

#8 에서 작업한 공통 템플릿을 이용하여 게시판 서비스 회원 관리 페이지와 어드민 서비스 회원 관리 페이지를 만든다.

TODO

  • 게시판 회원 관리 페이지
  • 어드민 회원 관리 페이지

[어드민] 어드민 부가기능 - 방문자 수 집계

어드민에 방문하는 사람 수를 집계하여 화면에 표시한다.
어드민은 인가된 관리자만 사용하는 도구이므로, 불특정 다수의 방문객을 기대하는 서비스는 아니다.
따라서 실제로는 방문자 수 집계가 큰 의미가 없을 것으로 예상

이에 unique 방문자 수를 구하기보다는 페이지 조회 수를 집계하여 하루 도구 사용량을 가늠하는 지표로 활용해본다.
기술 구현 방법으로 Spring Acutator의 지표 수집 기능을 활용한다.

[어드민] AdminLTE 구경하기 - 기초 셋업

어드민 서비스 UI를 간편하게 구성하기 위해 AdminLTE 도입 여부를 검토하고, 스프링 부트 프로젝트에서 사용할 수 있게끔 기초 구성을 해둔다.

TODO

  • AdminLTE 조사
  • html 마크업에 AdminLTE 적용
  • 템플릿 레이어 구성하기

Reference

AdminLTE 공식 홈페이지: https://adminlte.io/
AdminLTE 라이브 데모: https://adminlte.io/themes/v3/
AdminLTE Github: https://github.com/ColorlibHQ/AdminLTE

[어드민] 인증 기능 구현

어드민 인증 기능을 구현한다.

Todo

  • 백엔드 인증 구현 : DB 인증
  • 카카오 인증 (OAuth 2.0)
    • 카카오 최초 인증 시점에 DB로 회원 정보를 저장하여 동기화하는 로직에서 버그 수정
  • 카카오 개발자 사이트 작업
    • 어드민용 애플리케이션 등록하기
    • REST API 키 확인하기
    • 사이트 도메인 등록하기
    • Redirect URI 등록하기
    • 동의항목 설정하기
    • Client Secret 키 확인하기

[어드민] 게시글 관리 페이지 페이징, 정렬, 검색 구현

게시글 관리 페이지의 테이블에 페이징, 정렬, 검색 기능을 추가한다.
실제로는 프론트엔드(Javascript) 라이브러리로 기능 구현이 이루어지므로, 기능의 구현 상황을 점검하면 작업을 마무리할 수 있을 것으로 예상한다.

Todo

  • 페이징
  • 정렬
  • 검색

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.