1. 네이밍 규칙

// 클래스명: PascalCase
public class MemberService { }

// 변수명, 메서드명: camelCase
private String memberName;
public void findMember() { }

// 상수: UPPER_SNAKE_CASE
public static final int MAX_SIZE = 100;

// 패키지명: 소문자
package com.projectname.domain.member;

2. 클래스 구조 순서

public class Member {
// 1. static 변수
    private static final String DEFAULT_ROLE = "USER";

// 2. instance 변수
    private Long id;
    private String name;

// 3. 생성자
    public Member() { }

// 4. 정적 메서드
    public static Member createMember() { }

// 5. 일반 메서드
    public void updateName() { }

// 6. getter/setter
// 7. equals, hashCode, toString
}

3. 메서드 규칙

4. 공백 규칙

// 연산자 전후 공백
int sum = a + b;

// 콤마 뒤 공백
method(param1, param2, param3);

// 제어문 키워드 뒤 공백
if (condition) { }
for (int i = 0; i < 10; i++) { }

5. import 규칙

6. 주석 규칙

/**
 * 클래스, 메서드 설명은 JavaDoc 사용
 * @paramname 파라미터 설명
 * @return 반환값 설명
 */
public String getName(String name) {
		// 구현부 주석은 한 줄 주석 사용
    return name;
}

7. 예외 처리

8. DTO 네이밍

// 요청 DTO
public class MemberCreateRequestDto() { }
public class MemberUpdateRequestDto() { }

// 응답 DTO
public record MemberResponseDto() { }
public record MemberDetailResponseDto() { }