diff --git a/controllers/meeting.js b/controllers/meeting.js
index 1b3a1f053c5f0d33cd6ab9f5924f332ac6149895..6bd22cad83ac5abe4ff5f9052b949f34112df458 100644
--- a/controllers/meeting.js
+++ b/controllers/meeting.js
@@ -196,14 +196,16 @@ exports.getMeetingDetailById = async (req, res, next) => {
   }
 };
 
-exports.getMostConfirmedTime = async (req, res, next) => {
+exports.getTopThreeConfirmedTimes = async (req, res, next) => {
   const { purpose } = req.query;
   if (!purpose) {
     return res.status(400).json({ message: 'Purpose is required' });
   }
   try {
-    const result = await meetingRepositotry.getMostConfirmedTime(purpose);
-    return res.json(result);
+    const results = await meetingRepositotry.getTopThreeConfirmedTimes(purpose);
+    return res.json({
+      topThreeConfirmedTimes: results,
+    });
   } catch (error) {
     return next(error);
   }
diff --git a/repository/meeting.js b/repository/meeting.js
index d634c3f7d23040d68ee16b950c3591aba33e1d14..dd49fcd78de956f54ec4615a2bcb15e6a6b133a3 100644
--- a/repository/meeting.js
+++ b/repository/meeting.js
@@ -4,7 +4,7 @@ const {
   createMostConfirmedTimeNotFoundError,
 } = require('../errors/meetingErrors');
 
-exports.getMostConfirmedTime = async (purpose) => {
+exports.getTopThreeConfirmedTimes = async (purpose) => {
   const query = `
       SELECT EXTRACT(HOUR FROM m.confirmed_time) AS confirmed_time_hour,
              COUNT(1)                            AS confirmed_time_count
@@ -18,14 +18,13 @@ exports.getMostConfirmedTime = async (purpose) => {
   const params = {
     replacements: { purpose },
     type: Sequelize.QueryTypes.SELECT,
-    plain: true,
   };
-  const result = await sequelize.query(query, params);
-  if (!result) {
+  const results = await sequelize.query(query, params);
+  if (!results || results.length === 0) {
     throw createMostConfirmedTimeNotFoundError();
   }
-  return {
+  return results.slice(0, 3).map((result) => ({
     hour: result.confirmed_time_hour,
     count: result.confirmed_time_count,
-  };
+  }));
 };
diff --git a/routes/meeting.js b/routes/meeting.js
index 4ad462d02083a3e5f04147876ece5543d124d2b6..85952a9bddbf40b6027adaa6aefc545e3746b27d 100644
--- a/routes/meeting.js
+++ b/routes/meeting.js
@@ -5,7 +5,7 @@ const {
   entry,
   getMeetingById,
   getMeetingDetailById,
-  getMostConfirmedTime,
+  getTopThreeConfirmedTimes,
   closeMeeting,
   confirmTime,
 } = require('../controllers/meeting');
@@ -14,7 +14,7 @@ const router = express.Router();
 
 router.post('/', createMeeting);
 
-router.get('/most-confirmed-time', getMostConfirmedTime);
+router.get('/top-three-confirmed-times', getTopThreeConfirmedTimes);
 
 router.post('/:meetingId/entry', entry);