Skip to content

Tenstagram/News-Feed

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

150 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“° λ‰΄μŠ€ν”Όλ“œ

이 ν”„λ‘œμ νŠΈλŠ” Spring Boot와 MySQL을 μ‚¬μš©ν•˜μ—¬ 개발된 κ²Œμ‹œνŒ 관리 API μž…λ‹ˆλ‹€.
JWT λ°©μ‹μ˜ 인증 방법을 μ‚¬μš©ν•˜κ³  있으며, JPAλ₯Ό ν™œμš©ν•œ MySQL DBλ₯Ό μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.
각쒅 상황에 λ”°λ₯Έ μ˜ˆμ™Έ 처리λ₯Ό μ œκ³΅ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

Java Spring Boot JPA JWT Hibernate MySQL GitHub

πŸ“Œ μ£Όμš” κΈ°λŠ₯

1. μ‚¬μš©μž 관리

  • νšŒμ›κ°€μž…: μƒˆλ‘œμš΄ μ‚¬μš©μžλ₯Ό λ“±λ‘ν•©λ‹ˆλ‹€.
  • 둜그인: μ‚¬μš©μž 인증을 μœ„ν•œ JWT 기반 λ‘œκ·ΈμΈμž…λ‹ˆλ‹€.
  • μ‚¬μš©μž 정보 쑰회: μ‚¬μš©μž 정보λ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.
  • μ‚¬μš©μž 정보 μˆ˜μ •: μ‚¬μš©μž 정보λ₯Ό μ—…λ°μ΄νŠΈν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • μ‚¬μš©μž νƒˆν‡΄: Soft Delet λ°©μ‹μ˜ νšŒμ› νƒˆν‡΄ κΈ°λŠ₯μž…λ‹ˆλ‹€.

2. κ²Œμ‹œλ¬Ό 관리

  • κ²Œμ‹œκΈ€ μž‘μ„±: μƒˆλ‘œμš΄ κ²Œμ‹œκΈ€μ„ μƒμ„±ν•©λ‹ˆλ‹€.
  • κ²Œμ‹œκΈ€ 전체 쑰회: 필터링 및 νŽ˜μ΄μ§•μ„ μ§€μ›ν•˜λŠ” κ²Œμ‹œκΈ€ λͺ©λ‘ 쑰회기λŠ₯ μž…λ‹ˆλ‹€. λ˜ν•œ μ°¨λ‹¨ν•œ μ‚¬μš©μžμ˜ κ²Œμ‹œκΈ€μ„ μˆ¨κΉ€ μ²˜λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • νŠΉμ • κ²Œμ‹œκΈ€ 쑰회: μ„ νƒν•œ κ²Œμ‹œκΈ€μ˜ 상세 정보λ₯Ό ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 친ꡬ κ²Œμ‹œκΈ€ 쑰회 : μ„œλ‘œ μΉœκ΅¬μ΄κ±°λ‚˜ λ‚΄κ°€ 친ꡬ μΆ”κ°€λ₯Ό ν•œ μ‚¬μš©μžμ˜ κ²Œμ‹œκΈ€μ„ μ΅œμ‹ μˆœμœΌλ‘œ μ‘°νšŒν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • νŠΉμ • κ²Œμ‹œκΈ€ μˆ˜μ •: μ„ νƒν•œ κ²Œμ‹œκΈ€μ˜ 정보λ₯Ό μˆ˜μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • νŠΉμ • κ²Œμ‹œκΈ€ μ‚­μ œ: Soft Delet λ°©μ‹μ˜ κ²Œμ‹œκΈ€ μ‚­μ œ κΈ°λŠ₯μž…λ‹ˆλ‹€.

3. λŒ“κΈ€ 관리

  • λŒ“κΈ€ μž‘μ„±: κ²Œμ‹œκΈ€μ— λŒ“κΈ€μ„ μΆ”κ°€ν•©λ‹ˆλ‹€.
  • νŠΉμ • κ²Œμ‹œκΈ€μ˜ λŒ“κΈ€ 전체 쑰회: νŠΉμ • κ²Œμ‹œκΈ€μ˜ λŒ“κΈ€μ„ νŽ˜μ΄μ§• μ²˜λ¦¬ν•˜μ—¬ μ‘°νšŒν•©λ‹ˆλ‹€.
  • νŠΉμ • κ²Œμ‹œκΈ€μ˜ 베슀트 λŒ“κΈ€ 쑰회: 인기 μžˆλŠ” 베슀트 λŒ“κΈ€μ„ ν™•μΈν•©λ‹ˆλ‹€.
  • νŠΉμ • λŒ“κΈ€ μˆ˜μ •: μ„ νƒν•œ λŒ“κΈ€μ˜ 상세 정보λ₯Ό ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • νŠΉμ • λŒ“κΈ€ μ‚­μ œ: Soft Delet λ°©μ‹μ˜ λŒ“κΈ€ μ‚­μ œ κΈ°λŠ₯μž…λ‹ˆλ‹€.

