Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[donggi] 스프링 카페 3단계 - DB에 저장하기 #149

Open
wants to merge 17 commits into
base: donggi-lee-bit
Choose a base branch
from

Conversation

donggi-lee-bit
Copy link
Member

안녕하세요 donggi 입니다. 3단계 미션이 완료되어 리뷰 요청드립니다 😆 리뷰를 받을 때마다 쉽게 간과할 수 있는 부분을 한 번씩 짚고 여러 방면에서 생각하고 공부하여 배울 수 있는 것 같습니다. 항상 꼼꼼하게 코드 봐주셔서 감사합니다!!

구현 내용

  • H2 데이터베이스 연동

    • H2 데이터베이스 의존성을 추가하고 연동한다.
    • ORM은 사용하지 않는다.
    • Spring JDBC를 사용한다.
    • DB 저장 및 조회에 필요한 SQL은 직접 작성한다.
  • 게시글 데이터 저장하기

    • Article 클래스를 DB 테이블에 저장할 수 있게 구현한다.
    • Article 테이블이 적절한 PK를 가지도록 구현한다.
  • 게시글 목록 구현하기

    • 전체 게시글 목록 데이터를 DB에서 조회하도록 구현한다.
  • 게시글 상세보기 구현하기

    • 게시글의 세부 내용을 DB에서 가져오도록 구현한다.
  • 사용자 정보 DB에 저장

    • 회원가입을 통해 등록한 사용자 정보를 DB에 저장한다.
  • 배포

특이사항

  • 테스트 코드를 작성하려했으나 Controller 를 테스트 하기 위해서 Mock 에 대한 공부가 필요한 것 같아 배포와 2단계 리뷰 수정사항을 반영한 상태에서 먼저 PR 보내게 됐습니다. 이번 미션 제출 후 테스트 코드를 작성한 뒤 다음 미션을 진행하도록 하겠습니다.
  • Heroku 배포를 하는 과정에서 에러를 해결하느라 여러 시도를 하게 됐는데 그 과정에서 의미 없을 수 있는 커밋이 여러 개 남게 되었습니다 😅
    • BuildSetJVM 으로 해주고 있어 생긴 에러여서 Gradle 로 수정하여 배포에 성공할 수 있었습니다..

- service에 연결된 repository를 Memory -> Jdbc로 변경하였습니다.
- JdbcRepository에서 sql문을 이용하여 게시글 정보를 h2 데이터베이스로 보내주었습니다.
- articleForm에서 본문을 content로 받고 있어서 본문 내용이 저장되지 않던 오류를 수정하였습니다.
- 회원가입을 통해 등록한 사용자 정보를 H2 DB에 저장하였습니다.
- application.properties 에 sql 설정을 추가하여 프로그램 실행시schema.sql이 실행되어 테이블을 생성하도록 하였습니다.
- default 버전으로 java 8 로 설정되어있기에 java 11 버전을 명시해주었습니다.
- / 를 제거하였습니다.
- home.html을 초기화면으로 사용할 수 있어 index.html을 삭제하였습니다.
- h2 db의 path를 추가하였습니다.
- @Autowired 생략
- Integer 로 받던 인자를 int 로 변경
- ArticleController 에서 HomeController 에 있는 중복 메서드 제거
- 의미 없는 빈 줄 삭제
- ArticleForm 의 toEntity 메서드를 static 으로 수행하던 걸 객체 스스로가 수행하도록 수정
- `*` 사용시 불필요한 컬럼명도 확인할 수 있어 구체적인 컬럼명을 기재하여 확인하도록 변경
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant