kernel360 / f1-orury-backend Goto Github PK
View Code? Open in Web Editor NEW커널 360 Final project - 클라이밍 커뮤니티 '오루리' Backend Repo
Home Page: https://orury.com/
커널 360 Final project - 클라이밍 커뮤니티 '오루리' Backend Repo
Home Page: https://orury.com/
게시글/댓글
게시글과 댓글 API의 코드 품질 향상을 위한 리팩토링을 진행하고자 합니다.
getCommentsByPost
postId 검증 작업 제거 (오버엔지니어링)Post(게시글)
Comment(댓글)
프론트에서 user_id(Long)가 아닌 is_mine(boolean)을 보고, 로그인된 유저가 creator인지 판별하고자 함.
게시글 상세 조회, 댓글 조회에서 해당 사항을 적용하고자 합니다.
기존에 있던 user_id를 응답하지 않고, is_mine을 응답하도록 수정하겠습니다.
게시글 목록(카테고리별, 검색어별, 인기게시판)에서는 is_mine이 필요하지 않다고 하셔서, 이 부분은 그대로 두겠습니다.
모듈 분리
메시징
하드코딩 방지를 위한 상수와 메시징 처리
하드코딩 방지를 위한 상수와 메시징 처리
게시글
애플리케이션 코드 안정화를 위한 테스트코드 작성
게시글 CRUD 및 좋아요 기능에 대한 테스트코드 작성
{
"content" : "앙 기모띠~~~",
"parent_id" : 3,
"post_id" : 1
}
대댓글의 id를 parent_id에 넣어도 정상적으로 댓글이 생성됨.
대댓글 id 3
몬가 오류 처리가 되야될듯 함
인프라
이미지 서버 구축
S3를 활용한 이미지 서버 구축을 진행하고자 합니다.
refresh_token
소셜 로그인에서 발급 받은거 custom accessToken, refreshToken 만들어 관리
위와 동일
세팅
Exception 및 ErrorCode 초안 공유
개발을 하면서 모두 동일한 응답 형태로 내리기 위해 사용되는 ErrorCode 및 Exception을 핸들링하기 위한 스켈레톤을 작성.
댓글
댓글 좋아요 기능 추가
댓글 좋아요 기능 추가
Swagger-ui 적용하기
postman 안쓰려고함
notion에 수기로 작성하는것 보다 만들어져있는 내용 복붙이 경험상 훨씬 정확
Comment(댓글)
Post(게시글) 리팩토링(#59)애서 합의했던 컨벤션에 맞게 Comment(댓글) 도메인의 리팩토링을 진행할 예정입니다.
Comment(댓글) 도메인 리팩토링
Post, PostLike
게시글 좋아요 관련 로직 테스트 커버리지 향상
목적과 같다.
회원
로그인 기능 스켈레톤 개발
로그인 기능 관련 시큐리티 초안 작성
Admin
Admin field 수정
Admin에 content를 넣어다는 소문을 듣고 수정
common
프로젝트의 전역적 예외 처리를 보다 편리하게 관리하기 위한 목적
각 도메인에서 발생할 수 있는 예외를 세부적으로 나누어서 관리를 해야겠다는 생각이 들었다.
BusinessException에서 모든 것을 담당하여 에러 메세지만 세분화한 것을 디밸롭
회원
로그인 구현
회원가입 및 로그인 시스템 구현
회원(User) 도메인
회원 기본 CRUD 구현
api 모듈 내의 회원 도메인 CRUD 구현 (DB ERD 설계 바탕)
Post(게시글)
인기 게시글 기획에 따른 구현 작업입니다.
좋아요가 가장 많은 순서대로 게시글을 보여주는
인기 게시글 목록을 구현할 예정입니다.
브랜치 관리
develop -> stage
stage -> main
머지 작업
develop -> stage
stage -> main
머지 작업
Post(게시글)
Post 도메인의 api 구현
Post(게시글) CRUD 기능 구현
PostLike(게시글 좋아요) 생성/삭제 구현
테스트 코드, 로깅은 따로 다룰 예정입니다.
orury-batch
세팅
EC2 및 MySQL 세팅
EC2 및 MySQL 세팅
리뷰 도메인에 관한 CRUD 작성 및 테스트 코드 작성
새로운 기능 개발
erd cloud의 설계에 따라 리뷰 CRUD, 테스트 코드를 작성할 예정 입니다.
배포
민감정보 암호화를 위한 Jasypt 적용
민감정보 암호화를 위한 Jasypt 적용
Notice 공지사항 도메인
공지사항 create 구현
관리자 부분 기능이 후순위로 밀리게 되면서, 기존에 작업했던 공지사항만 완성.
Comment(댓글)
Comment(댓글) Service 테스트코드 작성
CommentServiceTest, CommentLikeServiceTest 테스트코드 작성 예정입니다.
프론트
프론트측에서 API 호출 시 CORS 에러가 발생하고 있습니다.
해당 이슈를 해결하기 위한 세팅을 진행하고자 합니다.
webConfig 파일 추가 예정
Post
Comment
Logging을 하기 위함.
Controller의 경우에는 모든 메서드에서 response/request 로깅할 수 있게 하고,
Service에서는 커스텀 어노테이션(@logging)으로 지정하는 메서드만 로깅할 수 있도록 함.
게시글 테스트코드
게시글 테스트코드 수정
현재 build fail 되는 PostServiceTest.java
수정
Orury-admin / Admin
Admin 도메인 개발
db, dto, controller, service를 구축
세팅
flyway 적용
DB 형상관리에 필요한 flyway를 적용 작업 진행 예정
Github Repository
빌드 자동화를 통해 빌드, 테스트가 모두 완료된 파일만 병합하기위함
workflow/gradle.yml 스크립트로 자동화 진행
그 밖에 테스트코드에 저해되는 요소 @disable 처리
Notice 공지사항 도메인
기본 CRUD 구현
API 명세서에 있는 notice 기능을 구현한다.
공지사항 생성, 수정, 삭제, 조회 구현.
(상세조회, 검색-> 이 후에 공부 후에 구현)
User
dto변환을 컨트롤러에서 진행할 수 있도록 코드 리팩토링 진행
기존에는 dto 변환을 서비스에서 했는데 서비스가 너무 무거워지는 것 같아 컨트롤러에서 dto 변환을 하도록 리팩토링.
추가로 테스트코드도 작성하겠습니다.
Post(게시글)
형준님께서 진행하신 리팩토링에 이어서, Post와 PostLike에 대해 리팩토링 마무리할 예정입니다.
.workflow/actions
CI / CD 환경 구축
CI : Auto Build, Auto Testing
CD : Auto Deploy (aws 환경 설정 완료하면)
멀티모듈에서는 어떻게 해야하는걸까?
orury 루트 모듈
기존 orury 모듈을 나누어 각각의 기능들을 구현할 때 독립적으로 사용하기 위함
프론트
프론트측에서 API 호출 시 CORS 에러가 발생하고 있습니다.
해당 이슈를 해결하기 위한 세팅을 진행하고자 합니다.
webConfig 파일 추가 예정
core, api, admin, batch
멀티 모듈을 바로잡기 위함
위와 동일
User
Post
Comment
Entity에서 작성됐던 equels(), hashCode() 메서드를 더욱 간편하게 구현하고자 합니다.
@EqualsAndHashCode 어노테이션으로 변경.
Comment(댓글)
Comment 도메인의 api 구현
Comment(댓글) CRUD 기능 구현
Comment 댓글/대댓글 정렬
CommentLike(댓글 좋아요) 생성/삭제 구현은 다음 작업에서 다루겠습니다.
base
createdBy가 필요없어지고 updateAt이 필요해서 수정
목적과 동일
User
Post
Comment
�개발을 위한 도메인 Entity 및 Dto 작성
현재 ERD에서 리프레쉬토큰관리, 탈퇴유저를 제외한 나머지 도메인의 Entity와 Dto 작성.
User, UserDto,
Post, PostDto,
PostLike, PostLikePK, PostLikeDto,
Comment, CommentDto,
CommentLike, CommentLikePK, CommentLikeDto,
Admin과 Notice는 기존에 종찬님께서 작성하셨습니다.
post
global
숫자형 상수를 따로 관리하기 위함.
숫자형 상수 관리 클래스 생성
(기존의 Constants enum과 별개로 final class로 설정).
세팅
기존 api / admin / batch 모듈을
core > api / admin / batch 로 이관시키기 위함
동일한 기능을 수행하는 모듈들의 의존성 관리를 용이하게 하기 위해 core를 추가 예정입니다.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.