대상
BlockSyncService.javaWalkWebSocketService.java내용
sendAfterCommit() 유틸을 공통 유틸로 통합private void sendAfterCommit(Runnable action) {
if (TransactionSynchronizationManager.isSynchronizationActive()) {
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
@Override
public void afterCommit() {
action.run();
}
});
return;
}
action.run();
}
// 해당 로직이 서비스에서 중복으로 구현되어 있음
대상
WalkService.javaBlockService.java내용
BlockIdUtil 기반 blockId → response 변환 로직 중복 제거private NearbyBlockResponse toNearbyBlock(BlockOwnership ownership) {
Block block = ownership.getBlock();
String blockId = BlockIdUtil.toBlockId(block.getX(), block.getY());
return NearbyBlockResponse.from(
blockId,
ownership.getDog().getId(),
ownership.getAcquiredAt()
);
}
private OccupiedBlockResponse toOccupiedBlock(BlockOwnership ownership) {
Block block = ownership.getBlock();
String blockId = BlockIdUtil.toBlockId(block.getX(), block.getY());
return OccupiedBlockResponse.from(
blockId,
ownership.getDog().getId(),
ownership.getAcquiredAt()
);
}
대상
BlockService.javaWalkWebSocketService.java내용
private boolean isValidInput(Double lat, Double lng, Integer radiusMeters) {
if (lat == null || lng == null || radiusMeters == null) {
return false;
}
if (!Double.isFinite(lat) || !Double.isFinite(lng)) {
return false;
}
return radiusMeters > 0;
}
private boolean isValidCoordinate(double lat, double lng) {
if (!Double.isFinite(lat) || !Double.isFinite(lng)) {
return false;
}
return lat >= -90.0 && lat <= 90.0 && lng >= -180.0 && lng <= 180.0;
}
기대 효과
WalkService.java