An inter prediction method performed by a decoding device, the method comprising: receiving information on a motion vector difference, MVD, through a bit stream; constructing a motion vector predictor, MVP, candidate list based on neighboring blocks of a current block; deriving a MVP of the current block based on the MVP candidate list; deriving a motion vector of the current block based on the MVP and the MVD; and generating a predicted sample with respect to the current block based on the motion vector, wherein constructing the MVP candidate list comprises: deriving temporary MVP candidates based on the neighboring blocks; deriving bi-predicted candidates based on uni-predicted candidates in the temporary MVP candidates; and constructing the MVP candidate list of the current block by replacing the uni-predicted candidates in the temporary MVP candidates with the bi-predicted candidates, wherein the MVP of the current block is derived by selecting a bi-predicted candidate among the bi-predicted candidates included in the MVP candidate list, wherein the selected bi-predicted candidate has a minimum residual between a first reference area indicated by a L0 motion vector on a L0 reference picture and a second reference area indicated by a L1 motion vector on a L1 reference picture among the bi-predicted candidates of the MVP candidate list, wherein the number of the temporary MVP candidates is the same as the number of all MVP candidates of the constructed MVP candidates list after the replacing. receiving information on a motion vector difference, MVD, through a bit stream; constructing a motion vector predictor, MVP, candidate list based on neighboring blocks of a current block; deriving a MVP of the current block based on the MVP candidate list; deriving a motion vector of the current block based on the MVP and the MVD; and generating a predicted sample with respect to the current block based on the motion vector, wherein constructing the MVP candidate list comprises: deriving temporary MVP candidates based on the neighboring blocks; deriving bi-predicted candidates based on uni-predicted candidates in the temporary MVP candidates; and constructing the MVP candidate list of the current block by replacing the uni-predicted candidates in the temporary MVP candidates with the bi-predicted candidates, wherein the MVP of the current block is derived by selecting a bi-predicted candidate among the bi-predicted candidates included in the MVP candidate list, wherein the selected bi-predicted candidate has a minimum residual between a first reference area indicated by a L0 motion vector on a L0 reference picture and a second reference area indicated by a L1 motion vector on a L1 reference picture among the bi-predicted candidates of the MVP candidate list, wherein the number of the temporary MVP candidates is the same as the number of all MVP candidates of the constructed MVP candidates list after the replacing. deriving temporary MVP candidates based on the neighboring blocks; deriving bi-predicted candidates based on uni-predicted candidates in the temporary MVP candidates; and constructing the MVP candidate list of the current block by replacing the uni-predicted candidates in the temporary MVP candidates with the bi-predicted candidates, wherein the MVP of the current block is derived by selecting a bi-predicted candidate among the bi-predicted candidates included in the MVP candidate list, wherein the selected bi-predicted candidate has a minimum residual between a first reference area indicated by a L0 motion vector on a L0 reference picture and a second reference area indicated by a L1 motion vector on a L1 reference picture among the bi-predicted candidates of the MVP candidate list, wherein the number of the temporary MVP candidates is the same as the number of all MVP candidates of the constructed MVP candidates list after the replacing.