-
Notifications
You must be signed in to change notification settings - Fork 2
Code Convention | Backend
youKeon edited this page Sep 11, 2023
·
11 revisions
-
๐ย ์์น
- dto.request / dto.response ํจํค์ง ๋ด ํด๋์ค ์์ฑ
- 1 dto 1 class
- ex)
package com.graphy.backend.domain.comment.dto.request;
-
๐ท๏ธย Naming
- ํ์+๋๋ฉ์ธ+request/response
- ex)
CreateCommentRequest
,GetAllProjectsResponse
-
๐ย Entity, DTO ๋ณํ Format
- Request
@Getter @Builder @NoArgsConstructor @AllArgsConstructor public class {ํ์}{๋๋ฉ์ธ}Request { public {๋๋ฉ์ธ} toEntity() { return Comment.builder() ... .build(); } }
- Response
@Getter @Builder @NoArgsConstructor @AllArgsConstructor public class {ํ์}{๋๋ฉ์ธ}Response { public static {ํ์}{๋๋ฉ์ธ}Response {from OR of}() { return Comment.builder() ... .build(); } }
-
๐ย ์์น
- dto ํด๋์ค ๋ด์ ํจ์๋ก ์์ฑ
-
๐ท๏ธย Naming
- Entity โ Dto
-
from
(์ธ์ ๊ฐ 1๊ฐ์ผ ๊ฒฝ์ฐ) -
of
(์ธ์ ๊ฐ 2๊ฐ ์ด์์ผ ๊ฒฝ์ฐ)
-
- Dto โ Entity
toEntity
- Entity โ Dto
@Entity
@Getter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Builder
@NoArgsConstructor
@AllArgsConstructor
- ํน์ ํด๋์ค ๋ด์ ๋ณ์
- ๋ณ์ Type์ ์ฒซ ๋ฒ์งธ ๋ฌธ์๋ง ์๋ฌธ์๋ก ๋ณํ
- ex) private final MemberRepository memberRepository;
- ๋ณดํต์ ์์ ๋ณ์
- ๊ทธ ๋ณ์์ ์ฌ์ฉ ์๋๋ฅผ ์์๋ผ ์ ์๋๋ก ๋ช ๋ช
- ๋๋๋ก์ด๋ฉด ํ ๋ฌธ์๋ก ์ด๋ฃจ์ด์ง ๋ณ์ ์ด๋ฆ ํผํ๊ธฐ
๋ง์ฝ ์ด ๋ค์ด๋ฐ ๊ท์น์ ๋ฐ๋ฅผ ๊ฒฝ์ฐ์ ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ๋ค๋ฉด, ๊ฐ๋ ์ฑ์ด ๋ ์ข์ ๋ค์ด๋ฐ์ ๊ฐ์ ธ๊ฐ๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค.
- ๋๋ฉ์ธ OR ๋ชฉ์ ์ด + ์ ๋ฏธ์ฌ
- ๋๋ฉ์ธ+List() โ ๋ชฉ๋ก ์กฐํ ์ ํ
- ๋๋ฉ์ธ+Details() โ ๋จ์ผ ์์ธ ์กฐํ ์ ํ
- ๋๋ฉ์ธ+Save() โ ๋ฑ๋ก/์์ /์ญ์ ๊ฐ ๋์์ ์ผ์ด๋๋ ์ ํ
- ๋๋ฉ์ธ+Add() โ ๋ฑ๋ก๋ง ํ๋ ์ ํ
- ๋๋ฉ์ธ+Modify() โ ์์ ๋ง ํ๋ ์ ํ
- ๋๋ฉ์ธ+Remove() โ ์ญ์ ๋ง ํ๋ ์ ํ
-
์ ๋์ฌ + ๋๋ฉ์ธ OR ๋ชฉ์ ์ด
- find+๋๋ฉ์ธ() - ์กฐํ ์ ํ
- find+๋๋ฉ์ธ+List() - ๋ชฉ๋ก ์กฐํ ์ ํ
- add+๋๋ฉ์ธ() - ๋ฑ๋ก ์ ํ
- modify+๋๋ฉ์ธ() - ๋ณ๊ฒฝ ์ ํ
- remove+๋๋ฉ์ธ() - ์ญ์ ์ ํ
- save+๋๋ฉ์ธ() โ ๋ฑ๋ก/์์ /์ญ์ ๊ฐ ๋์์ ์ผ์ด๋๋ ์ ํ
-
์ ํจ์ฑ ๊ฒ์ฌ Method
- ์ค๋ณต ๋ฐ์ดํฐ์ธ์ง ๋ฑ์ ํ์ธํ๋ Method
- check[๋ชฉ์ ์ด][๊ฒ์ฌํ๋ ค๋ ํ์]
ex) checkMemberDuplicated
@QueryProjection
public MemberDto(String username, int age) {
this.username = username;
this.age = age;
}
@Getter
@Builder
@NoArgsConstructor
queryFactory
.select(new QMemberDto(member.username, member.age))
.from(member)
.fetch();
- ๋ณต์กํ join์ด ํ์ํ ๊ฒฝ์ฐ or ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง๋ ์ฟผ๋ฆฌ -> QueryDSL ์ฌ์ฉ
- ๊ทธ ์ธ์ ๊ฒฝ์ฐ -> @Query ์ด๋ ธํ ์ด์ ๋๋ JPARepository ์ฌ์ฉ
Service ๋ด์์ ๋ค๋ฅธ ๋๋ฉ์ธ์ Service ์ฐธ์กฐ
@EnableJpaAuditing
, @EnableWebMvc
๋ฑ Configuration ๊ด๋ จ ์ด๋
ธํ
์ด์
์ ๋ฉ์ธ ์ดํ๋ฆฌ์ผ์ด์
์ด ์๋ ๋ฐ๋ก Configuration ํ์ผ์ ์์ฑํด ๊ด๋ฆฌ
example
@Configuration
@EnableJpaAuditing
public class JpaConfig {
}
-
{๋๋ฉ์ธ}/{๋ฉ์๋}/{์ฑ๊ณต OR ์คํจ}/{์คํจ ์์ธ}
ํ์ ์ฌ์ฉ - camelCase ์ ์ฉ
{๋๋ฉ์ธ}/{๋ฉ์๋}/{์ฑ๊ณต OR ์คํจ}/{์คํจ ์์ธ}
ex)
auth/#/success
auth/#/fail/emptyEmail (ํ์๊ฐ์
์ ์ด๋ฉ์ผ์ด ๊ณต๋ฐฑ์ธ ๊ฒฝ์ฐ)
Controller ๋ด์ Method
๋ฅผ ๋ฐ๋ฆ
- ํ์๊ฐ์ : signIn
- ๋ก๊ทธ์ธ : #
- ๋ชฉ๋ก ์กฐํ ์ ํ : list
- ๋จ์ผ ์์ธ ์กฐํ : detail
- ๋ฑ๋ก/์์ /์ญ์ ๊ฐ ๋์์ ์ผ์ด๋๋ ์ ํ : save
- ๋ฑ๋ก๋ง ํ๋ ์ ํ : add
- ์์ : modify
- ์ญ์ : remove
- ์๋ ๊ฐ : emptyXxx
- ์๋ชป๋ ๊ฐ : invalidXxx
- ์ธ์ฆ ์คํจ : unauthorizedMember
- ์๊ฒฉ ์์ : forbiddenMember
- ๋๋ฉ์ธ์์ ํ ๋จ๊ณ ๋ ์ถ๊ฐ
- ex) member/mypage/detail/success
- ex) comment/reComment/add/success