4. μ’‹μ•„μš” κΈ°λŠ₯

  • νŠΉμ • κ²Œμ‹œκΈ€/λŒ“κΈ€ μ’‹μ•„μš” 및 μ·¨μ†Œ: 각 κ²Œμ‹œκΈ€ 및 λŒ“κΈ€μ— μ’‹μ•„μš”λ₯Ό μΆ”κ°€ν•˜κ±°λ‚˜ μ·¨μ†Œν•  수 μžˆμŠ΅λ‹ˆλ‹€.

5. 관계 κΈ°λŠ₯

  • νŠΉμ • μ‚¬μš©μž 친ꡬ μš”μ²­: μ‚¬μš©μž κ°„ 친ꡬ μš”μ²­μ„ 보낼 수 μžˆμŠ΅λ‹ˆλ‹€.
  • νŠΉμ • μ‚¬μš©μž 친ꡬ μš”μ²­ 수락 및 거절: μ‚¬μš©μž κ°„ 친ꡬ μš”μ²­μ— λŒ€ν•΄ μˆ˜λ½ν•˜κ±°λ‚˜ κ±°μ ˆν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • νŒ”λ‘œμ›Œ 및 νŒ”λ‘œμž‰ λͺ©λ‘ 쑰회 : λ‚˜λ₯Ό 친ꡬ μΆ”κ°€ν•œ μ‚¬μš©μžμ™€ λ‚΄κ°€ 친ꡬ μΆ”κ°€ν•œ μ‚¬μš©μž, λ˜λŠ” λ§žνŒ”λ‘œμš° λͺ©λ‘μ„ μ‘°νšŒν•©λ‹ˆλ‹€.
  • νŠΉμ • μ‚¬μš©μž 차단: νŠΉμ • μ‚¬μš©μžλ₯Ό μ°¨λ‹¨ν•˜μ—¬ 관계λ₯Ό 관리할 수 μžˆμŠ΅λ‹ˆλ‹€.
  • 차단 λͺ©λ‘ 쑰회 : λ‚΄κ°€ μ°¨λ‹¨ν•œ μ‚¬μš©μžμ˜ λͺ©λ‘μ„ μ‘°νšŒν•©λ‹ˆλ‹€.
  • νŠΉμ • μ‚¬μš©μž 차단 ν•΄μ œ : μ°¨λ‹¨ν•œ μ‚¬μš©μžμ˜ 차단 μƒνƒœλ₯Ό ν•΄μ œν•©λ‹ˆλ‹€.

πŸ› οΈ 기술 μŠ€νƒ

Backend

  • Java 17+
  • Spring Boot 3.4.2
  • Spring Data JPA
  • JPA Auditing

Database

  • MySQL 8.0

Security

  • JWT (JSON Web Token)
  • BCrypt (at.favre.lib:bcrypt:0.10.2)

Utilities

  • Lombok

πŸ“† 개발 κΈ°κ°„

2025-02-14 ~ 2025-02-20

πŸ“‚ ν”„λ‘œμ νŠΈ ꡬ쑰

