Skip to content

95hyun/newspace-backend

 
 

Repository files navigation

newspace-backend


📍 프로젝트 설명

25.02.21 ~ 25.02.26
LG CNS AM Inspire Camp
미니프로젝트 1 - 1조

현대 사회에서는 뉴스가 빠르게 생산되고 실시간으로 소비되는 경향이 강합니다.
이러한 환경 속에서 사용자가 과거의 중요한 이슈를 되짚어보는 일이 마냥 쉽지만은 않습니다.
이에 저희는 AI를 활용하여 오늘 날짜에 있었던 과거의 핫 뉴스를 제공하는 서비스, Newspace를 개발하였습니다.

👩‍💻 Backend 팀원

Avatar
현민영(팀장)
95hyun's GitHub stats
Spring AI(뉴스), 예외처리,
회원/카테고리/키워드/공지 CRUD
Spring Cloud Gateway
Avatar
구동혁
dhku's GitHub stats
Jenkins CI/CD, docker-compose,
프로필 이미지 CRUD,
Spring Cloud Eureka
Avatar
정민석
minnnseokk's GitHub stats
Spring Security,
JWT 토큰-쿠키 처리 로직,
일반로그인, 로그아웃, 회원탈퇴

🛠️ 기술 스택


📂 폴더 구조

.
├── build.gradle
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── settings.gradle
└── src
    ├── main
    │   ├── java
    │   │   └── com
    │   │       └── lgcns
    │   │           └── newspacebackend
    │   │               ├── domain
    │   │               │   ├── news
    │   │               │   │   ├── controller
    │   │               │   │   │   ├── NewsAIController.java
    │   │               │   │   │   ├── NewsCategoryController.java
    │   │               │   │   │   └── NewsKeywordController.java
    │   │               │   │   ├── dto
    │   │               │   │   │   ├── NewsCategoryRequestDto.java
    │   │               │   │   │   ├── NewsCategoryResponseDto.java
    │   │               │   │   │   ├── NewsKeywordRequestDto.java
    │   │               │   │   │   ├── NewsKeywordResponseDto.java
    │   │               │   │   │   ├── NewsRequestDto.java
    │   │               │   │   │   └── NewsResponseDto.java
    │   │               │   │   ├── entity
    │   │               │   │   │   ├── NewsCategory.java
    │   │               │   │   │   └── NewsKeyword.java
    │   │               │   │   ├── repository
    │   │               │   │   │   ├── NewsCategoryRepository.java
    │   │               │   │   │   └── NewsKeywordRepository.java
    │   │               │   │   └── service
    │   │               │   │       ├── NewsAIService.java
    │   │               │   │       ├── NewsCategoryService.java
    │   │               │   │       └── NewsKeywordService.java
    │   │               │   ├── notice
    │   │               │   │   ├── controller
    │   │               │   │   │   └── NoticeController.java
    │   │               │   │   ├── dto
    │   │               │   │   │   ├── NoticeRequestDto.java
    │   │               │   │   │   └── NoticeResponseDto.java
    │   │               │   │   ├── entity
    │   │               │   │   │   └── Notice.java
    │   │               │   │   ├── repository
    │   │               │   │   │   └── NoticeRepository.java
    │   │               │   │   └── service
    │   │               │   │       └── NoticeService.java
    │   │               │   └── user
    │   │               │       ├── controller
    │   │               │       │   └── UserController.java
    │   │               │       ├── dto
    │   │               │       │   ├── LoginRequestDto.java
    │   │               │       │   ├── SignupRequestDto.java
    │   │               │       │   ├── UserInfoRequestDto.java
    │   │               │       │   └── UserInfoResponseDto.java
    │   │               │       ├── entity
    │   │               │       │   ├── User.java
    │   │               │       │   └── UserRole.java
    │   │               │       ├── repository
    │   │               │       │   └── UserRepository.java
    │   │               │       └── service
    │   │               │           └── UserService.java
    │   │               ├── global
    │   │               │   ├── config
    │   │               │   │   ├── ChatClientConfig.java
    │   │               │   │   ├── PasswordConfig.java
    │   │               │   │   └── RestTemplateConfig.java
    │   │               │   ├── entity
    │   │               │   │   └── TimeStamp.java
    │   │               │   ├── security
    │   │               │   │   ├── config
    │   │               │   │   │   ├── CorsConfig.java
    │   │               │   │   │   ├── SecurityConfig.java
    │   │               │   │   │   └── WebConfig.java
    │   │               │   │   ├── constant
    │   │               │   │   │   ├── GrantType.java
    │   │               │   │   │   └── TokenType.java
    │   │               │   │   ├── dto
    │   │               │   │   │   └── JwtTokenInfo.java
    │   │               │   │   ├── filter
    │   │               │   │   │   ├── JwtAuthenticationFilter.java
    │   │               │   │   │   └── JwtAuthorizationFilter.java
    │   │               │   │   ├── jwt
    │   │               │   │   │   ├── JwtTokenUtil.java
    │   │               │   │   │   └── JwtTokenUtilPractice.java
    │   │               │   │   ├── UserDetailsImpl.java
    │   │               │   │   ├── UserDetailsServiceImpl.java
    │   │               │   │   └── util
    │   │               │   │       └── FilterResponseUtil.java
    │   │               │   └── util
    │   │               │       └── FileUtil.java
    │   │               └── NewspaceBackendApplication.java
    │   └── resources
    │       └── static
    │           └── profile.png
    └── test
        └── java
            └── com
                └── lgcns
                    └── newspacebackend
                        └── NewspaceBackendApplicationTests.java

🏗️ 시스템 아키텍처

image

🦭 ERD

image

📦 Github Repository

전체 : https://github.com/orgs/newspaceProject/repositories
frontend : https://github.com/newspaceProject/newspace-frontend
deploy : https://github.com/newspaceProject/newspace-deploy
Gateway : https://github.com/newspaceProject/newspace-gateway
Eureka : https://github.com/newspaceProject/newspace-eureka

📚 Notion

https://www.notion.so/LG-CNS-1-19a5254cd716802b823ce385b7c067cf

🎨 Figma

https://www.figma.com/design/ZrXlz23EOZntJSC8bKVg39/mini01

📽️ 시연 영상

https://youtu.be/molgJbyQhHA?si=BL7uE3PzWK0G6AHR

About

LGCNS AM Inspire camp | 뉴스페이스 백엔드

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%