Compare commits
422 Commits
master
...
feature/su
Author | SHA1 | Date |
---|---|---|
lkd9125(이경도) | fa0742f2b2 | 8 months ago |
lkd9125(이경도) | c8cb2e1373 | 8 months ago |
lkd9125(이경도) | 1610ca84d9 | 8 months ago |
lkd9125(이경도) | 2312806fcf | 8 months ago |
lkd9125(이경도) | 61a6e3d568 | 8 months ago |
lkd9125(이경도) | ae5f670d03 | 8 months ago |
지대한 | 7a73c0e5ba | 8 months ago |
lkd9125(이경도) | ff2fa08919 | 8 months ago |
lkd9125(이경도) | a1d3ed44cc | 8 months ago |
lkd9125(이경도) | d767b3a6b5 | 8 months ago |
qkr7828 | b86f0064a3 | 8 months ago |
qkr7828 | 18145284d6 | 9 months ago |
qkr7828 | 17b19b34f3 | 9 months ago |
qkr7828 | 73b83ab28c | 9 months ago |
qkr7828 | 09b9eecd34 | 9 months ago |
qkr7828 | 4d4c33e3d0 | 9 months ago |
qkr7828 | a49114c590 | 9 months ago |
qkr7828(박재우) | 89e3cf65d7 | 9 months ago |
지대한 | 96fb1bdf02 | 9 months ago |
지대한 | 8fdd882889 | 9 months ago |
지대한 | 99b69117ae | 9 months ago |
지대한 | 3820c8ea7e | 9 months ago |
lkd9125(이경도) | ad71102ecc | 9 months ago |
lkd9125(이경도) | 95cac94b68 | 9 months ago |
qkr7828(박재우) | 87ca73cb1d | 9 months ago |
qkr7828(박재우) | be5bd19f2a | 9 months ago |
qkr7828(박재우) | 3fdfeb3f68 | 9 months ago |
lkd9125(이경도) | e12943d79d | 9 months ago |
lkd9125(이경도) | 9b7f837cf5 | 9 months ago |
lkd9125(이경도) | 10f236bcec | 9 months ago |
lkd9125(이경도) | d4a65abd14 | 9 months ago |
lkd9125(이경도) | 44251b04c7 | 9 months ago |
lkd9125(이경도) | 427665aff1 | 9 months ago |
lkd9125(이경도) | 84f14719c6 | 9 months ago |
lkd9125(이경도) | f64debca81 | 9 months ago |
lkd9125(이경도) | 5e024d4af1 | 9 months ago |
lkd9125(이경도) | 0c44929d81 | 9 months ago |
lkd9125(이경도) | dd7f4eb99b | 9 months ago |
lkd9125(이경도) | e240392b25 | 9 months ago |
박재우 | fab634f7b8 | 9 months ago |
지대한 | ec12f0ba58 | 9 months ago |
지대한 | bfc2a00547 | 9 months ago |
지대한 | 2ed4aa5e47 | 9 months ago |
lkd9125(이경도) | e8d0ef3319 | 9 months ago |
lkd9125(이경도) | 4a50a4506f | 9 months ago |
lkd9125(이경도) | 91e5d2a310 | 9 months ago |
지대한 | 4b0ddb5e2b | 9 months ago |
lkd9125(이경도) | 606dd2dad8 | 10 months ago |
lkd9125(이경도) | d66b221762 | 10 months ago |
lkd9125(이경도) | 211ce9ae82 | 10 months ago |
lkd9125(이경도) | a255674a66 | 10 months ago |
lkd9125(이경도) | e71de75916 | 10 months ago |
lkd9125(이경도) | e2d33ba02f | 10 months ago |
lkd9125(이경도) | 6e4fa96498 | 10 months ago |
지대한 | 29f63b91c2 | 10 months ago |
지대한 | 0eac2f6c40 | 10 months ago |
'kyw546' | 8bdfad57bd | 10 months ago |
지대한 | a992564662 | 10 months ago |
지대한 | 3dd6c8d707 | 10 months ago |
lkd9125(이경도) | 6301df3673 | 10 months ago |
lkd9125(이경도) | cfb21cb66a | 10 months ago |
lkd9125(이경도) | 302ed20574 | 10 months ago |
lkd9125(이경도) | 8e909cdb05 | 10 months ago |
지대한 | e6acfea39c | 10 months ago |
지대한 | f4a6203a83 | 10 months ago |
지대한 | 96fde678d5 | 10 months ago |
lkd9125(이경도) | 679ca7d467 | 10 months ago |
lkd9125(이경도) | b47c6b2297 | 10 months ago |
lkd9125(이경도) | 77f86393a0 | 10 months ago |
지대한 | d17ee11825 | 10 months ago |
지대한 | 88ef91e5c5 | 10 months ago |
lkd9125(이경도) | 4524a9da29 | 10 months ago |
지대한 | ddd03bf0c3 | 10 months ago |
지대한 | 5a0971d942 | 10 months ago |
지대한 | 327e844850 | 10 months ago |
lkd9125(이경도) | 0a785e4e76 | 10 months ago |
lkd9125(이경도) | cc20b63e81 | 10 months ago |
지대한 | 4a93fa0793 | 10 months ago |
지대한 | 42ea6bd207 | 10 months ago |
지대한 | ef7d88ec18 | 10 months ago |
지대한 | 4e6ae1b998 | 10 months ago |
지대한 | 1e2fe13cdc | 10 months ago |
lkd9125(이경도) | 80ddc8039e | 10 months ago |
lkd9125(이경도) | 4a48a20807 | 10 months ago |
지대한 | 60349d12fd | 10 months ago |
지대한 | 225dfb8120 | 10 months ago |
지대한 | 8ede6560f4 | 10 months ago |
지대한 | 3215b07e8a | 10 months ago |
leehagjoon(이학준) | 228b5d22fa | 10 months ago |
leehagjoon(이학준) | becb63dff1 | 10 months ago |
지대한 | b79e8d818f | 10 months ago |
지대한 | 139fe34db0 | 10 months ago |
지대한 | 1178bcfb37 | 10 months ago |
daeha | 5cdc4f3d2d | 10 months ago |
박재우 | 6e57de92b9 | 10 months ago |
박재우 | 251c9f038a | 10 months ago |
박재우 | 6d27936d26 | 10 months ago |
lkd9125(이경도) | f961187e20 | 10 months ago |
lkd9125(이경도) | 8223d15865 | 10 months ago |
박재우 | 287a1e58fe | 10 months ago |
박재우 | 565c577532 | 10 months ago |
lkd9125(이경도) | e749e6a7dc | 10 months ago |
lkd9125(이경도) | 258c5a4d6b | 10 months ago |
박재우 | f5844dd360 | 10 months ago |
박재우 | dd7f4286b4 | 10 months ago |
박재우 | f556933189 | 10 months ago |
박재우 | 88f15b1c56 | 10 months ago |
박재우 | f8558654b6 | 10 months ago |
박재우 | 4d2cd49705 | 10 months ago |
박재우 | 263afa106a | 10 months ago |
박재우 | 93ce5bc2ba | 10 months ago |
leehagjoon(이학준) | 823909fa36 | 10 months ago |
박재우 | 19bfc06908 | 10 months ago |
지대한 | 82b8d0c60d | 10 months ago |
lkd9125(이경도) | bcb2c9c782 | 10 months ago |
박재우 | 0f3e6ef86c | 10 months ago |
박재우 | a6eef7d349 | 10 months ago |
lkd9125(이경도) | 033a500423 | 10 months ago |
lkd9125(이경도) | c04cbda460 | 10 months ago |
lkd9125(이경도) | 089ac26b56 | 10 months ago |
leehagjoon(이학준) | 0cd99c4781 | 10 months ago |
lkd9125(이경도) | 5c2e35ad39 | 10 months ago |
lkd9125(이경도) | 2c75ced8e5 | 10 months ago |
지대한 | ad7dde789e | 10 months ago |
지대한 | 3c05b88a42 | 10 months ago |
지대한 | 2d1577f7fe | 10 months ago |
지대한 | 29ed289ab8 | 10 months ago |
lkd9125(이경도) | e580006e30 | 10 months ago |
lkd9125(이경도) | eace93dfad | 10 months ago |
박재우 | 2aaf61fab3 | 10 months ago |
박재우 | 8c663f0ec9 | 10 months ago |
lkd9125(이경도) | deecd68945 | 10 months ago |
lkd9125(이경도) | 5c23f805ea | 10 months ago |
박재우 | 57699c83da | 10 months ago |
박재우 | 8fb8d4f430 | 10 months ago |
지대한 | 82a8d1ea12 | 10 months ago |
지대한 | f68773d718 | 10 months ago |
lkd9125(이경도) | 2bb0b2cb11 | 10 months ago |
박재우 | be8c4e1634 | 10 months ago |
박재우 | 206dec0183 | 10 months ago |
박재우 | eadb1bfaee | 10 months ago |
박재우 | 25de8eff0b | 10 months ago |
leehagjoon(이학준) | efb8e810f3 | 10 months ago |
leehagjoon(이학준) | fcf21b9510 | 10 months ago |
lkd9125(이경도) | 077cc56319 | 10 months ago |
leehagjoon(이학준) | d72ceca0d8 | 10 months ago |
leehagjoon(이학준) | 3d0209c0cb | 10 months ago |
leehagjoon(이학준) | b5603dc2da | 10 months ago |
지대한 | ab6c2442d8 | 10 months ago |
leehagjoon(이학준) | 2aa5f84505 | 10 months ago |
lkd9125(이경도) | 14b2dab58a | 10 months ago |
lkd9125(이경도) | cbc8f3f502 | 10 months ago |
지대한 | 86e2daeb49 | 10 months ago |
lkd9125(이경도) | 3414b7fc76 | 10 months ago |
lkd9125(이경도) | d3615c121a | 10 months ago |
lkd9125(이경도) | 4c34b1e081 | 10 months ago |
박재우 | ca86a2debd | 10 months ago |
박재우 | 814adff88e | 10 months ago |
lkd9125(이경도) | a65fc6be8c | 10 months ago |
lkd9125(이경도) | 8bd4de84b2 | 10 months ago |
박재우 | 254771dc42 | 10 months ago |
lkd9125(이경도) | a30bd26ccd | 10 months ago |
lkd9125(이경도) | c4a9683ee0 | 10 months ago |
지대한 | 5a92ff7a75 | 10 months ago |
leehagjoon(이학준) | 2e6a99922f | 10 months ago |
lkd9125(이경도) | 1daea5d280 | 10 months ago |
lkd9125(이경도) | 29053dd347 | 10 months ago |
lkd9125(이경도) | a04740a7b3 | 10 months ago |
leehagjoon(이학준) | c9cb343175 | 10 months ago |
박재우 | 076b2922fa | 10 months ago |
박재우 | c8f5547f52 | 10 months ago |
lkd9125(이경도) | a03ff7a516 | 10 months ago |
lkd9125(이경도) | 67c911d94c | 10 months ago |
hagjoon(이학준) | f06c7fca31 | 10 months ago |
lkd9125(이경도) | f709d99133 | 10 months ago |
hagjoon(이학준) | a527959cf2 | 10 months ago |
박재우 | 5d6e3ff678 | 10 months ago |
박재우 | 61e5381ba0 | 10 months ago |
박재우 | 7623b90d47 | 10 months ago |
박재우 | a1083804be | 10 months ago |
지대한 | 65ac7f880b | 10 months ago |
지대한 | f6f1a23536 | 10 months ago |
lkd9125(이경도) | 3d2931484f | 10 months ago |
lkd9125(이경도) | 25b59937bd | 10 months ago |
lkd9125(이경도) | 53452ebcce | 10 months ago |
lkd9125(이경도) | 820a3998f9 | 10 months ago |
lkd9125(이경도) | 71c4e13170 | 10 months ago |
lkd9125(이경도) | 5b7daabf68 | 10 months ago |
lkd9125(이경도) | 5ced3a65dd | 10 months ago |
lkd9125(이경도) | a85492032b | 10 months ago |
lkd9125(이경도) | 817a00fd04 | 10 months ago |
lkd9125(이경도) | a415ca94fe | 10 months ago |
lkd9125(이경도) | e1b3255819 | 10 months ago |
lkd9125(이경도) | 9ad0763121 | 10 months ago |
lkd9125(이경도) | 669ed742f0 | 11 months ago |
lkd9125(이경도) | 60a6e25bce | 11 months ago |
lkd9125(이경도) | 4d857ba9a4 | 11 months ago |
lkd9125(이경도) | 7006e88ade | 11 months ago |
지대한 | 1dd7fe3e31 | 11 months ago |
지대한 | 63d17ff450 | 11 months ago |
lkd9125(이경도) | db8017f560 | 11 months ago |
lkd9125(이경도) | 9348e201ad | 11 months ago |
지대한 | 99d49ca2d6 | 11 months ago |
지대한 | 05e984d91d | 11 months ago |
지대한 | d4f05efbab | 11 months ago |
lkd9125(이경도) | 1a81341c7f | 11 months ago |
지대한 | 86994aaa1e | 11 months ago |
지대한 | 2ad49b5e44 | 11 months ago |
지대한 | da1689437e | 11 months ago |
lkd9125(이경도) | c28bd422ef | 11 months ago |
박재우 | bc6e536d52 | 11 months ago |
박재우 | efdf974e24 | 11 months ago |
lkd9125(이경도) | 5c57c80352 | 11 months ago |
박재우 | 1ac6d5a470 | 11 months ago |
박재우 | 22a86d2efb | 11 months ago |
박재우 | d325a1eeab | 11 months ago |
박재우 | c15853e6a1 | 11 months ago |
lkd9125(이경도) | 9868daaf1b | 11 months ago |
박재우 | e0b83bd98d | 11 months ago |
박재우 | 0cb72deaa9 | 11 months ago |
지대한 | 38d210acd3 | 11 months ago |
지대한 | 34a214fadb | 11 months ago |
지대한 | 6d9ed107b5 | 11 months ago |
박재우 | ffeeb96663 | 11 months ago |
박재우 | 0fefce3cb4 | 11 months ago |
박재우 | 3d9aff1a26 | 11 months ago |
지대한 | a82e6e8ab2 | 11 months ago |
지대한 | 95c163888b | 11 months ago |
지대한 | ca6cea96b1 | 11 months ago |
지대한 | e683b01621 | 11 months ago |
지대한 | 05e0043f4f | 11 months ago |
지대한 | 5eea14db01 | 11 months ago |
지대한 | 207dd6aec0 | 11 months ago |
지대한 | 3a4ef8d16e | 11 months ago |
지대한 | 7f51aeac43 | 11 months ago |
지대한 | 1fb70081dd | 11 months ago |
지대한 | f388ea2b97 | 11 months ago |
박재우 | 623b1f4544 | 11 months ago |
지대한 | 39b5a0694d | 11 months ago |
지대한 | f49d34627c | 11 months ago |
지대한 | f094d97648 | 11 months ago |
지대한 | e5e0cd4833 | 11 months ago |
지대한 | ddb7c79267 | 11 months ago |
지대한 | b26db5c7e4 | 11 months ago |
지대한 | 62b5a204ac | 11 months ago |
지대한 | 1ab250463b | 11 months ago |
지대한 | 650256d8b6 | 11 months ago |
lkd9125(이경도) | a65588baff | 11 months ago |
지대한 | 665ffc5989 | 11 months ago |
지대한 | d5ce02101a | 11 months ago |
지대한 | c978a9171a | 11 months ago |
지대한 | 56ffa8fcc7 | 11 months ago |
지대한 | b567f3941f | 11 months ago |
지대한 | 2ee86cadcd | 11 months ago |
lkd9125(이경도) | 42f6538ae3 | 11 months ago |
lkd9125(이경도) | 06e097f881 | 11 months ago |
lkd9125(이경도) | d4760093ab | 11 months ago |
lkd9125(이경도) | d1df3b400d | 11 months ago |
lkd9125(이경도) | 76a4aa0e63 | 11 months ago |
lkd9125(이경도) | b21670ed3f | 11 months ago |
지대한 | 49c2798356 | 11 months ago |
지대한 | 694be4caf1 | 11 months ago |
지대한 | 7dabd67695 | 11 months ago |
지대한 | d98025b99f | 11 months ago |
지대한 | 82d60d62dd | 11 months ago |
지대한 | 29e578c6cb | 11 months ago |
지대한 | 4b5e79f2ce | 11 months ago |
지대한 | 493f5db580 | 11 months ago |
lkd9125(이경도) | f20ada92ab | 11 months ago |
lkd9125 | 6229cb4af9 | 11 months ago |
lkd9125(이경도) | 2b76d6488c | 11 months ago |
lkd9125(이경도) | 58709feba3 | 11 months ago |
lkd9125(이경도) | fb214e0323 | 11 months ago |
qkr7828(박재우) | 82d69eb940 | 11 months ago |
lkd9125 | 6e3e83d04e | 11 months ago |
lkd9125 | 9736eab347 | 11 months ago |
lkd9125 | f43e284a1f | 11 months ago |
lkd9125 | 227302dc70 | 11 months ago |
qkr7828(박재우) | edc3503cc7 | 11 months ago |
lkd9125 | 5c282da7d8 | 11 months ago |
lkd9125 | 69e44f00d8 | 11 months ago |
lkd9125 | 3d029ec84e | 11 months ago |
lkd9125 | fceb5159cf | 11 months ago |
qkr7828(박재우) | d7037f9f90 | 11 months ago |
lkd9125 | 80057475e5 | 11 months ago |
lkd9125 | 73c1ed6f73 | 11 months ago |
lkd9125 | 8443dbc260 | 11 months ago |
lkd9125 | 3b414f174e | 11 months ago |
lkd9125 | c3b141bd85 | 11 months ago |
qkr7828(박재우) | 0dd9e22678 | 11 months ago |
qkr7828(박재우) | 33d751629c | 11 months ago |
lkd9125 | 9fe2faf362 | 11 months ago |
lkd9125 | b55bfc8c35 | 11 months ago |
qkr7828(박재우) | 08c7c58d0e | 11 months ago |
leehagjoon(이학준) | f94caa0885 | 11 months ago |
지대한 | 076be728b7 | 11 months ago |
지대한 | 7ef7106a82 | 11 months ago |
지대한 | 797432b1d4 | 11 months ago |
지대한 | 667a2f3a50 | 11 months ago |
지대한 | 941de40021 | 12 months ago |
지대한 | 4598e0624e | 12 months ago |
지대한 | f05de5e47e | 12 months ago |
지대한 | 57f0eb7e05 | 12 months ago |
지대한 | 78770e79e7 | 12 months ago |
지대한 | 3e1521db05 | 12 months ago |
지대한 | 27c21e388e | 12 months ago |
지대한 | 6a7f345c75 | 12 months ago |
지대한 | 182e19491e | 12 months ago |
지대한 | d5265b8fa1 | 12 months ago |
지대한 | d6c8fa19ca | 12 months ago |
지대한 | f00388da34 | 12 months ago |
지대한 | 329ead43b8 | 12 months ago |
지대한 | b4f447d641 | 12 months ago |
지대한 | 164a393ca8 | 12 months ago |
지대한 | bddcdc5ca6 | 12 months ago |
지대한 | b70de5b021 | 12 months ago |
지대한 | 505a8f6ca5 | 12 months ago |
지대한 | 43a632aaa3 | 12 months ago |
지대한 | b98f5fe915 | 12 months ago |
지대한 | 583e77a9db | 12 months ago |
지대한 | 7aba2ee31d | 12 months ago |
지대한 | 98ab8d343d | 12 months ago |
지대한 | bc3888ec94 | 1 year ago |
lkd9125 | 5ba0ee1810 | 1 year ago |
지대한 | d578d5d297 | 1 year ago |
지대한 | 7c8f1ce6e2 | 1 year ago |
lkd9125 | e62562e0f1 | 1 year ago |
lkd9125 | 22059b0427 | 1 year ago |
lkd9125 | fa5499fe00 | 1 year ago |
lkd9125 | 87377baa1c | 1 year ago |
lkd9125 | 728095f32e | 1 year ago |
lkd9125 | 0532e5740c | 1 year ago |
lkd9125 | 5b75e00e57 | 1 year ago |
지대한 | 49db329500 | 1 year ago |
lkd9125 | c42d2b5e75 | 1 year ago |
lkd9125 | 43a78e7a63 | 1 year ago |
lkd9125 | 83512429cd | 1 year ago |
lkd9125 | d3f2a2fcaa | 1 year ago |
lkd9125 | bfb27e137b | 1 year ago |
지대한 | 92be3047ce | 1 year ago |
지대한 | f2bd8ac39d | 1 year ago |
lkd9125 | 91caa4aa3f | 1 year ago |
lkd9125 | 9addd8e841 | 1 year ago |
지대한 | dbb8cfa222 | 1 year ago |
지대한 | 903af28cf5 | 1 year ago |
lkd9125 | 273f2a2039 | 1 year ago |
lkd9125 | b0b633e8a1 | 1 year ago |
lkd9125 | 05c5aff86c | 1 year ago |
lkd9125 | 3e03e57101 | 1 year ago |
지대한 | a333551eff | 1 year ago |
lkd9125 | a2601eed60 | 1 year ago |
lkd9125 | 3f9d486c58 | 1 year ago |
lkd9125 | 412720800b | 1 year ago |
lkd9125 | 4207cc4071 | 1 year ago |
lkd9125 | 946945e86b | 1 year ago |
lkd9125 | 8f3055561a | 1 year ago |
qkr7828(박재우) | d060491c61 | 1 year ago |
lkd9125 | 0adb107151 | 1 year ago |
lkd9125 | ed383f6098 | 1 year ago |
lkd9125 | 92be0cbafa | 1 year ago |
lkd9125 | 9a00161ce6 | 1 year ago |
지대한 | 0c1111c657 | 1 year ago |
lkd9125 | 52857d45a3 | 1 year ago |
lkd9125 | bcd3de7cf9 | 1 year ago |
lkd9125 | f298886491 | 1 year ago |
lkd9125 | 651da27170 | 1 year ago |
lkd9125 | 442319035e | 1 year ago |
lkd9125 | 1832faf12e | 1 year ago |
지대한 | 6724b4f49a | 1 year ago |
lkd9125 | 30a9f2dd2f | 1 year ago |
qkr7828(박재우) | c358419a29 | 1 year ago |
lkd9125 | 57aac511d8 | 1 year ago |
lkd9125 | 55a84cb7b9 | 1 year ago |
지대한 | fcced5261c | 1 year ago |
지대한 | c88b96faf5 | 1 year ago |
지대한 | 339cadfe65 | 1 year ago |
lkd9125 | 23b43acc60 | 1 year ago |
지대한 | 1bbb9d4b0d | 1 year ago |
lkd9125 | c129b50416 | 1 year ago |
lkd9125 | efc3052646 | 1 year ago |
lkd9125 | 56b38cef4e | 1 year ago |
lkd9125 | 01280c335e | 1 year ago |
lkd9125 | 4462ee2470 | 1 year ago |
lkd9125 | 4f9de497e6 | 1 year ago |
lkd9125 | 07016b5591 | 1 year ago |
지대한 | 03c6c90715 | 1 year ago |
lkd9125 | cc5d154928 | 1 year ago |
lkd9125 | 902d39df2b | 1 year ago |
lkd9125 | 8d2d097438 | 1 year ago |
lkd9125 | ce24478c6a | 1 year ago |
lkd9125 | 37d996b3cf | 1 year ago |
lkd9125 | 631755b5ef | 1 year ago |
lkd9125 | b5198c37fa | 1 year ago |
lkd9125 | 3ae1f4e7c6 | 1 year ago |
지대한 | 4a3756fc6c | 1 year ago |
지대한 | 9426e71fe4 | 1 year ago |
지대한 | f559a34b45 | 1 year ago |
지대한 | 269d056441 | 1 year ago |
지대한 | 1e4baae8f8 | 1 year ago |
lkd9125 | 76af7ac8af | 1 year ago |
lkd9125 | 0ae4b21f91 | 1 year ago |
lkd9125 | 318e03121f | 1 year ago |
lkd9125 | 468a00aff3 | 1 year ago |
lkd9125 | e6d85130db | 1 year ago |
lkd9125 | 4323f77762 | 1 year ago |
lkd9125 | 60e2d42eaf | 1 year ago |
지대한 | d8673a2d3d | 1 year ago |
지대한 | 24fa9841e2 | 1 year ago |
지대한 | 82c7f168fd | 1 year ago |
lkd9125 | 843b29613a | 1 year ago |
lkd9125 | 067cacdc3e | 1 year ago |
lkd9125 | 4af4af42f7 | 1 year ago |
lkd9125 | b032fdefdd | 1 year ago |
지대한 | 3a2a2f5d7c | 1 year ago |
지대한 | c1b51eb8f7 | 1 year ago |
lkd9125 | aadf2b9f4d | 1 year ago |
lkd9125 | 743e233488 | 1 year ago |
lkd9125 | d0af58023c | 1 year ago |
lkd9125 | 29bf17be1d | 1 year ago |
lkd9125 | e9b968d8ba | 1 year ago |
lkd9125 | 32234211ad | 1 year ago |
lkd9125 | 6d850d3fdf | 1 year ago |
20 changed files with 637 additions and 66 deletions
@ -0,0 +1,11 @@
|
||||
package com.palnet.biz.api.acnt.cstmr.model; |
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema; |
||||
import lombok.Data; |
||||
|
||||
@Data |
||||
public class AcntCstmrPswdCheckRQ { |
||||
|
||||
@Schema(description = "유저의 비밀번호", example = "test1234") |
||||
private String userPswd; |
||||
} |
@ -0,0 +1,17 @@
|
||||
package com.palnet.biz.api.bas.dron.model; |
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema; |
||||
import lombok.Data; |
||||
|
||||
@Data |
||||
public class BasIdntfUpdateModel { |
||||
|
||||
@Schema(description = "기체 식별번호", example = "PA0001") |
||||
private String idntfNum; |
||||
|
||||
@Schema(description = "변경할 소유자명", example = "수정소유자명") |
||||
private String ownerNm; |
||||
|
||||
@Schema(description = "변경할 핸드폰 번호", example = "01036907198") |
||||
private String hpno; |
||||
} |
@ -0,0 +1,21 @@
|
||||
package com.palnet.biz.scheduler.external; |
||||
|
||||
import com.palnet.biz.scheduler.external.service.SunRiseSchedulerService; |
||||
import lombok.RequiredArgsConstructor; |
||||
import org.springframework.context.annotation.Profile; |
||||
import org.springframework.scheduling.annotation.Scheduled; |
||||
import org.springframework.stereotype.Component; |
||||
|
||||
@Component |
||||
@RequiredArgsConstructor |
||||
@Profile({"dev", "prod"}) |
||||
public class SunRiseSetScheduler { |
||||
|
||||
private final SunRiseSchedulerService sunRiseSchedulerService; |
||||
|
||||
@Scheduled(cron = "0 0 2 * * *") // 매일 새벽 2시
|
||||
public void run(){ |
||||
sunRiseSchedulerService.sunsetSchedule(); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,225 @@
|
||||
package com.palnet.biz.scheduler.external.service; |
||||
|
||||
import com.palnet.biz.api.external.model.SunRiseSetRs; |
||||
import com.palnet.biz.api.external.model.SunRiseSetXmlRs; |
||||
import com.palnet.biz.api.external.service.SunRiseSetMapper; |
||||
import com.palnet.biz.jpa.entity.ComRiseSetBas; |
||||
import com.palnet.biz.jpa.entity.ComRiseSetBasPK; |
||||
import com.palnet.biz.jpa.repository.com.ComRiseSetBasRepository; |
||||
import com.palnet.biz.jpa.repository.com.ComRiseSetQueryRepository; |
||||
import com.palnet.comn.code.ErrorCode; |
||||
import com.palnet.comn.exception.CustomException; |
||||
import lombok.RequiredArgsConstructor; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springframework.beans.factory.annotation.Value; |
||||
import org.springframework.http.HttpHeaders; |
||||
import org.springframework.http.MediaType; |
||||
import org.springframework.http.ResponseEntity; |
||||
import org.springframework.stereotype.Service; |
||||
import org.springframework.web.reactive.function.client.WebClient; |
||||
import org.springframework.web.util.UriComponentsBuilder; |
||||
|
||||
import java.lang.reflect.Field; |
||||
import java.time.LocalDate; |
||||
import java.time.format.DateTimeFormatter; |
||||
import java.util.ArrayList; |
||||
import java.util.Arrays; |
||||
import java.util.HashSet; |
||||
import java.util.List; |
||||
|
||||
|
||||
@Service |
||||
@Slf4j |
||||
@RequiredArgsConstructor |
||||
public class SunRiseSchedulerService { |
||||
|
||||
private final ComRiseSetQueryRepository comRiseSetQueryRepository; |
||||
|
||||
private final ComRiseSetBasRepository comRiseSetBasRepository; |
||||
|
||||
@Value("${external.sunriseset.url}") |
||||
private String SUN_HOST; |
||||
|
||||
@Value("${external.sunriseset.key}") |
||||
private String SUN_KEY; |
||||
|
||||
private final String AREA_RISE_SEET_INFO_URL = "/getAreaRiseSetInfo"; |
||||
|
||||
private static final String[][][] location = { |
||||
{ |
||||
{"백령도", "연평도", "덕적도", "강화", "격렬비도", "격렬비도", "김포", "인천", "부천", "고양", "시흥", "태안", "광명"}, |
||||
{"연세KVN", "안산", "서산", "서울", "의정부", "화성", "양주", "군포", "동두천", "안양", "연천", "과천", "당진"}, |
||||
{"의왕", "구리", "포천", "수원", "성남", "남양주", "하남", "오산", "파주", "철원", "경기광주", "용인", "평택"}, |
||||
{"가평", "양평", "이천", "화천", "춘천", "홍천", "양구", "인제", "홍천군서석면", "인제군기린면", "강원고성", "속초", "양양"} |
||||
}, |
||||
{ |
||||
{"어청도", "보령", "서천", "위도", "군산", "홍성", "청양", "부여", "익산", "예산", "논산", "공주", "계룡"}, |
||||
{"아산", "세종", "천안", "대덕전파천문대", "대전", "옥천", "청주", "청주공항", "안성", "진천", "증평", "보은", "음성"}, |
||||
{"괴산", "괴산군연풍면", "여주", "충주", "문경", "원주", "제천", "예천", "단양", "횡성", "소백산천문대", "영주", "영월"}, |
||||
{"평창", "봉화", "정선", "홍천군내면", "춘양", "태백", "대관령", "평창KVN", "강릉", "주문진", "동해", "삼척"} |
||||
}, |
||||
{ |
||||
{"가거도", "흑산도", "신안", "목포", "신안군임자면", "무안", "영암", "함평", "나주", "영광", "광주", "화순", "장성"}, |
||||
{"고창", "변산", "담양", "정읍", "순창", "부안", "곡성", "김제", "남원", "임실", "전주", "완주", "장수"}, |
||||
{"진안", "함양", "거창", "금산", "무주", "김천시부항면", "영동", "고령", "성주", "추풍령", "김천", "달성", "칠곡"}, |
||||
{"구미", "대구", "상주", "군위", "의성", "보현산천문대", "안동", "청송", "영양", "영덕", "울진", "울릉"} |
||||
}, |
||||
{ |
||||
{"마라도", "제주레이더", "탐라KVN", "서귀포", "제주", "성산일출", "추자도", "완도", "삼산도", "진도", "해남", "강진", "장흥"}, |
||||
{"고흥", "보성", "여수", "여수공항", "순천", "승주", "광양", "남해", "하동", "구례", "사천", "통영", "고성"}, |
||||
{"진주", "거제", "산청", "의령", "함안", "합천", "창원", "김해", "창녕", "부산", "밀양", "양산", "진해"}, |
||||
{"기장", "청도", "경산", "울주", "울산KVN", "울산", "경주시산내면", "영천", "경주", "경주시감포읍", "포항", "독도"} |
||||
} |
||||
}; |
||||
|
||||
public void sunsetSchedule(){ |
||||
List<String> todayLocation = this.todayLocation(); |
||||
LocalDate today = LocalDate.now(); |
||||
List<String> timeColumn = List.of("sunrise", "suntransit", "sunset", "moonrise", "moontransit", "moonset", "civilm", "civile", "nautm", "naute", "astm", "aste"); |
||||
|
||||
List<ComRiseSetBas> sunRiseSet = new ArrayList<>(); |
||||
|
||||
// 내일부터 약180일 데이터 INSERT
|
||||
for(int i = 0; i <= 180; i ++){ |
||||
today = today.plusDays(1); |
||||
String locdate = today.format(DateTimeFormatter.ofPattern("yyyyMMdd")); |
||||
|
||||
List<String> rotateLocation = getUnDuplicationLocation(todayLocation,locdate); |
||||
|
||||
for(int j = 0; j < rotateLocation.size(); j ++){ |
||||
String location = rotateLocation.get(j); |
||||
|
||||
List<SunRiseSetRs> results = callSunRiseSet(locdate, location); |
||||
|
||||
// trim 제거 및 6자리로 맞추기
|
||||
results.forEach(result -> { |
||||
Class<? extends SunRiseSetRs> aClass = result.getClass(); |
||||
Field[] declaredFields = aClass.getDeclaredFields(); |
||||
for (Field field: declaredFields){ |
||||
if(timeColumn.contains(field.getName())){ |
||||
field.setAccessible(true); |
||||
try { |
||||
Object o = field.get(result); |
||||
if(o instanceof String){ |
||||
String str = (String) o; |
||||
if(!str.isEmpty()) { |
||||
String trim = str.trim(); |
||||
if(trim.length() <= 6 && trim.length() >= 4 && trim.matches("-?\\d+(\\.\\d+)?")) { |
||||
field.set(result, String.format("%-6s", trim).replace(' ', '0')); |
||||
} else { |
||||
field.set(result, null); |
||||
} |
||||
} |
||||
} |
||||
|
||||
} catch (IllegalAccessException e) { |
||||
throw new RuntimeException(e); |
||||
} |
||||
} |
||||
} |
||||
|
||||
ComRiseSetBasPK pk = SunRiseSetMapper.MAPPER.toEntityPk(result); |
||||
ComRiseSetBas entity = SunRiseSetMapper.MAPPER.toEntity(result); |
||||
entity.setId(pk); |
||||
|
||||
sunRiseSet.add(entity); |
||||
}); |
||||
} |
||||
|
||||
if(i%30 == 0){ |
||||
comRiseSetBasRepository.saveAll(sunRiseSet); |
||||
|
||||
sunRiseSet.clear(); |
||||
} |
||||
} |
||||
} |
||||
|
||||
private List<String> getUnDuplicationLocation(List<String> todayLocation, String location){ |
||||
|
||||
List<String> dateLocation = comRiseSetQueryRepository.findUnDuplicatoinLocationByLocDate(location); |
||||
|
||||
HashSet<String> set = new HashSet<>(todayLocation); |
||||
set.removeAll(dateLocation); |
||||
|
||||
return new ArrayList<>(set); |
||||
} |
||||
|
||||
private List<SunRiseSetRs> callSunRiseSet(String locdate, String location) { |
||||
|
||||
String uriStr = UriComponentsBuilder.fromUriString(AREA_RISE_SEET_INFO_URL) |
||||
.queryParam("serviceKey", SUN_KEY) |
||||
.queryParam("locdate", locdate) |
||||
.queryParam("location", location) |
||||
.build().toUriString(); |
||||
|
||||
WebClient client = WebClient.builder() |
||||
.baseUrl(SUN_HOST) |
||||
.defaultHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_XML_VALUE) |
||||
.build(); |
||||
|
||||
ResponseEntity<SunRiseSetXmlRs> resp = client.get() |
||||
.uri(uriStr) |
||||
.retrieve() |
||||
.toEntity(SunRiseSetXmlRs.class) |
||||
.block(); |
||||
|
||||
log.debug(">>> resp : {}", resp); |
||||
|
||||
List<SunRiseSetRs> items = resp.getBody().getBody().getItems(); |
||||
|
||||
return items; |
||||
} |
||||
|
||||
private List<String> todayLocation (){ |
||||
int count = this.init(); |
||||
int changeCount = this.arraySelect(count); |
||||
|
||||
List<String> todayLocation = new ArrayList<>(); |
||||
|
||||
for(int i = 0; i < 4; i ++){ |
||||
if(changeCount == 4) changeCount = 0; |
||||
String[] arr = this.location[i][changeCount]; |
||||
|
||||
todayLocation.addAll(Arrays.asList(arr)); |
||||
changeCount ++; |
||||
} |
||||
|
||||
// 중복제거
|
||||
HashSet<String> set = new HashSet<>(todayLocation); |
||||
|
||||
return new ArrayList<>(set); |
||||
} |
||||
|
||||
private int arraySelect(int count){ |
||||
int result; |
||||
|
||||
switch (count){ |
||||
case 1 : |
||||
result = 0; |
||||
break; |
||||
case 2 : |
||||
result = 1; |
||||
break; |
||||
case 3 : |
||||
result= 2; |
||||
break; |
||||
case 4 : |
||||
result = 3; |
||||
break; |
||||
default: |
||||
throw new CustomException(ErrorCode.NON_VALID_PARAMETER); |
||||
} |
||||
|
||||
return result; |
||||
} |
||||
|
||||
|
||||
private int init(){ |
||||
|
||||
int day = LocalDate.now().getDayOfMonth(); |
||||
|
||||
return (day % 4) + 1; |
||||
} |
||||
|
||||
|
||||
} |
@ -0,0 +1,130 @@
|
||||
package com.palnet.comn.utils; |
||||
|
||||
public class SunRiseUtils { |
||||
|
||||
public static String calculateSunriseSunset(int year, int month, int day, double longitude, double lati) { |
||||
int sunriseH, sunrisem, sunsetH, sunsetm; |
||||
|
||||
double latitude = deg2rad(lati); |
||||
double zenith = deg2rad(90.8333); // 일출일몰 계산, 시민박명:96.0, 항해박명:102.0, 천문박명:108.0
|
||||
double timezone = 9.0; // KST +9H
|
||||
|
||||
// 1. first calculate the day of the year
|
||||
int N = (int) (floor(275 * month / 9) - (floor((month + 9) / 12) * (1 + floor((year - 4 * floor(year / 4) + 2) / 3))) + day - 30); |
||||
|
||||
// 2. convert the longitude to hour value and calculate an approximate time
|
||||
double lhour = longitude / 15; |
||||
double tr = N + ((6 - lhour) / 24.0); // sunrise
|
||||
double ts = N + ((18 - lhour) / 24.0); // sunrise
|
||||
|
||||
// 3. calculate the Sun's mean anomaly
|
||||
double Mr = (0.9856 * tr) - 3.289; |
||||
double Ms = (0.9856 * ts) - 3.289; |
||||
|
||||
// 4. calculate the Sun's true longitude
|
||||
double Lr = Mr + (1.916 * sin(deg2rad(Mr))) + (0.020 * sin(deg2rad(2 * Mr))) + 282.634; |
||||
double Ls = Ms + (1.916 * sin(deg2rad(Ms))) + (0.020 * sin(deg2rad(2 * Ms))) + 282.634; |
||||
Lr = (Lr >= 0) ? fmod(Lr, 360) : fmod(Lr, 360) + 360.0; |
||||
Ls = (Ls >= 0) ? fmod(Ls, 360) : fmod(Ls, 360) + 360.0; |
||||
double lr = deg2rad(Lr); |
||||
double ls = deg2rad(Ls); |
||||
|
||||
// 5a. calculate the Sun's right ascension
|
||||
double RAr = rad2deg(atan(0.91764 * tan(lr))); |
||||
double RAs = rad2deg(atan(0.91764 * tan(ls))); |
||||
RAr = (RAr >= 0) ? fmod(RAr, 360) : fmod(RAr, 360) + 360.0; |
||||
RAs = (RAs >= 0) ? fmod(RAs, 360) : fmod(RAs, 360) + 360.0; |
||||
|
||||
// 5b. right ascension value needs to be in the same quadrant as L
|
||||
RAr += (floor(Lr / 90.0) * 90.0) - (floor(RAr / 90.0) * 90.0); |
||||
RAs += (floor(Ls / 90.0) * 90.0) - (floor(RAs / 90.0) * 90.0); |
||||
|
||||
// 5c. right ascension value needs to be converted into hours
|
||||
RAr /= 15; |
||||
RAs /= 15; |
||||
|
||||
// 6. calculate the Sun's declination
|
||||
double sindecr = 0.39782 * sin(lr); |
||||
double sindecs = 0.39782 * sin(ls); |
||||
double cosdecr = cos(Math.asin(sindecr)); |
||||
double cosdecs = cos(Math.asin(sindecs)); |
||||
|
||||
// 7a. calculate the Sun's local hour angle
|
||||
double cosHr = (cos(zenith) - (sindecr * sin(latitude))) / (cosdecr * cos(latitude)); |
||||
double cosHs = (cos(zenith) - (sindecs * sin(latitude))) / (cosdecs * cos(latitude)); |
||||
|
||||
// 7b. finish calculating H and convert into hours
|
||||
double Hr = 360.0 - rad2deg(acos(cosHr)); |
||||
double Hs = rad2deg(acos(cosHs)); |
||||
Hr /= 15; |
||||
Hs /= 15; |
||||
|
||||
// 8. calculate local mean time of rising/setting
|
||||
double Tr = Hr + RAr - (0.06571 * tr) - 6.622; |
||||
double Ts = Hs + RAs - (0.06571 * ts) - 6.622; |
||||
|
||||
// 9. adjust back to UTC
|
||||
double UTr = Tr - lhour; |
||||
double UTs = Ts - lhour; |
||||
UTr = (UTr >= 0) ? fmod(UTr, 24.0) : fmod(UTr, 24.0) + 24.0; |
||||
UTs = (UTs >= 0) ? fmod(UTs, 24.0) : fmod(UTs, 24.0) + 24.0; |
||||
|
||||
// 10. convert UT value to local time zone of latitude/longitude
|
||||
double localTr = fmod(UTr + timezone, 24.0); |
||||
double localTs = fmod(UTs + timezone, 24.0); |
||||
|
||||
// last convert localT to human time
|
||||
sunriseH = (int) floor(localTr); |
||||
sunrisem = (int) ((localTr - sunriseH) * 60); |
||||
sunsetH = (int) floor(localTs); |
||||
sunsetm = (int) ((localTs - sunsetH) * 60); |
||||
|
||||
StringBuilder sb = new StringBuilder(); |
||||
sb.append((sunriseH < 10 ? ("0"+sunriseH) : sunriseH)); |
||||
sb.append((sunrisem < 10 ? ("0"+sunrisem) : sunrisem)); |
||||
sb.append("00"); |
||||
sb.append(" / "); |
||||
sb.append((sunsetH < 10 ? ("0"+sunsetH) : sunsetH)); |
||||
sb.append((sunsetm < 10 ? ("0"+sunsetm) : sunsetm)); |
||||
sb.append("00"); |
||||
|
||||
return sb.toString(); |
||||
} |
||||
|
||||
private static double deg2rad(double degree) { |
||||
return degree * Math.PI / 180; |
||||
} |
||||
|
||||
private static double rad2deg(double radian) { |
||||
return radian * 180 / Math.PI; |
||||
} |
||||
|
||||
private static double sin(double value) { |
||||
return Math.sin(value); |
||||
} |
||||
|
||||
private static double cos(double value) { |
||||
return Math.cos(value); |
||||
} |
||||
|
||||
private static double tan(double value) { |
||||
return Math.tan(value); |
||||
} |
||||
|
||||
private static double acos(double value) { |
||||
return Math.acos(value); |
||||
} |
||||
|
||||
private static double atan(double value) { |
||||
return Math.atan(value); |
||||
} |
||||
|
||||
private static double floor(double value) { |
||||
return Math.floor(value); |
||||
} |
||||
|
||||
private static double fmod(double x, double y) { |
||||
return x % y; |
||||
} |
||||
|
||||
} |
Loading…
Reference in new issue