/tuthree

2021-2 가천대학교 종합프로젝트 : Spring Framework와 React.js를 이용한 과외 플랫폼 tuthree

Primary LanguageJava

2021-2 종합프로젝트 :: tuthree

directory stucture

    전체코드에서 웬만하면 setter를 사용하지 않는다.
    mvc를 최대한 명확하게 독립적으로 코드를 구성하여, 각자의 클래스내에서 처리될 수 있도록 한다.
    
    << test code >>
    test code는 최대한 출력을 사용하지 않는다.
    출력값으로 값을 확인하지 않고, 검증 로직을 구현하여 확인한다.
    테스트 코드는 최대한 sprinb boot Test를 사용하지 않는다.
    최대한 순수 자바 테스트로 구성하며, 기능사항을 체크한 후, 필요 시에 springbootTest를 한다.
    

기본적으로 들어가야되는 부분

1. DB 에러 처리 및 그에 따른 api 반환 json 가공

2. api 반환 json 일정한 형태로 유지

3. 기능 호출 및 결과에 대한 로그 남기기

ApiController

rest api 를 구현하는 부분

@RestController 애노테이션이 붙는 코드가 포함된다.

controller

프론트까지 같이 만들 때는 리다이렉션이 들어가는 코드를 넣어줬는데, 이번에는 필요없을 것 같다.

그래도 혹시 모르니 구조적으로만 생성해둔다.

domain

데이터베이스와 연결되는 객체를 구현한 부분

@entity 애노테이션이 붙는 코드가 포함된다.

로직 구현 시, domain을 직접적으로 외부에 노출하지 않는다.

dto

domain을 외부에 노출하지 않기 위해 사용하는 데이터베이스와 로직을 연결하는 코드가 들어간다.

exception

새롭게 정의한 오류를 저장한다.

repository

dao와 동일, 사실상 entity를 직접적으로 사용해야하는 로직을 구현한다.

아마 dto와 entity를 변환하는 작업을 하게 될 것 같다.

service

사용자에게 제공되는 서비스를 구현하는 부분

repository에서 단순 연계되는 부분은 굳이 분리할 필요가 없다.

testlogic

시도 중인 코드를 넣어놓는다.

그냥 아무거나 담아놓는 패키지라고 보면 된다.

JPA

1. lazy 사용 시, json과의 충돌로 오류가 난다. lazy, jsonignore 같이 쓰면 오류가 없어진다고 했으나, 없어지지 않아서 lazy 삭제