diff --git a/src/main/java/com/aolda/itda/aspect/ForwardingLogAspect.java b/src/main/java/com/aolda/itda/aspect/ForwardingLogAspect.java
index f515ab60257a9ff15d65d91080ed3fb94967d53a..d50c2feaaedc63a3b5dbac4fa28666ee146ca2a0 100644
--- a/src/main/java/com/aolda/itda/aspect/ForwardingLogAspect.java
+++ b/src/main/java/com/aolda/itda/aspect/ForwardingLogAspect.java
@@ -23,6 +23,7 @@ import org.aspectj.lang.annotation.AfterReturning;
 import org.aspectj.lang.annotation.Around;
 import org.aspectj.lang.annotation.Aspect;
 import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.context.request.ServletRequestAttributes;
 
@@ -46,7 +47,7 @@ public class ForwardingLogAspect {
 
         /* 사용자 조회 */
         HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
-        Map<String, String> tmp = (Map<String, String>) request.getSession().getAttribute("user");
+        Map<String, String> tmp = (Map<String, String>) request.getAttribute("user");
         User user = userRepository.findByKeystoneId(tmp.get("id")).orElseThrow(
                 () -> new CustomException(ErrorCode.NOT_FOUND_USER)
         );
@@ -65,7 +66,7 @@ public class ForwardingLogAspect {
                 .user(user)
                 .objectType(ObjectType.FORWARDING)
                 .objectId(forwarding.getForwardingId())
-                .action(Action.UPDATE)
+                .action(Action.CREATE)
                 .projectId(forwarding.getProjectId())
                 .description(description)
                 .build());
@@ -77,7 +78,7 @@ public class ForwardingLogAspect {
         
         /* 사용자 조회 */
         HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
-        Map<String, String> tmp = (Map<String, String>) request.getSession().getAttribute("user");
+        Map<String, String> tmp = (Map<String, String>) request.getAttribute("user");
         User user = userRepository.findByKeystoneId(tmp.get("id")).orElseThrow(
                 () -> new CustomException(ErrorCode.NOT_FOUND_USER)
         );
@@ -99,7 +100,7 @@ public class ForwardingLogAspect {
                 .user(user)
                 .objectType(ObjectType.FORWARDING)
                 .objectId(forwarding.getForwardingId())
-                .action(Action.UPDATE)
+                .action(Action.DELETE)
                 .projectId(forwarding.getProjectId())
                 .description(description)
                 .build());
@@ -111,7 +112,7 @@ public class ForwardingLogAspect {
         
         /* 사용자 조회 */
         HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
-        Map<String, String> tmp = (Map<String, String>) request.getSession().getAttribute("user");
+        Map<String, String> tmp = (Map<String, String>) request.getAttribute("user");
         User user = userRepository.findByKeystoneId(tmp.get("id")).orElseThrow(
                 () -> new CustomException(ErrorCode.NOT_FOUND_USER)
         );
@@ -134,8 +135,8 @@ public class ForwardingLogAspect {
         /* 로그 메세지 작성 */
         String description = "name: " + old.getName() + (old.getName().equals(newObj.getName()) ? "" : (" -> " + newObj.getName())) + "\n"
                 + "serverPort: " + old.getServerPort() + (old.getServerPort().equals(newObj.getServerPort()) ? "" : (" -> " + newObj.getServerPort())) + "\n"
-                + "instanceIp: " + (old.getInstanceIp().equals(newObj.getInstanceIp()) ? "" : (" -> " + newObj.getInstanceIp())) + "\n"
-                + "instancePort: " + (old.getInstancePort().equals(newObj.getInstancePort()) ? "" : (" -> " + newObj.getInstancePort()));
+                + "instanceIp: " + old.getInstanceIp() + (old.getInstanceIp().equals(newObj.getInstanceIp()) ? "" : (" -> " + newObj.getInstanceIp())) + "\n"
+                + "instancePort: " + old.getInstancePort() + (old.getInstancePort().equals(newObj.getInstancePort()) ? "" : (" -> " + newObj.getInstancePort()));
 
         /* 로그 엔티티 저장 */
         logRepository.save(Log.builder()
diff --git a/src/main/java/com/aolda/itda/aspect/RoutingLogAspect.java b/src/main/java/com/aolda/itda/aspect/RoutingLogAspect.java
index c8b052a7d260dc4e27c36b978f76e2375a478a2e..a3a67d2dce9f65af87807d2c758eb3a225090b32 100644
--- a/src/main/java/com/aolda/itda/aspect/RoutingLogAspect.java
+++ b/src/main/java/com/aolda/itda/aspect/RoutingLogAspect.java
@@ -23,6 +23,7 @@ import org.aspectj.lang.annotation.AfterReturning;
 import org.aspectj.lang.annotation.Around;
 import org.aspectj.lang.annotation.Aspect;
 import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.context.request.ServletRequestAttributes;
 
@@ -46,7 +47,7 @@ public class RoutingLogAspect {
 
         /* 사용자 조회 */
         HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
-        Map<String, String> tmp = (Map<String, String>) request.getSession().getAttribute("user");
+        Map<String, String> tmp = (Map<String, String>) request.getAttribute("user");
         User user = userRepository.findByKeystoneId(tmp.get("id")).orElseThrow(
                 () -> new CustomException(ErrorCode.NOT_FOUND_USER)
         );
@@ -58,16 +59,16 @@ public class RoutingLogAspect {
         String description = "name: " + routing.getName() + "\n"
                 + "domain: " + routing.getDomain() + "\n"
                 + "ip: " + routing.getInstanceIp() + "\n"
-                + "ip: " + routing.getInstancePort() + "\n"
-                + "certificateId: " + routing.getCertificate().getCertificateId() + "\n"
+                + "port: " + routing.getInstancePort() + "\n"
+                +  (routing.getCertificate() != null ? ("certificateId: " + routing.getCertificate().getCertificateId() + "\n") : "")
                 + "caching: " + routing.getCaching() + "\n";
 
         /* 로그 엔티티 저장 */
         logRepository.save(Log.builder()
                 .user(user)
-                .objectType(ObjectType.FORWARDING)
+                .objectType(ObjectType.ROUTING)
                 .objectId(routing.getRoutingId())
-                .action(Action.UPDATE)
+                .action(Action.CREATE)
                 .projectId(routing.getProjectId())
                 .description(description)
                 .build());
@@ -79,7 +80,7 @@ public class RoutingLogAspect {
 
         /* 사용자 조회 */
         HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
-        Map<String, String> tmp = (Map<String, String>) request.getSession().getAttribute("user");
+        Map<String, String> tmp = (Map<String, String>) request.getAttribute("user");
         User user = userRepository.findByKeystoneId(tmp.get("id")).orElseThrow(
                 () -> new CustomException(ErrorCode.NOT_FOUND_USER)
         );
@@ -94,28 +95,28 @@ public class RoutingLogAspect {
         String description = "name: " + routing.getName() + "\n"
                 + "domain: " + routing.getDomain() + "\n"
                 + "ip: " + routing.getInstanceIp() + "\n"
-                + "ip: " + routing.getInstancePort() + "\n"
-                + "certificateId: " + routing.getCertificate().getCertificateId() + "\n"
+                + "port: " + routing.getInstancePort() + "\n"
+                +  (routing.getCertificate() != null ? ("certificateId: " + routing.getCertificate().getCertificateId() + "\n") : "")
                 + "caching: " + routing.getCaching() + "\n";
 
         /* 로그 엔티티 저장 */
         logRepository.save(Log.builder()
                 .user(user)
-                .objectType(ObjectType.FORWARDING)
+                .objectType(ObjectType.ROUTING)
                 .objectId(routing.getRoutingId())
-                .action(Action.UPDATE)
+                .action(Action.DELETE)
                 .projectId(routing.getProjectId())
                 .description(description)
                 .build());
     }
 
     /* Update(edit) 로깅 */
-    @Around("execution(* com.aolda.itda.service.forwarding.*Service.*edit*(..))")
+    @Around("execution(* com.aolda.itda.service.routing.*Service.*edit*(..))")
     public Object editLogging(ProceedingJoinPoint joinPoint) throws Throwable {
 
         /* 사용자 조회 */
         HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
-        Map<String, String> tmp = (Map<String, String>) request.getSession().getAttribute("user");
+        Map<String, String> tmp = (Map<String, String>) request.getAttribute("user");
         User user = userRepository.findByKeystoneId(tmp.get("id")).orElseThrow(
                 () -> new CustomException(ErrorCode.NOT_FOUND_USER)
         );
@@ -136,17 +137,29 @@ public class RoutingLogAspect {
         Routing newObj = routingRepository.findByRoutingIdAndIsDeleted(id, false).orElse(null);
 
         /* 로그 메세지 작성 */
-        String description = "name: " + old.getName() + (old.getName().equals(newObj.getName()) ? "" : (" -> " + newObj.getName())) + "\n"
-                + "domain: " + old.getDomain() + (old.getDomain().equals(newObj.getDomain()) ? "" : (" -> " + newObj.getDomain())) + "\n"
-                + "ip: " + (old.getInstanceIp().equals(newObj.getInstanceIp()) ? "" : (" -> " + newObj.getInstanceIp())) + "\n"
-                + "port: " + (old.getInstancePort().equals(newObj.getInstancePort()) ? "" : (" -> " + newObj.getInstancePort())) + "\n"
-                + "certificateId: " + (old.getCertificate().getCertificateId() == newObj.getCertificate().getCertificateId() ? "" : (" -> " + newObj.getCertificate().getCertificateId()))
-                + "certificateId: " + (old.getCaching() == newObj.getCaching() ? "" : (" -> " + newObj.getCaching()));
+        String description = "name: " + old.getName() + (old.getName().equals(newObj.getName()) ? "" : " -> " + newObj.getName()) + "\n"
+                + "domain: " + old.getDomain() + (old.getDomain().equals(newObj.getDomain()) ? "" : " -> " + newObj.getDomain()) + "\n"
+                + "ip: " + old.getInstanceIp() + (old.getInstanceIp().equals(newObj.getInstanceIp()) ? "" : " -> " + newObj.getInstanceIp()) + "\n"
+                + "port: " + old.getInstancePort() + (old.getInstancePort().equals(newObj.getInstancePort()) ? "" : " -> " + newObj.getInstancePort()) + "\n";
+        if (old.getCertificate() == null) {
+            if (newObj.getCertificate() != null) {
+                description = description + "certificateId: null -> " + newObj.getCertificate().getCertificateId() + "\n";
+            }
+        }
+        else {
+            if (newObj.getCertificate() == null) {
+                description = description + "certificateId: " + old.getCertificate().getCertificateId() + " -> null\n";
+            }
+            else {
+                description = description + "certificateId: " + old.getCertificate().getCertificateId() + " -> " + newObj.getCertificate().getCertificateId() + "\n";
+            }
+        }
+        description = description + "caching: " + (old.getCaching() == newObj.getCaching() ? newObj.getCaching() : (" -> " + newObj.getCaching()));
 
         /* 로그 엔티티 저장 */
         logRepository.save(Log.builder()
                 .user(user)
-                .objectType(ObjectType.FORWARDING)
+                .objectType(ObjectType.ROUTING)
                 .objectId(newObj.getRoutingId())
                 .action(Action.UPDATE)
                 .projectId(newObj.getProjectId())
diff --git a/src/main/java/com/aolda/itda/entity/certificate/Certificate.java b/src/main/java/com/aolda/itda/entity/certificate/Certificate.java
index 188f05e106121abe6f26b70fde078e0bd8d50662..a23cf858c8926a19b36a1b81df45b3b0bfd033f3 100644
--- a/src/main/java/com/aolda/itda/entity/certificate/Certificate.java
+++ b/src/main/java/com/aolda/itda/entity/certificate/Certificate.java
@@ -23,7 +23,7 @@ public class Certificate extends BaseTimeEntity {
     @Column(nullable = false)
     private Long certificateId;
 
-    @OneToOne
+    @ManyToOne
     @JoinColumn(nullable = false, name = "user_id")
     private User user;
 
diff --git a/src/main/java/com/aolda/itda/entity/forwarding/Forwarding.java b/src/main/java/com/aolda/itda/entity/forwarding/Forwarding.java
index 86f46b767f85217fd224a55e4951ccafe08e2f4c..0e5e50559860fbebf6cc5378fa91bd6fcefa00fa 100644
--- a/src/main/java/com/aolda/itda/entity/forwarding/Forwarding.java
+++ b/src/main/java/com/aolda/itda/entity/forwarding/Forwarding.java
@@ -20,10 +20,6 @@ public class Forwarding extends BaseTimeEntity {
     @Column(nullable = false)
     private Long forwardingId;
 
-    @OneToOne
-    @JoinColumn(name = "user_id")
-    private User user;
-
     private String projectId;
 
     private String serverIp;
@@ -40,7 +36,6 @@ public class Forwarding extends BaseTimeEntity {
 
     public Forwarding(Forwarding forwarding) {
         this.forwardingId = forwarding.getForwardingId();
-        this.user = forwarding.getUser();
         this.projectId = forwarding.getProjectId();
         this.serverIp = forwarding.getServerIp();
         this.serverPort = forwarding.getServerPort();
diff --git a/src/main/java/com/aolda/itda/entity/log/Log.java b/src/main/java/com/aolda/itda/entity/log/Log.java
index 373a836541823c018c770b131683760cd6a4b47a..9832ab291bdd2b8aaf5a8b6ea2d6823e71a55df7 100644
--- a/src/main/java/com/aolda/itda/entity/log/Log.java
+++ b/src/main/java/com/aolda/itda/entity/log/Log.java
@@ -23,7 +23,7 @@ public class Log extends BaseTimeEntity {
     @Column(nullable = false)
     private Long logId;
 
-    @OneToOne
+    @ManyToOne
     @JoinColumn(name = "user_id", nullable = false)
     private User user;
 
diff --git a/src/main/java/com/aolda/itda/entity/routing/Routing.java b/src/main/java/com/aolda/itda/entity/routing/Routing.java
index 39b77160738e82516c0a05a9afa41e4788560351..de13d82d149e0ec8c6acd60c162b9e980eb1bc91 100644
--- a/src/main/java/com/aolda/itda/entity/routing/Routing.java
+++ b/src/main/java/com/aolda/itda/entity/routing/Routing.java
@@ -24,11 +24,7 @@ public class Routing extends BaseTimeEntity {
     @Column(nullable = false)
     private Long routingId;
 
-    @OneToOne
-    @JoinColumn(name = "user_id")
-    private User user;
-
-    @OneToOne
+    @ManyToOne
     @JoinColumn(name = "certificate_id")
     private Certificate certificate;
 
diff --git a/src/main/java/com/aolda/itda/repository/log/LogQueryDSL.java b/src/main/java/com/aolda/itda/repository/log/LogQueryDSL.java
index 3ec962ba71fe611200dd83fa8fa2da04b0e38ef5..ceba4b235799104d9b590a3d4c47aed6a92e11bc 100644
--- a/src/main/java/com/aolda/itda/repository/log/LogQueryDSL.java
+++ b/src/main/java/com/aolda/itda/repository/log/LogQueryDSL.java
@@ -74,31 +74,29 @@ public class LogQueryDSL {
             builder.and(log.projectId.eq(projectId));
         }
 
-        /* 오브젝트 타입 조건 ( 기본 : ROUTING ) */
-        if (type.equals("certificate")) {
-            builder.and(log.objectType.eq(ObjectType.CERTIFICATE));
-        }
-        else if (type.equals("forwarding")) {
-            builder.and(log.objectType.eq(ObjectType.FORWARDING));
-        }
-        else {
-            builder.and(log.objectType.eq(ObjectType.ROUTING));
+        /* 오브젝트 타입 조건 */
+        if (type != null) {
+            switch (type) {
+                case "certificate" -> builder.and(log.objectType.eq(ObjectType.CERTIFICATE));
+                case "forwarding" -> builder.and(log.objectType.eq(ObjectType.FORWARDING));
+                case "routing" -> builder.and(log.objectType.eq(ObjectType.ROUTING));
+            }
         }
 
+
         /* 사용자 ID 조건 */
         if (username != null) {
             builder.and(log.user.keystoneUsername.eq(username));
         }
 
         /* CUD 조건 */
-        if (action.equals("create")) {
-            builder.and(log.action.eq(Action.CREATE));
-        } else if (action.equals("update")) {
-            builder.and(log.action.eq(Action.UPDATE));
-        } else if (action.equals("delete")) {
-            builder.and(log.action.eq(Action.DELETE));
+        if (action != null) {
+            switch (action) {
+                case "create" -> builder.and(log.action.eq(Action.CREATE));
+                case "update" -> builder.and(log.action.eq(Action.UPDATE));
+                case "delete" -> builder.and(log.action.eq(Action.DELETE));
+            }
         }
-
         return builder;
     }
 }
diff --git a/src/main/java/com/aolda/itda/service/AuthService.java b/src/main/java/com/aolda/itda/service/AuthService.java
index be6d764295fe1cb3d913199f4da9de315fb6ec33..80c53d38568e4cd09d752bf2b8cbb11e788af23b 100644
--- a/src/main/java/com/aolda/itda/service/AuthService.java
+++ b/src/main/java/com/aolda/itda/service/AuthService.java
@@ -51,7 +51,7 @@ public class AuthService {
         User entity = userRepository.findByKeystoneUsername(userId).orElse(null);
         if (entity == null) {
             userRepository.save(User.builder().keystoneId(validateTokenAndGetUserId(token)).
-                    keystoneUsername(userId).build());
+                    keystoneUsername(loginRequestDTO.getId()).build());
         }
 
         response.addHeader("X-Subject-Token", systemToken != null ? systemToken : token);