Google Java Style
๊ตฌ๊ธ ์คํ์ผ์ ์ ์ฉํ๋ indent๋ 4๋ก ์ค์ ํ์ฌ ์์
ํ๋ค
์ค ๋๋๊ธฐ
ํ๋์ ์์ด ํ ์ค์ ๋ค์ด๊ฐ์ง ์์ ๋์๋, ๋ค์๊ณผ ๊ฐ์ ์ผ๋ฐ์ ์ธ ์์น๋ค์ ๋ฐ๋ผ์ ๋ ์ค๋ก ๋๋๋ค.
โข
์ฝค๋ง ํ์ ๋ ์ค๋ก ๋๋๋ค.
โข
์ฐ์ฐ์(operator) ์์์ ๋ ์ค๋ก ๋๋๋ค.
โข
๋ ๋ฒจ์ด ๋ฎ์ ์์น๋ณด๋ค๋ ๋ ๋ฒจ์ด ๋์ ์์น์ ๋ฐ๋ผ ๋ ์ค๋ก ๋๋๋ค.
โข
์์ค๊ณผ ๊ฐ์ ๋ ๋ฒจ์ ์(expression)์ด ์์๋๋ ์๋ก์ด ์ค์ ์์ค๊ณผ ๋ค์ฌ์ฐ๊ธฐ๋ฅผ ์ผ์น์ํจ๋ค.
โข
๋ง์ฝ ์์ ์์น๋ค์ด ์ฝ๋๋ฅผ ๋ ๋ณต์กํ๊ฒ ํ๊ฑฐ๋ ์ค๋ฅธ์ชฝ ๋์ ๋์ด๊ฐ๋ค๋ฉด, ๋์ ์ 8๊ฐ์ ๋น ์นธ์ ์ฌ์ฉํด ๋ค์ฌ์ด๋ค.
๋ฌธ(Statements)
๊ฐ๊ฐ์ ์ค์๋ ์ต๋ํ ํ๋์ ๋ฌธ(statement)๋ง ์ฌ์ฉํ๋๋ก ํ๋ค.
PascalCase
โข
์ฒซ๊ธ์์ ์ด์ด์ง๋ ๋จ์ด์ ์ฒซ๊ธ์๋ฅผ ๋๋ฌธ์๋ก ํ๊ธฐํ๋ ๋ฐฉ๋ฒ
โข
์)ย GoodPerson,ย MyKakaoCake,ย IAmDeveloper
โข
Pascal ์ด๋ผ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ์ด๋ฌํ ํ๊ธฐ๋ฒ์ ์ฌ์ฉํด์ ์ ๋ช
ํด์ง ๋ฐฉ์์ด์ผ.
โข
PascalCaseย (ํ์ค์นผ ์ผ์ด์ค)
โฆ
์ฒซ๊ธ์์ ์ด์ด์ง๋ ๋จ์ด์ ์ฒซ๊ธ์๋ฅผ ๋๋ฌธ์๋ก ํ๊ธฐํ๋ ๋ฐฉ๋ฒ
โฆ
์)ย GoodPerson,ย MyKakaoCake,ย IAmDeveloper
โฆ
Pascal ์ด๋ผ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ์ด๋ฌํ ํ๊ธฐ๋ฒ์ ์ฌ์ฉํด์ ์ ๋ช
ํด์ง ๋ฐฉ์์ด์ผ.
๊ณต๋ฐฑ(Blank Spaces)
๊ณต๋ฐฑ์ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๋ค.
โข
๊ดํธ์ ํจ๊ป ๋ํ๋๋ ํค์๋๋ ๊ณต๋ฐฑ์ผ๋ก ๋๋์ด์ผ ํ๋ค.
while (true) {
...
}
Java
๋ณต์ฌ
โข
๋ฉ์๋ ์ด๋ฆ๊ณผ ๋ฉ์๋์ ์ฌ๋ ๊ดํธ ์ฌ์ด์ ๊ณต๋ฐฑ์ด ์ฌ์ฉ๋์ด์๋ ์ ๋๋ค๋ ๊ฒ์ ๋ช
์ฌํ์. ์ด๋ ๊ฒ ํ๋ ๊ฒ์ ๋ฉ์๋ ํธ์ถ๊ณผ ํค์๋๋ฅผ ๊ตฌ๋ณํ๋๋ฐ ๋์์ ์ค๋ค.
โข
๊ณต๋ฐฑ์ ์ธ์(argument) ๋ฆฌ์คํธ์์ ์ฝค๋ง ์ดํ์ ๋ํ๋์ผ ํ๋ค.
โข
.์ ์ ์ธํ ๋ชจ๋ ์ดํญ(binary) ์ฐ์ฐ์๋ ์ฐ์ฐ์๋ค๊ณผ๋ ๊ณต๋ฐฑ์ผ๋ก ๋ถ๋ฆฌ๋์ด์ ธ์ผ ํ๋ค. ๊ณต๋ฐฑ์ ๋จํญ ์ฐ์ฐ์(++ ํน์ โ)์ ๊ฒฝ์ฐ์๋ ์ฌ์ฉํด์๋ ์ ๋๋ค.
a += c + d;
a = (a + b) / (c * d);
while (d++ = s++) {
n++;
}
printSize("size is " + foo + "\n");
Java
๋ณต์ฌ
โข
for ๋ฌธ์์ ์ฌ์ฉํ๋ ์ธ ๊ฐ์ ์(expression) ๋ค์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด์ ๋๋์ด์ผ ํ๋ค.
for (expr1; expr2; expr3)
Java
๋ณต์ฌ
โข
๋ณ์์ ํ์
์ ๋ณํํ๋ ์บ์คํธ(cast)์ ๊ฒฝ์ฐ์๋ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด์ผ ํ๋ค.
myMethod((byte) aNum, (Object) x);
myMethod((int) (cp + 5), ((int) (i + 3)) + 1);
Java
๋ณต์ฌ
camelCase
(์นด๋ฉ ์ผ์ด์ค)
โข
์ฒซ๋จ์ด๋ ์๋ฌธ์๋ก ํ๊ธฐํ์ง๋ง, ์ด์ด์ง๋ ๋จ์ด์ ์ฒซ๊ธ์๋ ๋๋ฌธ์๋ก ํ๊ธฐํ๋ ๋ฐฉ๋ฒ
โข
์)ย goodPerson,ย myKakaoCake,ย iAmDeveloper
๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ
๋๋ฉ์ธ - controller, dto, service, repository, entity,
Global
Common
๋ค์ด๋ฐ ๊ท์น
โข
dto
๋๋ฉ์ธ + ๊ธฐ๋ฅ + ์์ฒญ
โฆ
request
โฆ
response
โข
Entity
โฆ
์ํฐํฐ๋ช
: ๋๋ฉ์ธ๋ช
๊ทธ๋๋ก ex) User
โข
database โ echo_db
โข
RequestDto ์์ฑ ์์
@Getter
@NoArgsConstructor
public RequestDto {
//...
}
Java
๋ณต์ฌ
ResponseDto ์์ฑ ์์
@Builder
@Getter
@AllArgsConstructor
@NoArgsConstructor
public ResponseDto {
//...
}
Java
๋ณต์ฌ
๋ฉ์๋ ๋ค์ด๋ฐ ์ปจ๋ฒค์
์ค๋ผํด ๋ค์ด๋ฐ ์ปจ๋ฒค์
์ ๋ฐ๋ฅด๋๊ฑด ์ด๋ค๊ฐ์
of
ํฉํ ๋ฆฌ ๋ฉ์๋์ ํ๋ผ๋ฏธํฐ๋ก ๋์ด์จ ๊ฐ๋ค์ ๊ฒ์ฆํ์ฌ ์ธ์คํด์ค๋ฅผ ์์ฑํ ๋ ์ฌ์ฉํ๋ค.
DTO ๊ฐ์ ๊ฒ์ด ๋์ด์ ๊ฑ๋ค๋ค์ ์ธ์คํด์ค๋ก ๋ณํํ๋ ๊ฒ์ด ์๋๋ค.
from
ํฉํ ๋ฆฌ ๋ฉ์๋์ ํ๋ผ๋ฏธํฐ๋ก ๋์ด์จ ๊ฐ๋ค์ ํด๋น ํด๋์ค์ ์ธ์คํด์ค๋ก ๋ณํํ ๋ ์ฌ์ฉํ๋ค.
์ด ๊ณผ์ ์์ ํ๋ผ๋ฏธํฐ์ ๊ฐ๋ค ์ค ์ผ๋ถ๋ ์ ์ค๋ ์ ์๋ค.
parse
ํฉํ ๋ฆฌ ๋ฉ์๋์ ํ๋ผ๋ฏธํฐ๋ก ๋์ด์จ string ๊ฐ์ ํ์ฑํ์ฌ ํด๋น ํด๋์ค์ ์ธ์คํด์ค๋ก ๋ง๋ค ๋ ์ฌ์ฉํ๋ค.



