Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jaeyeonme/readit
레딧과 같은 사용자 중심의 상호작용과 소통을 중심으로 한 플랫폼으로, 다양한 주제와 관심사를 공유하고 의견을 나누는 커뮤니티를 만드는 것이 목표입니다.
https://github.com/jaeyeonme/readit
backend hibernate java mysql redis spring-boot spring-data-jpa
Last synced: 7 days ago
JSON representation
레딧과 같은 사용자 중심의 상호작용과 소통을 중심으로 한 플랫폼으로, 다양한 주제와 관심사를 공유하고 의견을 나누는 커뮤니티를 만드는 것이 목표입니다.
- Host: GitHub
- URL: https://github.com/jaeyeonme/readit
- Owner: jaeyeonme
- Created: 2022-01-31T14:21:34.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-08-13T03:21:02.000Z (over 1 year ago)
- Last Synced: 2024-11-17T15:43:20.498Z (2 months ago)
- Topics: backend, hibernate, java, mysql, redis, spring-boot, spring-data-jpa
- Language: Java
- Homepage:
- Size: 130 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
"레딧 스타일의 창의적 커뮤니티 플랫폼"
사용자들이 다양한 주제와 관심사를 공유하며, 서로 의견을 교환할 수 있는 블로그 서비스를 제공합니다.
## ✏ 무엇을 경험하려고 하는건가요?
- 테스트 코드 작성과 테스트 커버리지를 높이기 위한 방법들을 적용하기 위해 노력했습니다.
- 코드의 재사용성, 확장성 및 유지 보수성 향상을 위해 OOP원칙을 적용하려고 노력했습니다.
## ✏ Project Structure
## 게시글 API 명세서
|HTTP Method|URL Path|Status Code|Description|
|:-----:|:-----:|:-----:|:-----:|
| POST | /api/posts | 201 (Created) | 새로운 게시글 작성 |
| GET | /api/posts | 200 (OK) | 모든 게시글 가져오기 (키워드 검색 가능) |
| GET | /api/posts/{id} | 200 (OK) | 게시글 ID로 가져오기 |
| PUT | /api/posts/{id} | 200 (OK) | 게시글 ID로 수정 |
| DELETE | /api/posts/{id} | 200 (OK) | 게시글 ID로 삭제 |
## 댓글 API 명세서
|HTTP Method|URL Path|Status Code|Description|
|:-----:|:-----:|:-----:|:-----:|
| POST | /api/posts/{postId}/comments | 201 (Created) | 새로운 댓글 작성 |
| POST | /api/posts/{postId}/comments/{commentId} | 201 (Created) | 대댓글 |
| GET | /api/posts/{postId}/comments | 200 (OK) | 게시글에 해당하는 댓글 가져오기 |
| GET | /api/posts/{postId}/comments/{commentId} | 200 (OK) | 댓글 ID로 가져오기 |
| PUT | /api/posts/{postId}/comments/{commentId} | 200 (OK) | 댓글 ID로 수정 |
| DELETE | /api/posts/{postId}/comments/{commentId} | 200 (OK) | 댓글 ID로 삭제 |
## 멤버 API 명세서
|HTTP Method|URL Path|Status Code|Description|
|:-----:|:-----:|:-----:|:-----:|
| POST | /members/register | 201 (Created) | 회원가입 |
| POST | /members/sign-in | 200 (OK) | 로그인 |
| POST | /members/logout | 200 (OK) | 로그아웃 |
# :pushpin: 배포(수정중)
>
- AWS EC2 기간이 끝나서 Heroku로 이동중입니다.## 1. 제작 기간
- 2022년 10월 10일 ~ 10월 15일
- 개인 프로젝트## 2. 사용 기술
#### `Back-end`
- Java 11
- Spring Boot 2.5.9
- Gradle
- Spring Data JPA
- MySQL
- Swagger#### `Heroku`
- MySQL## 3. ERD 설계
## 4. DTO
- Request, Resonse DTO를 따로 생성하지 않고 -> modelmapper로 DTO 통합
- open-session-in-view true가 default 값이므로, Service Layer에서 (Entity -> DTO 변환)
## 5. 연관관계 처리
- 게시글과 댓글 1:N 연관관계 처리를 하였습니다., 고아객체 와 영속성전이(CASCADE)와 고아 객체(PrphanRemoval)로 세팅해서 부모엔티티가 변경되면 자식 엔티티도 같이 변경될 수 있도록 설정하였습니다.```java
@OneToMany(mappedBy = "post", cascade = CascadeType.ALL, orphanRemoval = true)
private Set comments = new HashSet<>();...
// 여러개(댓글)에 하나의 포스트, 포스트 클래스 : OneToMany 하나의 포스트에 여러개 댓글
@ManyToOne(fetch = FetchType.LAZY)
private Post post;
```
## 6. 추가작업 중
- JWT