Git Product home page Git Product logo

fastcampus-project-board's Introduction

게시판 서비스 - 패스트캠퍼스, 10개 프로젝트로 완성하는 백엔드 웹개발

가장 기본적이고 보편적인 게시판 기능을 둘러볼 수 있는 서비스입니다. 2022년 6월 기준 가장 최신의 스프링 부트와 관련 기술들, 자바 17 기능들, 개발 도구들을 경험할 수 있도록 만들어졌습니다.

이 서비스는 패스트캠퍼스의 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) 초격차 패키지 Online 강의의 강의용 프로젝트로 사용되었습니다.

개발 환경

  • Intellij IDEA Ultimate 2022.1.1 ~ 2022.1.3
  • Java 17
  • Gradle 7.4.1
  • Spring Boot 2.7.0

기술 세부 스택

Spring Boot

  • Spring Boot Actuator
  • Spring Web
  • Spring Data JPA
  • Rest Repositories
  • Rest Repositories HAL Explorer
  • Thymeleaf
  • Spring Security
  • H2 Database
  • MySQL Driver
  • Lombok
  • Spring Boot DevTools
  • Spring Configuration Processor

그 외

  • QueryDSL 5.0.0
  • Bootstrap 5.2.0-Beta1
  • Heroku

데모 페이지

비용 절감을 위해 클라우드 서버가 자동 슬립 모드로 설정되어 있습니다. 링크를 클릭하면 서비스가 깨어납니다. 따라서 첫번째 클릭 반응이 15초 이상으로 다소 늦을 수 있습니다. 이후에는 비교적 원활하게 서비스를 구경하실 수 있습니다.

https://project-board-uno.herokuapp.com/

fastcampus-project-board's People

Contributors

pjiyun123 avatar

Watchers

 avatar

fastcampus-project-board's Issues

깃헙 프로젝트와 이슈 정리하기

깃헙 프로젝트를 세팅하고, 카드를 만들어 정리하자.

  • 프로젝트 베타 만들기
  • 카드 목록 만들기 - 강의 커리큘럼 참고
  • 이슈로 적절히 바꾸기

데이터베이스 접근 로직 테스트 정의

도메인 설계 내용(#8)을 바탕으로 DB와 연동하기 위한 방법을 구상하고, 세팅을 하고, 테스트를 먼저 작성해본다.

  • DB 기술 선택하기
  • DB에 접근할 수 있는 상태로 환경 세팅하기
  • 테스트

게시판 정렬 구현

게시판 정렬 기능을 구현한다.
정렬 기능은 게시판 페이지에서 각 컬럼 (제목, 해시태그, 작성자, 작성일)의 제목을 누르면
해당 값으로 오름차순, 내림차순 정렬이 되게끔 동작하게 만드는데 쓴다.

  • 정렬 기능 구현
  • 뷰에 적용
  • 테스트

게시판 검색 구현

게시판에서 게시글을 검색하는 기능을 구현하고, 검색 기능을 보다 특별하게 이용자에게 제공할 수 있는 방법을 고민해 본다.

  • 구현
    • 검색 대상 필드로 기본 검색 기능 구현
    • 기본 게시판 페이지의 검색바 기능 구현
    • 제목, 본문, 이름 검색 페이지
    • 해시태그 검색 페이지
  • 테스트

잘못된 도메인 정보 바로잡기

#23 기능을 하다가 도메인 코드 설계가 일부 잘못되어 있는것을 발견.
'UserAccount' 회원 계정의 'userId'는 회원 id이므로 유니크해야 하는데,
해당 속성이 빠져있었다.
erd 문서에는 email의 유니크 키가 표현되지 않음
바로잡기로 한다.

  • 'user_id'에 유니크 키 추가
  • 'email' erd 업데이트

게시글 댓글 구현

게시글에 댓글을 다는 기능을 구현한다.

  • 게시글 페이지에서 댓글을 등록하기
  • 게시글 페이지에서 댓글을 골라 삭제하기
  • 게시글 페이지에서 댓글을 골라 편집하기
  • 테스트

도메인 설계

게시판 서비스를 만들기 위한 기본 도메인을 설계해보자.

  • 도메인 ERD 다이어그램 그려보기
  • 자바 클래스로 도메인 표현해보기

게시판 페이징 구현

게시판 서비스에 필요한 페이징 기능을 구현한다.

  • 게시판 페이지 (이전, 숫자, 이후)
  • 게시글 페이지 (이전, 이후)

게시판 서비스 뷰에 기능 구현하기

게시판 서비스 뷰가 실제로 동작하게 만들기 위해 해야 할 일을 정리하고, 실행한다.

  • 뷰 기능 정의
    • 게시판 페이지 기능 테스트 정의
    • 게시글 페이지 기능 테스트 정의
    • 로그인 페이지 기능 테스트 정의
  • 뷰 기능 구현
    • 게시판 페이지 기능 구현
    • 게시글 페이지 기능 구현
    • 로그인 페이지 기능 구현
  • 테스트

인증 기능 구현

인증 기능을 구현한다.

  • 인증 설정하기
    • 인증이 필요 없는 영역
      • 루트 페이지 보기
      • 게시판 보기
    • 인증이 필요한 영역
      • 게시글 (+댓글) 보기
      • 자기 게시글 쓰기, 수정, 삭제
      • 자기 댓글 쓰기, 삭제
  • 인증 기능에 필요한 부분 구현
  • 회원 가입 페이지
  • 테스트

게시판 서비스 뷰 만들기

게시판 서비스 뷰를 만들기 위해 해야 할 일을 정리하고, 실행한다.

  • 뷰 엔드포인트 테스트 정의
  • 뷰 구현
    • 게시판 페이지 만들기
    • 게시글 페이지 만들기
    • 로그인 페이지 만들기
    • 뷰에 디자인 붙이기
  • 테스트

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.