src
└── main
    └── java/com/example/project
        β”œβ”€β”€ domain/
        β”‚   β”œβ”€β”€ member/                # μ‚¬μš©μž(Member) 도메인
        β”‚   β”‚   β”œβ”€β”€ controller/        # MemberController
        β”‚   β”‚   β”œβ”€β”€ service/           # MemberService
        β”‚   β”‚   β”œβ”€β”€ repository/        # MemberRepository
        β”‚   β”‚   β”œβ”€β”€ dto/               # MemberDTO
        β”‚   β”‚   β”œβ”€β”€ command/           # MemberCommand
        β”‚   β”‚   β”œβ”€β”€ entity/            # Member (JPA μ—”ν‹°ν‹°)
        β”‚   β”‚   β”œβ”€β”€ exception/         # μ‚¬μš©μž κ΄€λ ¨ μ˜ˆμ™Έ 처리
        β”‚   β”‚   └── util/              # μ‚¬μš©μž 도메인 κ΄€λ ¨ μœ ν‹Έ 클래슀
        β”‚   β”œβ”€β”€ relationship/          # 관계(Relationship) 도메인(μΉœκ΅¬μš”μ²­,수락,차단)
        β”‚   β”‚   β”œβ”€β”€ controller/        # RelationshipController
        β”‚   β”‚   β”œβ”€β”€ service/           # RelationshipService
        β”‚   β”‚   β”œβ”€β”€ repository/        # RelationshipRepository
        β”‚   β”‚   β”œβ”€β”€ dto/               # RelationshipDTO
        β”‚   β”‚   β”œβ”€β”€ entity/            # Relationship (JPA μ—”ν‹°ν‹°)
        β”‚   β”‚   β”œβ”€β”€ exception/         # 관계 κ΄€λ ¨ μ˜ˆμ™Έ 처리
        β”‚   β”‚   └── util/              # 관계 도메인 κ΄€λ ¨ μœ ν‹Έ 클래슀
        β”‚   β”œβ”€β”€ like/                  # μ’‹μ•„μš” 도메인
        β”‚   β”‚   β”œβ”€β”€ controller/        # LikeController
        β”‚   β”‚   β”œβ”€β”€ service/           # LikeService
        β”‚   β”‚   β”œβ”€β”€ repository/        # LikeRepository
        β”‚   β”‚   β”œβ”€β”€ dto/               # LikeDTO
        β”‚   β”‚   β”œβ”€β”€ entity/            # Like (JPA μ—”ν‹°ν‹°)
        β”‚   β”‚   β”œβ”€β”€ exception/         # μ’‹μ•„μš” κ΄€λ ¨ μ˜ˆμ™Έ 처리
        β”‚   β”‚   └── util/              # μ’‹μ•„μš” 도메인 κ΄€λ ¨ μœ ν‹Έ 클래슀
        β”‚   β”œβ”€β”€ post/                  # κ²Œμ‹œλ¬Ό(Post) 도메인
        β”‚   β”‚   β”œβ”€β”€ controller/        # PostController
        β”‚   β”‚   β”œβ”€β”€ service/           # PostService
        β”‚   β”‚   β”œβ”€β”€ repository/        # PostRepository
        β”‚   β”‚   β”œβ”€β”€ dto/               # PostDTO
        β”‚   β”‚   β”œβ”€β”€ entity/            # Post (JPA μ—”ν‹°ν‹°)
        β”‚   β”‚   β”œβ”€β”€ exception/         # κ²Œμ‹œλ¬Ό κ΄€λ ¨ μ˜ˆμ™Έ 처리
        β”‚   β”‚   └── util/              # κ²Œμ‹œλ¬Ό 도메인 κ΄€λ ¨ μœ ν‹Έ 클래슀
        β”‚   β”œβ”€β”€ comment/               # λŒ“κΈ€ 도메인 (ν•„μš” μ‹œ)
        β”‚   β”‚   β”œβ”€β”€ controller/        # CommentController
        β”‚   β”‚   β”œβ”€β”€ service/           # CommentService
        β”‚   β”‚   β”œβ”€β”€ repository/        # CommentRepository
        β”‚   β”‚   β”œβ”€β”€ dto/               # CommentDTO
        β”‚   β”‚   β”œβ”€β”€ entity/            # Comment (JPA μ—”ν‹°ν‹°)
        β”‚   β”‚   β”œβ”€β”€ exception/         # λŒ“κΈ€ κ΄€λ ¨ μ˜ˆμ™Έ 처리
        β”‚   β”‚   └── util/              # λŒ“κΈ€ 도메인 κ΄€λ ¨ μœ ν‹Έ 클래슀
        β”œβ”€β”€ config/                    # μ„€μ • (Security, CORS, DB λ“±)
        β”œβ”€β”€ exception/                  # κΈ€λ‘œλ²Œ μ˜ˆμ™Έ 처리 (GlobalExceptionHandler)
        β”œβ”€β”€ util/                       # 곡톡 μœ ν‹Έλ¦¬ν‹° 클래슀
        β”œβ”€β”€ security/                   # 인증 및 κΆŒν•œ κ΄€λ ¨ 클래슀
        └── application.properties      # ν™˜κ²½μ„€μ • 파일

πŸ–ΌοΈ μ™€μ΄μ–΄ν”„λ ˆμž„

image image

πŸ’‘ ERD

image

πŸ“– API λͺ…μ„Έ

μžμ„Έν•œ API λͺ…μ„ΈλŠ” API λ¬Έμ„œλ₯Ό 톡해 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

API λ¬Έμ„œ 보기

πŸ“Ί μ‹œμ—° μ˜μƒ

ν”„λ‘œμ νŠΈ μ‹œμ—° μ˜μƒμ€ μ˜μƒ 링크λ₯Ό 톡해 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

μ‹œμ—° μ˜μƒ 보기

✨ νŒ€μ›


김기홍

μ‚¬μš©μž, 인증/인가

μ†‘μœ€μ •

κ²Œμ‹œλ¬Ό

이채원

νŒ”λ‘œμš°/차단

μ •μ˜μš©

λŒ“κΈ€

About

πŸ’‘ λ‰΄μŠ€ν”Όλ“œ ν”„λ‘œμ νŠΈ

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages