In urban areas, traffic congestion is caused by vehicles slowing down as drivers search for vacant parking spaces. In this study, we propose a novel smart-parking system that allocates parking lots based on the matching theory, considering both the drivers’ and parking managers’ preferences. Some drivers may be unable to be allocated to parking lots because of the high traffic volume in urban areas that causes many parking lots to be full. Therefore, we propose a prior reservation system that can reallocate parking lots considering the waiting time until vacant parking spaces appear. The driver’s preference is redetermined considering the waiting time obtained by both the parked drivers’ and reallocated drivers’ information. We also present a parking lot allocation algorithm, including rematching, and discuss stability and strategy-proofness, which are important properties of matching. Furthermore, we propose a dynamic parking fee design, considering different parking statuses (“full,” “congested,” and “available”). By combining the “price increase” with the “price decrease” based on parking status, the proposed dynamic parking fee aims not only to level out parking utilization but also to secure the parking managers’ profit. Finally, numerical simulations confirm the effectiveness of the proposed method using rematching and dynamic parking fee design.