# CowAPI
[CowAPI] 20. SpringWebFlux + Redis
문제"Ai"와 "Ai 정보들을 이용할 대시보드"를 SSE를 이용하여 실시간으로 처리하려고 합니다.publish, subscribe 패턴을 사용하여 대시보드를 publish 하려고 합니다.동기식으로 처리한다면 subscribe 중 인 다른 클라이언트로 인해 지연이 발생합

[CowAPI] 17. DB
DB 설계입니다.Dashboard와 Ai 는 실시간 처리와 많은 수정이 이루어지기 때문에 Redis를 고려하고 있습니다.하지만, 빠른 개발을 위해 먼저 mysql을 통한 구현 후 Redis를 적용할 예정입니다.

[CowAPI] 16. AWS EC2 배포
더미 서버를 구성하여 프론트엔드와 협업을 진행하기로 했습니다.더미 서버에 배포를 진행 해야합니다.git 원격 저장소인 Github에 코드가 저장되어 있어야 합니다.Java11 + Springboot + GradleAWS EC2 인스턴스git 설치java 설치git 저장

[CowAPI] 12. 기획
사용자JWT 토큰을 통한 사용자 인증OAuth2.0을 사용한 로그인 서비스관리자와 일반 사용자 권한대시보드 (home)SSE (Server Sent Event)를 통한 실시간 처리공지사용자의 권한 (관리자, 일반 사용자)에 따른 접근 제어QnA새로운 게시글이 올라올 경

[CowAPI] 11. 재설계
문제프로젝트를 재설계 해야하는 문제점이 있습니다.원인프로젝트를 수행하면서 학습한 것을 바탕으로 프로젝트를 수정 하려고 합니다.해결방법프로젝트를 기획, API, DB를 재설계하고 코드들을 수정합니다.설계기획APIDB

[CowAPI] 10. ResponseDto
foreign key로 참조된 데이터가 무한하게 요청이 가는 현상클라이언트가 필요하지 않은 데이터(password, isDeleted)를 보냄imgUser와 Notice가 UserId로 참조 되어 있다고 생각해보자Notice를 반환할 경우 Notice안에 있는 User
[CowAPI] 9. Spring Boot JWT, Role with Spring Security
JWT를 통해 사용자를 인증 및 인가를 처리하기 위해 SpringBoot Security를 사용합니다.Role을 Admin과 User로 나눕니다.Role를 스스로 구현해 보았지만 공식 문서와 블로그를 찾으며 구조가 잘못되었다는 것을 발견하게 되었습니다.최대한 DB를 수
[CowAPI] 8-2. SpringBoot Security
😎 1. [CowAPI]Notice 요구사항에 따라 공지에 대해 유저의 권한을 관리해야 합니다. 프로토타입으로 User DB의 isAdmin 으로 if문을 걸어서 구현을 했습니다. Springboot security를 사용하여 사용자 관리를 하겠습니다. 아래의
[CowAPI] 8-1. Notice Code review
게시글 하나에 작성하기에는 양이 많아지기 때문에 코드 리뷰를 분리했습니다.자세한 코드는 Github에서 확인하실 수 있습니다.현재는 Table의 admin (true/false)를 통해서 권한을 확인합니다.Springboot Security를 통한 권한 접근 제어를 구
[CowAPI] 8. Notice
CowAPI의 공지 관련 기능입니다.일반유저는 공지 생성, 수정, 삭제가 불가능합니다.User와 동일한 MVC 패턴 구조 입니다.DB의 Notice 테이블은 다음과 같습니다.Notice는 User table과 many to one 매핑이 됩니다.Github : CowA
[CowAPI] 7-1. QnA 코드 리뷰
게시글 하나에 작성하기에는 양이 많아지기 때문에 코드 리뷰를 분리했습니다.자세한 코드는 Github에서 확인하실 수 있습니다.구현중QnA는 생성, 조회, 수정, 삭제가 가능합니다. (O)추가적으로 최신순, QnAId 순으로 정렬된 검색과 페이지네이션이 있습니다. (O)
[CowAPI] 7. QnA
CowAPI의 QnA 관련 기능입니다.QnA는 생성, 조회, 수정, 삭제가 가능합니다. (O)QnA가 생성될 경우 Slack에 알림을 보냅니다. (X)User의 구조와 동일합니다.DB의 QnA 테이블은 다음과 같습니다.QnA는 User table과 many to one
[CowAPI] 6-1. User 코드 리뷰
@Api@RequestMapping@RestController@RequestHeader@RequestBody@ReqeustParam@Service@RequiredArgsConstructor@Transactional@RepositoryJpaRepository@Getter
[CowAPI] 6. User
CowAPI의 사용자 관련 기능입니다.회원가입, 로그인, 회원정보 수정, 삭제가 가능합니다.JWT 토큰으로 특정 사용자를 구분합니다.권한은 관리자와 일반 사용자가 있습니다.백엔드를 집중할 수 있도록 백엔드와 프론트 엔드를 독립적으로 개발할 수 있는 MVC 패턴을 이용합
[CowAPI] 2-1. TDD Code review
TDD 블로그 하나에 다 정리하여 넣기에는 양이 많아 코드 리뷰와 분리했습니다. 구조 Domain Test 행위 테스트 위주로 테스트를 진행했습니다. Test Code 각 기능에 대한 테스트 코드는 Github에서 확인하실 수 있습니다. Github : Cow
[CowAPI] 3. Swagger + Code review
springboot로 Rest API 개발을 진행하며 자동으로 API 문서 자동화를 했습니다.@Configuration : @EnableSwagger2 : @Bean : restAPI( ) :apiInfo( ) :
[CowAPI] 2. TDD
Test Driven Development의 약자Agile 방법론 중 하나인 XP의 "Test-First" 개념에 기반을 둔 단순한 설계를 중요시 합니다.작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현합니다." 급변하는 세상을
[CowAPI] 1. 개인 토이 프로젝트
\[뽀 - 개발을 진행하며 부족했던 부분을 공부하고 블로그 정리직접 개발 시작부터 배포까지 혼자 진행해보기정의 : AI를 통한 자동 카테고리 분류 API목표프로젝트 시작부터 배포까지 홀로 백엔드 담당실무급의 백엔드 경험 및 노하우 터득TDD 기반의 기능 구현개발 능력을