diff --git a/service/planner/db/client.go b/service/planner/db/client.go
index bbc22753e5dd00d88e99f3f9395e51fb4acd250a..6dc7b5e582ce909bc6a7e54f96a3ad0f700fe39f 100644
--- a/service/planner/db/client.go
+++ b/service/planner/db/client.go
@@ -479,6 +479,15 @@ func CreateUserGroupRelation(userId int, groupId int) error {
 	}
 	defer udb.Close()
 
+	queryCheck, err := udb.Query("SELECT * FROM userGroupRelation WHERE userId = ? AND groupId = ?;", userId, groupId)
+	if err != nil {
+		return err
+	}
+	defer queryCheck.Close()
+	if queryCheck.Next() {
+		return errors.New("account already in group")
+	}
+
 	query, err := udb.Query("INSERT INTO userGroupRelation (userId, groupId) VALUES (?, ?);", userId, groupId)
 	if err != nil {
 		return err
@@ -488,14 +497,14 @@ func CreateUserGroupRelation(userId int, groupId int) error {
 	return nil
 }
 
-func DeleteUserGroupRelation(id int) error {
+func DeleteUserGroupRelation(userId int, groupId int) error {
 	udb, err := sql.Open(driverName, cfg.FormatDSN())
 	if err != nil {
 		return err
 	}
 	defer udb.Close()
 
-	query, err := udb.Query("DELETE FROM userGroupRelation WHERE id = ?;", id)
+	query, err := udb.Query("DELETE FROM userGroupRelation WHERE userId = ? AND groupId = ?;", userId, groupId)
 	if err != nil {
 		return err
 	}
diff --git a/service/planner/handler/group.go b/service/planner/handler/group.go
index 8ccc94314574a62d949c75c5b9cd66930dede1a8..89ee73da05cb017a825dbda8474440a1bbac3d57 100644
--- a/service/planner/handler/group.go
+++ b/service/planner/handler/group.go
@@ -88,12 +88,17 @@ func CreateUserGroupRelation(w http.ResponseWriter, r *http.Request) {
 }
 
 func DeleteUserGroupRelation(w http.ResponseWriter, r *http.Request) {
-	id, err := getId(r)
+	userId, err := getUserId(r)
+	if err != nil {
+		http.Error(w, err.Error(), http.StatusBadRequest)
+		return
+	}
+	groupId, err := getGroupId(r)
 	if err != nil {
 		http.Error(w, err.Error(), http.StatusBadRequest)
 		return
 	}
-	err = service.DeleteUserGroupRelation(id)
+	err = service.DeleteUserGroupRelation(userId, groupId)
 	if err != nil {
 		http.Error(w, err.Error(), http.StatusInternalServerError)
 		return
diff --git a/service/planner/main.go b/service/planner/main.go
index 30f01994e56ba0bdc125647830015f6c4afeadfd..3a429a542131b56427fd05efe280fbabc23e8018 100644
--- a/service/planner/main.go
+++ b/service/planner/main.go
@@ -42,10 +42,10 @@ func main() {
 	router.HandleFunc("/user/{id}", handler.DeleteUser).Methods(http.MethodDelete)
 	router.HandleFunc("/user", handler.GetUsers).Methods(http.MethodGet)
 	router.HandleFunc("/user", handler.CreateUser).Methods(http.MethodPost)
-	router.HandleFunc("/group/{groupId}/{userId}", handler.CreateUserGroupRelation).Methods(http.MethodPost)
-	router.HandleFunc("/group/{groupId}/{userId}", handler.DeleteUserGroupRelation).Methods(http.MethodDelete)
 	router.HandleFunc("/group/meal/{id}", handler.DeleteGroupMeal).Methods(http.MethodDelete)
 	router.HandleFunc("/group/meal", handler.CreateGroupMeal).Methods(http.MethodPost)
+	router.HandleFunc("/group/{groupId}/{userId}", handler.CreateUserGroupRelation).Methods(http.MethodPost)
+	router.HandleFunc("/group/{groupId}/{userId}", handler.DeleteUserGroupRelation).Methods(http.MethodDelete)
 	router.HandleFunc("/group/{id}", handler.GetGroup).Methods(http.MethodGet)
 	router.HandleFunc("/group/{id}", handler.DeleteGroup).Methods(http.MethodDelete)
 	router.HandleFunc("/group", handler.GetGroups).Methods(http.MethodGet)
diff --git a/service/planner/service/group.go b/service/planner/service/group.go
index f84b5427892677a25580d438246bc70cf1e8fb0f..6046f33ea0e150220c4abfffaff306e36ddad9f4 100644
--- a/service/planner/service/group.go
+++ b/service/planner/service/group.go
@@ -50,8 +50,8 @@ func CreateUserGroupRelation(userId int, groupId int) error {
 	return nil
 }
 
-func DeleteUserGroupRelation(id int) error {
-	err := db.DeleteUserGroupRelation(id)
+func DeleteUserGroupRelation(userId int, groupId int) error {
+	err := db.DeleteUserGroupRelation(userId, groupId)
 	if err != nil {
 		return err
 	}