private void operation() {
		User attacker = getRandomUser();
		if (attacker == null) {
			System.out.println("NULL PTR ECPT!");
			return;
		}
		
		int attackerDBID = galaxyIDToDBID.get(attacker.getGid());
		int targetGalaxyID = attacker.getRandomTargetGID(1, 4);
		int targetDBID = galaxyIDToDBID.get(targetGalaxyID);
//		System.out.println("targetGalaxy : "+ targetGalaxyID);
		
		String sql = "{CALL GET_ATTACK_POWER(?, ?)}";
		Connection attackConnection = null;
		Connection targetConnection = null;

		try {
			attackConnection = shardConnectionPools.get(attackerDBID).getConnection();
			targetConnection = shardConnectionPools.get(targetDBID).getConnection();
			CallableStatement callableStatement;
			callableStatement = attackConnection.prepareCall(sql);
			callableStatement.setInt(1, attacker.getUid());
			callableStatement.registerOutParameter(2, Types.INTEGER);
			callableStatement.execute();

			int damage = callableStatement.getInt(2);
			//System.out.println(damage);
			int remainHp = attack(attacker.getUid(), damage, targetGalaxyID,
					targetConnection);
			callableStatement.close();
			if (remainHp > 0) {
				sql = "{CALL LOG(?, ?, ?, ?)}";
				callableStatement = attackConnection.prepareCall(sql);
				callableStatement.setInt(1, attacker.getUid());
				callableStatement.setInt(2, targetGalaxyID);
				callableStatement.setInt(3, damage);
				callableStatement.registerOutParameter(4, Types.VARCHAR);
				
				callableStatement.execute();
				
				String log = callableStatement.getString(4);
				Log.getInstance().addList(log);
				callableStatement.close();
			} else {
				System.out.println("GAME OVER!");
				Main.gameOver();
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			try {
				if (attackConnection != null)
					attackConnection.close();
				if (targetConnection != null)
					targetConnection.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}