fastcampus-project-board-admin's Introduction
fastcampus-project-board-admin's People
fastcampus-project-board-admin's Issues
[어드민][리팩터링] 안쓰이는 import 문 제거 및 라인 포매팅
코드의 라인 정리 및 안 쓰이는 import문을 제거한다.
메인 클래스 대소문자 리팩토링
메인 클래스인 FastcampusProjectBoardAdminApplication
의 대소문자를 일부 리팩토링한다.
fastcampus-project-board-admin
으로 프로젝트를 만들면 fastcampus
가 IDE 입장에서 한 단어로 보인다.
케밥 케이스(kabab-case)로 쓴 프로젝트명은 의도한 것이지만 파스칼 케이스(PascalCase)로는 FastCampus
였으면 더 좋겠다.
Reference
[어드민] 회원 관리 페이지 기능 테스트 정의
[어드민] 댓글 관리 페이지 만들기
#8 에서 작업한 공통 템플릿을 이용하여 댓글 관리 페이지를 만든다.
[어드민] 로그인 페이지 만들기
어드민에 관리자가 로그인 할 수 있도록 로그인 페이지를 만든다.
카카오 인증 기능만을 이용하므로 페이지 구현이 매우 적거나, 아예 필요 없을 수도 있다.
[어드민] 게시글 관리 페이지 기능 테스트 정의
게시글 관리 페이지에 들어갈 기능과 컨트롤러 전달을 테스트로 준비한다.
테이블명 변경 : `user_account` -> `admin_account`
게시판 서비스로부터 가져올 회원 도메인 이름과 어드민 서비스의 회원 도메인 이름이 서로 똑같다.
이를 피하고 더 명확한 의미를 구분하기 위해 어드민 서비스의 회원 테이블명을 변경한다.
[어드민] 데이터베이스 접근 로직 테스트 정의
어드민 프로젝트가 데이터베이스를 사용할 수 있게끔 환경을 구성하고 테스트를 정의한다.
TODO
- db 만들기
- 계정 권한 주기
- IDE 접근 환경 꾸미기
- repository 코드 작성
- 관련 테스트 작성
[어드민] 도메인 설계
어드민 프로젝트를 개발하는데 필요할 것으로 예상되는 도메인을 미리 설계해본다.
- 회원
[어드민] 어드민 부가기능 - todo list 구현
adminLTE 컴포넌트 가이드를 참고하여, 어드민 화면 안에서 간단히 다룰 수 있는 todo list 카드를 만든다.
[어드민] 프로젝트 기획 - 필요한 기술 정리하기
어드민 서비스를 기획하면서 필요한 기능을 토대로 사용할 세부적인 기술들을 미리 구상한다.
필요기능
- 어드민 회원, 방문자 수 집계 도메인의 설계
- 도메인 데이터를 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
게시글, 댓글 상세 내용을 보기 위한 모달(Modal) 추가
게시글, 댓글에서 상세 내용을 보여줄 모달을 공통 레이어로 만든다.
[어드민] 회원 관리 페이지 구현
[어드민][리팩토링] 소스코드 리팩토링
불필요한 임포트문 제거하기
[어드민] 테스트 실패 수정하기
[어드민] 어드민 부가 기능 - 다크모드 구현
어드민 서비스에서 부가기능으로 다크모드도 지원하기로 한다.
[어드민] 댓글 관리 페이지 기능 테스트 정의
댓글 관리 페이제이 들어갈 기능과 컨트롤러 전달을 테스트로 준비한다.
[어드민] 스프링 부트 프로젝트 시작하기
#1 에서 정리한 내용을 토대로, 어드민 서비스를 만드는데 필요로 할 만한 요소를 담아 프로젝트 뼈대를 세우고 개발환경을 잡는다.
Reference
[어드민] 댓글 페이지, 회원 관리 페이지 페이징, 정렬, 검색 구현
#21 에 이어서 댓글, 회원 추가로 어드민 회원 관리 페이지의 테이블에 페이징, 정렬, 검색 기능을 추가한다.
역시 실제로는 프론트엔드(Javascript) 라이브러리로 기능 구현이 이루어지므로, 기능의 구현 상황을 점검하면 작업을 마무리할 수 있을 것으로 예상한다.
Todo
- 댓글, 회원, 어드민 회원 - 페이징
- 댓글, 회원, 어드민 회원 - 정렬
- 댓글, 회원, 어드민 회원 - 검색
[어드민] 뷰 엔드포인트 테스트 정의
어드민 서비스에 제공할 예정인 뷰와 각 스펙을 테스트로 어느정도 미리 정의해본다.
기능을 구현하면서 들어갈 디테일한 스펙들은 추후 별도 이슈로 다룬다.
TODO
- 메인 루트 뷰
- 게시글 관리 뷰
- 댓글 관리 뷰
- 회원 관리 뷰
- 어드민 회원 뷰
기본 에러 페이지 구현
어드민 프로젝트에서 보여줄 수 있는 전용 에러페이지를 추가한다.
[어드민] 로그인 페이지 기능 테스트 정의
로그인 기능을 구현하기 위해 테스트가 필요한지 검토하고, 어드민 회원 기능과 카카오 OAuth 인증을 준비한다.
Todo
- 로그인 설정 및 테스트 검토
- 어드민 회원 기능 검토
- 카카오OAuth 인증 준비 및 테스트 검토
[어드민] 어드민 부가기능 - 채팅 기능 구현
AdminLTE에서 제공하는 채팅 컴포넌트 디자인을 활용하여 간단한 채팅 기능을 구현해본다.
스프링 기술로는 Spring WebSocket을 활용한다.
Reference
[어드민] 로그인 페이지 구현
[어드민] 회원 관리 페이지 만들기
[어드민] 깃헙 프로젝트와 이슈 정리하기
본격적으로 어드민 서비스를 개발하기 위해서 할 일을 깃헙 프로젝트와 이슈로 정리하고, 개발 시작 준비를 마친다.
[어드민] 어드민 부가기능 - 방문자 수 집계
어드민에 방문하는 사람 수를 집계하여 화면에 표시한다.
어드민은 인가된 관리자만 사용하는 도구이므로, 불특정 다수의 방문객을 기대하는 서비스는 아니다.
따라서 실제로는 방문자 수 집계가 큰 의미가 없을 것으로 예상
이에 unique 방문자 수를 구하기보다는 페이지 조회 수를 집계하여 하루 도구 사용량을 가늠하는 지표로 활용해본다.
기술 구현 방법으로 Spring Acutator의 지표 수집 기능을 활용한다.
[어드민] 댓글 관리 페이지 구현
[어드민] 데이터베이스 접근 로직 구현
#5 에서 작성한 테스트를 바탕으로 db 접근 로직 필요 여부를 판단하고, 필요한 로직을 구현한다.
[어드민] 게시글 관리 페이지 만들기
#8 에서 작업한 공통 템플릿을 이용하여 게시글 관리 페이지를 만든다.
[어드민] 게시글 관리 페이지 구현
#13 에서 준비한 내용을 토대로, 게시글 관리 페이지를 구현한다.
Todo
- 게시판 프로젝트
- lmw7414/fastcampus-project-board#91
- Data REST API 설정 검토하기
- lmw7414/fastcampus-project-board#95
- #51
- #50
Reference
[어드민] 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
Security Config 사용되지 않는 imports문 제거 리팩토링
지난번 SecurityConfig에서 카카오 인증 기능 부분을 아직 사용하지 않아서 OAuth관련 기능을 제거했다. 하지만 미처 사용하지 않는 imports 문을 제거하지 못해 해당부분을 수정하려고 함
[어드민] 인증 기능 구현
어드민 인증 기능을 구현한다.
Todo
- 백엔드 인증 구현 : DB 인증
- 카카오 인증 (OAuth 2.0)
- 카카오 최초 인증 시점에 DB로 회원 정보를 저장하여 동기화하는 로직에서 버그 수정
- 카카오 개발자 사이트 작업
- 어드민용 애플리케이션 등록하기
- REST API 키 확인하기
- 사이트 도메인 등록하기
- Redirect URI 등록하기
- 동의항목 설정하기
- Client Secret 키 확인하기
[어드민] 게시글 관리 페이지 페이징, 정렬, 검색 구현
게시글 관리 페이지의 테이블에 페이징, 정렬, 검색 기능을 추가한다.
실제로는 프론트엔드(Javascript) 라이브러리로 기능 구현이 이루어지므로, 기능의 구현 상황을 점검하면 작업을 마무리할 수 있을 것으로 예상한다.
Todo
- 페이징
- 정렬
- 검색
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.