diff --git a/README.md b/README.md
index b707479..5696abc 100644
--- a/README.md
+++ b/README.md
@@ -13,6 +13,48 @@ One Day Lifetime SNS

+### Directory Structure
+[Domain Directory Structure](https://github.com/cheese10yun/spring-guide/blob/master/docs/directory-guide.md)
+```
+└── src
+ ├── main
+ │ ├── java
+ │ │ └── com
+ │ │ └── example
+ │ │ └── onuel
+ │ │ ├── OneulApplication.java
+ │ │ ├── domain
+ │ │ │ ├── user
+ │ │ │ │ ├── controller
+ │ │ │ │ ├── service
+ │ │ │ │ ├── repository
+ │ │ │ │ ├── domain
+ │ │ │ │ ├── dto
+ │ │ │ │ └── exception
+ │ │ │ ├── post
+ │ │ │ │ ├── controller
+ │ │ │ │ ├── service
+ │ │ │ │ ├── repository
+ │ │ │ │ ├── domain
+ │ │ │ │ ├── dto
+ │ │ │ │ └── exception
+ │ │ ├── global
+ │ │ ├── common
+ │ │ │ ├── request
+ │ │ │ └── response
+ │ │ ├── config
+ │ │ │ ├── RedisConfig.java
+ │ │ │ └── security
+ │ │ │ └── WebSecurityConfig.java
+ │ │ ├── error
+ │ │ │ ├── ErrorResponse.java
+ │ │ │ ├── GlobalExceptionHandler.java
+ │ │ │ └── exception
+ │ │ └── util
+ │ └── resources
+ │ └── application.yml
+
+```
## How to run
```bash
git clone https://github.com/zzzinho/Oneul.git
diff --git a/src/main/java/com/example/oneul/model/Post.java b/src/main/java/com/example/oneul/domain/post/domain/Post.java
similarity index 96%
rename from src/main/java/com/example/oneul/model/Post.java
rename to src/main/java/com/example/oneul/domain/post/domain/Post.java
index 145e05b..c7190a0 100644
--- a/src/main/java/com/example/oneul/model/Post.java
+++ b/src/main/java/com/example/oneul/domain/post/domain/Post.java
@@ -1,4 +1,4 @@
-package com.example.oneul.model;
+package com.example.oneul.domain.post.domain;
import java.time.LocalDateTime;
import java.util.Objects;
@@ -13,6 +13,8 @@ import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
+import com.example.oneul.domain.user.domain.UserEntity;
+
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
diff --git a/src/main/java/com/example/oneul/service/command/UserCommandService.java b/src/main/java/com/example/oneul/domain/user/command/UserCommandService.java
similarity index 67%
rename from src/main/java/com/example/oneul/service/command/UserCommandService.java
rename to src/main/java/com/example/oneul/domain/user/command/UserCommandService.java
index e3ab398..95940a1 100644
--- a/src/main/java/com/example/oneul/service/command/UserCommandService.java
+++ b/src/main/java/com/example/oneul/domain/user/command/UserCommandService.java
@@ -1,8 +1,8 @@
-package com.example.oneul.service.command;
+package com.example.oneul.domain.user.command;
import javax.servlet.http.HttpSession;
-import com.example.oneul.model.UserEntity;
+import com.example.oneul.domain.user.domain.UserEntity;
import org.springframework.stereotype.Service;
diff --git a/src/main/java/com/example/oneul/service/command/UserCommandServiceImpl.java b/src/main/java/com/example/oneul/domain/user/command/UserCommandServiceImpl.java
similarity index 89%
rename from src/main/java/com/example/oneul/service/command/UserCommandServiceImpl.java
rename to src/main/java/com/example/oneul/domain/user/command/UserCommandServiceImpl.java
index c068879..a8bc723 100644
--- a/src/main/java/com/example/oneul/service/command/UserCommandServiceImpl.java
+++ b/src/main/java/com/example/oneul/domain/user/command/UserCommandServiceImpl.java
@@ -1,9 +1,9 @@
-package com.example.oneul.service.command;
+package com.example.oneul.domain.user.command;
import javax.servlet.http.HttpSession;
-import com.example.oneul.model.UserEntity;
-import com.example.oneul.repository.UserCommandRepository;
+import com.example.oneul.domain.user.domain.UserEntity;
+import com.example.oneul.domain.user.repository.UserCommandRepository;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/src/main/java/com/example/oneul/controller/UserController.java b/src/main/java/com/example/oneul/domain/user/controller/UserController.java
similarity index 81%
rename from src/main/java/com/example/oneul/controller/UserController.java
rename to src/main/java/com/example/oneul/domain/user/controller/UserController.java
index 7036d51..b8b86c8 100644
--- a/src/main/java/com/example/oneul/controller/UserController.java
+++ b/src/main/java/com/example/oneul/domain/user/controller/UserController.java
@@ -1,11 +1,11 @@
-package com.example.oneul.controller;
+package com.example.oneul.domain.user.controller;
import javax.servlet.http.HttpSession;
-import com.example.oneul.DTO.SignUpDTO;
-import com.example.oneul.model.UserEntity;
-import com.example.oneul.service.command.UserCommandService;
+import com.example.oneul.domain.user.command.UserCommandService;
+import com.example.oneul.domain.user.domain.UserEntity;
+import com.example.oneul.domain.user.dto.SignUpDTO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/src/main/java/com/example/oneul/model/UserEntity.java b/src/main/java/com/example/oneul/domain/user/domain/UserEntity.java
similarity index 97%
rename from src/main/java/com/example/oneul/model/UserEntity.java
rename to src/main/java/com/example/oneul/domain/user/domain/UserEntity.java
index 649aef0..18ad4d5 100644
--- a/src/main/java/com/example/oneul/model/UserEntity.java
+++ b/src/main/java/com/example/oneul/domain/user/domain/UserEntity.java
@@ -1,4 +1,4 @@
-package com.example.oneul.model;
+package com.example.oneul.domain.user.domain;
import java.io.Serializable;
import java.time.LocalDateTime;
@@ -13,6 +13,8 @@ import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
+import com.example.oneul.domain.post.domain.Post;
+
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
diff --git a/src/main/java/com/example/oneul/DTO/LoginDTO.java b/src/main/java/com/example/oneul/domain/user/dto/LoginDTO.java
similarity index 80%
rename from src/main/java/com/example/oneul/DTO/LoginDTO.java
rename to src/main/java/com/example/oneul/domain/user/dto/LoginDTO.java
index a1be3ba..533c5e1 100644
--- a/src/main/java/com/example/oneul/DTO/LoginDTO.java
+++ b/src/main/java/com/example/oneul/domain/user/dto/LoginDTO.java
@@ -1,6 +1,6 @@
-package com.example.oneul.DTO;
+package com.example.oneul.domain.user.dto;
-import com.example.oneul.model.UserEntity;
+import com.example.oneul.domain.user.domain.UserEntity;
import lombok.Getter;
diff --git a/src/main/java/com/example/oneul/DTO/SignUpDTO.java b/src/main/java/com/example/oneul/domain/user/dto/SignUpDTO.java
similarity index 89%
rename from src/main/java/com/example/oneul/DTO/SignUpDTO.java
rename to src/main/java/com/example/oneul/domain/user/dto/SignUpDTO.java
index 30113df..69b2bb2 100644
--- a/src/main/java/com/example/oneul/DTO/SignUpDTO.java
+++ b/src/main/java/com/example/oneul/domain/user/dto/SignUpDTO.java
@@ -1,6 +1,6 @@
-package com.example.oneul.DTO;
+package com.example.oneul.domain.user.dto;
-import com.example.oneul.model.UserEntity;
+import com.example.oneul.domain.user.domain.UserEntity;
import lombok.Getter;
diff --git a/src/main/java/com/example/oneul/exception/UserAlreadyExistException.java b/src/main/java/com/example/oneul/domain/user/exception/UserAlreadyExistException.java
similarity index 75%
rename from src/main/java/com/example/oneul/exception/UserAlreadyExistException.java
rename to src/main/java/com/example/oneul/domain/user/exception/UserAlreadyExistException.java
index ee89a54..ce51995 100644
--- a/src/main/java/com/example/oneul/exception/UserAlreadyExistException.java
+++ b/src/main/java/com/example/oneul/domain/user/exception/UserAlreadyExistException.java
@@ -1,4 +1,4 @@
-package com.example.oneul.exception;
+package com.example.oneul.domain.user.exception;
public class UserAlreadyExistException extends RuntimeException {
public UserAlreadyExistException(String message){
diff --git a/src/main/java/com/example/oneul/repository/UserCommandRepository.java b/src/main/java/com/example/oneul/domain/user/repository/UserCommandRepository.java
similarity index 77%
rename from src/main/java/com/example/oneul/repository/UserCommandRepository.java
rename to src/main/java/com/example/oneul/domain/user/repository/UserCommandRepository.java
index 06353d5..c0a4231 100644
--- a/src/main/java/com/example/oneul/repository/UserCommandRepository.java
+++ b/src/main/java/com/example/oneul/domain/user/repository/UserCommandRepository.java
@@ -1,8 +1,8 @@
-package com.example.oneul.repository;
+package com.example.oneul.domain.user.repository;
import java.util.Optional;
-import com.example.oneul.model.UserEntity;
+import com.example.oneul.domain.user.domain.UserEntity;
import org.springframework.data.redis.core.RedisHash;
import org.springframework.data.repository.CrudRepository;
diff --git a/src/main/java/com/example/oneul/config/RedisConfig.java b/src/main/java/com/example/oneul/global/config/RedisConfig.java
similarity index 97%
rename from src/main/java/com/example/oneul/config/RedisConfig.java
rename to src/main/java/com/example/oneul/global/config/RedisConfig.java
index 1678826..3fbb931 100644
--- a/src/main/java/com/example/oneul/config/RedisConfig.java
+++ b/src/main/java/com/example/oneul/global/config/RedisConfig.java
@@ -1,4 +1,4 @@
-package com.example.oneul.config;
+package com.example.oneul.global.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
diff --git a/src/main/java/com/example/oneul/config/WebSecurityConfig.java b/src/main/java/com/example/oneul/global/config/security/WebSecurityConfig.java
similarity index 95%
rename from src/main/java/com/example/oneul/config/WebSecurityConfig.java
rename to src/main/java/com/example/oneul/global/config/security/WebSecurityConfig.java
index bc867ae..ef72ce2 100644
--- a/src/main/java/com/example/oneul/config/WebSecurityConfig.java
+++ b/src/main/java/com/example/oneul/global/config/security/WebSecurityConfig.java
@@ -1,4 +1,4 @@
-package com.example.oneul.config;
+package com.example.oneul.global.config.security;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
diff --git a/src/main/java/com/example/oneul/handler/GlobalExceptionHandler.java b/src/main/java/com/example/oneul/global/error/GlobalExceptionHandler.java
similarity index 86%
rename from src/main/java/com/example/oneul/handler/GlobalExceptionHandler.java
rename to src/main/java/com/example/oneul/global/error/GlobalExceptionHandler.java
index 99b6a86..b19b310 100644
--- a/src/main/java/com/example/oneul/handler/GlobalExceptionHandler.java
+++ b/src/main/java/com/example/oneul/global/error/GlobalExceptionHandler.java
@@ -1,6 +1,6 @@
-package com.example.oneul.handler;
+package com.example.oneul.global.error;
-import com.example.oneul.exception.UserAlreadyExistException;
+import com.example.oneul.domain.user.exception.UserAlreadyExistException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/src/test/java/com/example/oneul/controller/UserControllerTest.java b/src/test/java/com/example/oneul/controller/UserControllerTest.java
index 91f06f3..ff7fbd8 100644
--- a/src/test/java/com/example/oneul/controller/UserControllerTest.java
+++ b/src/test/java/com/example/oneul/controller/UserControllerTest.java
@@ -6,7 +6,8 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
import java.util.HashMap;
import java.util.Map;
-import com.example.oneul.service.command.UserCommandService;
+import com.example.oneul.domain.user.command.UserCommandService;
+import com.example.oneul.domain.user.controller.UserController;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
diff --git a/src/test/java/com/example/oneul/service/UserCommandServiceTest.java b/src/test/java/com/example/oneul/service/UserCommandServiceTest.java
index 239cc99..82c1173 100644
--- a/src/test/java/com/example/oneul/service/UserCommandServiceTest.java
+++ b/src/test/java/com/example/oneul/service/UserCommandServiceTest.java
@@ -2,9 +2,9 @@ package com.example.oneul.service;
import static org.junit.jupiter.api.Assertions.assertEquals;
-import com.example.oneul.DTO.LoginDTO;
-import com.example.oneul.model.UserEntity;
-import com.example.oneul.service.command.UserCommandService;
+import com.example.oneul.domain.user.command.UserCommandService;
+import com.example.oneul.domain.user.domain.UserEntity;
+import com.example.oneul.domain.user.dto.LoginDTO;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;