diff --git a/src/main/java/com/unit/daybook/domain/auth/controller/.gitkeep b/src/main/java/com/unit/daybook/domain/auth/controller/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/src/main/java/com/unit/daybook/domain/auth/service/.gitkeep b/src/main/java/com/unit/daybook/domain/auth/service/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/src/main/java/com/unit/daybook/domain/common/model/BaseTimeEntity.java b/src/main/java/com/unit/daybook/domain/common/model/BaseTimeEntity.java
new file mode 100644
index 0000000..5e2732a
--- /dev/null
+++ b/src/main/java/com/unit/daybook/domain/common/model/BaseTimeEntity.java
@@ -0,0 +1,26 @@
+package com.unit.daybook.domain.common.model;
+
+import java.time.LocalDateTime;
+
+import org.springframework.data.annotation.CreatedDate;
+import org.springframework.data.annotation.LastModifiedDate;
+import org.springframework.data.jpa.domain.support.AuditingEntityListener;
+
+import jakarta.persistence.Column;
+import jakarta.persistence.EntityListeners;
+import jakarta.persistence.MappedSuperclass;
+import lombok.Getter;
+
+@Getter
+@MappedSuperclass
+@EntityListeners(AuditingEntityListener.class)
+public abstract class BaseTimeEntity {
+
+	@Column(updatable = false)
+	@CreatedDate
+	private LocalDateTime createdAt;
+
+	@Column @LastModifiedDate
+	private LocalDateTime updatedAt;
+}
+
diff --git a/src/main/java/com/unit/daybook/domain/member/controller/.gitkeep b/src/main/java/com/unit/daybook/domain/member/controller/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/src/main/java/com/unit/daybook/domain/member/domain/Member.java b/src/main/java/com/unit/daybook/domain/member/domain/Member.java
new file mode 100644
index 0000000..9e843d8
--- /dev/null
+++ b/src/main/java/com/unit/daybook/domain/member/domain/Member.java
@@ -0,0 +1,74 @@
+package com.unit.daybook.domain.member.domain;
+
+import java.time.LocalDateTime;
+
+import com.unit.daybook.domain.common.model.BaseTimeEntity;
+
+import jakarta.persistence.Column;
+import jakarta.persistence.Embedded;
+import jakarta.persistence.Entity;
+import jakarta.persistence.EnumType;
+import jakarta.persistence.Enumerated;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import lombok.AccessLevel;
+import lombok.Builder;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+
+@Getter
+@Entity
+@NoArgsConstructor(access = AccessLevel.PROTECTED)
+public class Member extends BaseTimeEntity {
+
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name = "member_id")
+	private Long id;
+
+	private String nickname;
+
+	@Embedded
+	private OauthInfo oauthInfo;
+
+	@Enumerated(EnumType.STRING)
+	private MemberStatus status;
+
+	@Enumerated(EnumType.STRING)
+	private MemberRole role;
+
+	private LocalDateTime lastLoginAt;
+
+
+	@Builder(access = AccessLevel.PRIVATE)
+	private Member(
+		String nickname,
+		OauthInfo oauthInfo,
+		MemberStatus status,
+		MemberRole role,
+		LocalDateTime lastLoginAt) {
+		this.nickname = nickname;
+		this.oauthInfo = oauthInfo;
+		this.status = status;
+		this.role = role;
+		this.lastLoginAt = lastLoginAt;
+	}
+
+	public static Member createNormalMember(OauthInfo oauthInfo, String nickname) {
+		return Member.builder()
+			.nickname(nickname)
+			.oauthInfo(oauthInfo)
+			.status(MemberStatus.NORMAL)
+			.role(MemberRole.USER)
+			.build();
+	}
+
+	public void updateLastLoginAt() {
+		this.lastLoginAt = LocalDateTime.now();
+	}
+
+	public void updateNickname() {
+		this.nickname = nickname;
+	}
+}
diff --git a/src/main/java/com/unit/daybook/domain/member/domain/MemberRole.java b/src/main/java/com/unit/daybook/domain/member/domain/MemberRole.java
new file mode 100644
index 0000000..66eb31c
--- /dev/null
+++ b/src/main/java/com/unit/daybook/domain/member/domain/MemberRole.java
@@ -0,0 +1,13 @@
+package com.unit.daybook.domain.member.domain;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
+public enum MemberRole {
+	USER("ROLE_USER"),
+	ADMIN("ROLE_ADMIN");
+
+	private final String value;
+}
\ No newline at end of file
diff --git a/src/main/java/com/unit/daybook/domain/member/domain/MemberStatus.java b/src/main/java/com/unit/daybook/domain/member/domain/MemberStatus.java
new file mode 100644
index 0000000..b80bb6c
--- /dev/null
+++ b/src/main/java/com/unit/daybook/domain/member/domain/MemberStatus.java
@@ -0,0 +1,14 @@
+package com.unit.daybook.domain.member.domain;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
+public enum MemberStatus {
+	NORMAL("NORMAL"),
+	DELETED("DELETED"),
+	FORBIDDEN("FORBIDDEN");
+
+	private final String value;
+}
diff --git a/src/main/java/com/unit/daybook/domain/member/domain/OauthInfo.java b/src/main/java/com/unit/daybook/domain/member/domain/OauthInfo.java
new file mode 100644
index 0000000..7e0acc7
--- /dev/null
+++ b/src/main/java/com/unit/daybook/domain/member/domain/OauthInfo.java
@@ -0,0 +1,33 @@
+package com.unit.daybook.domain.member.domain;
+
+import jakarta.persistence.Embeddable;
+import lombok.AccessLevel;
+import lombok.Builder;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+
+@Embeddable
+@Getter
+@NoArgsConstructor(access = AccessLevel.PROTECTED)
+public class OauthInfo {
+
+	private String oauthId;
+	private String oauthProvider;
+	private String oauthEmail;
+
+	@Builder(access = AccessLevel.PRIVATE)
+	private OauthInfo(String oauthId, String oauthProvider, String oauthEmail) {
+		this.oauthId = oauthId;
+		this.oauthProvider = oauthProvider;
+		this.oauthEmail = oauthEmail;
+	}
+
+	public static OauthInfo createOauthInfo(
+		String oauthId, String oauthProvider, String oauthEmail) {
+		return OauthInfo.builder()
+			.oauthId(oauthId)
+			.oauthProvider(oauthProvider)
+			.oauthEmail(oauthEmail)
+			.build();
+	}
+}
diff --git a/src/main/java/com/unit/daybook/domain/member/dto/request/.gitkeep b/src/main/java/com/unit/daybook/domain/member/dto/request/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/src/main/java/com/unit/daybook/domain/member/dto/response/.gitkeep b/src/main/java/com/unit/daybook/domain/member/dto/response/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/src/main/java/com/unit/daybook/domain/member/repository/MemberRepository.java b/src/main/java/com/unit/daybook/domain/member/repository/MemberRepository.java
new file mode 100644
index 0000000..34485cd
--- /dev/null
+++ b/src/main/java/com/unit/daybook/domain/member/repository/MemberRepository.java
@@ -0,0 +1,8 @@
+package com.unit.daybook.domain.member.repository;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+
+import com.unit.daybook.domain.member.domain.Member;
+
+public interface MemberRepository extends JpaRepository<Member, Long>, MemberRepositoryCustom {
+}
diff --git a/src/main/java/com/unit/daybook/domain/member/repository/MemberRepositoryCustom.java b/src/main/java/com/unit/daybook/domain/member/repository/MemberRepositoryCustom.java
new file mode 100644
index 0000000..fec994c
--- /dev/null
+++ b/src/main/java/com/unit/daybook/domain/member/repository/MemberRepositoryCustom.java
@@ -0,0 +1,4 @@
+package com.unit.daybook.domain.member.repository;
+
+public interface MemberRepositoryCustom {
+}
diff --git a/src/main/java/com/unit/daybook/domain/member/repository/MemberRepositoryImpl.java b/src/main/java/com/unit/daybook/domain/member/repository/MemberRepositoryImpl.java
new file mode 100644
index 0000000..794774a
--- /dev/null
+++ b/src/main/java/com/unit/daybook/domain/member/repository/MemberRepositoryImpl.java
@@ -0,0 +1,10 @@
+package com.unit.daybook.domain.member.repository;
+
+import org.springframework.stereotype.Repository;
+
+import lombok.RequiredArgsConstructor;
+
+@Repository
+@RequiredArgsConstructor
+public class MemberRepositoryImpl implements MemberRepositoryCustom {
+}